ffx/README.md
2026-10-04 07:31:14 +00:00

2.4 KiB

ffx.sh

quickly apply audio effects w/ ffmpeg

supports
mp3, wav, flac, ogg, opus, m4a, aac, mka

features
-bass, treble, volume, distortion
-trim audio
-tempo change with pitch preservation
-pitch change with duration preservation

example usage
./ffx.sh bass audio.mp3 10 1

helper commands
ffbass "audio.mp3" 10 1 bassboosted.mp3
bass audio.mp3 10 1
bassboost audio.mp3

help docs

help and version
./ffx.sh --help
./ffx.sh --version

commands
./ffx.sh bass INPUT PERCENT [FINE_DB] [OUTPUT]
./ffx.sh treble INPUT PERCENT [FINE_DB] [OUTPUT]
./ffx.sh volume INPUT DB [OUTPUT]
./ffx.sh distort INPUT [DRIVE_0_TO_10] [OUTPUT]
./ffx.sh trim INPUT START_SECONDS [END_SECONDS] [OUTPUT]
./ffx.sh tempo INPUT SPEED_0.125_TO_8 [OUTPUT]
./ffx.sh pitch INPUT SEMITONES_-36_TO_36 [OUTPUT]

bass and treble
./ffx.sh bass song.mp3 25 1 bass-song.mp3
./ffx.sh treble song.mp3 20 1 bright-song.mp3

33 = 16.5 db
66 = 33 db
100 = 50 db
fine_db is added or subtracted afterward.

volume
./ffx.sh volume song.mp3 -6 quieter-song.mp3
./ffx.sh volume song.mp3 3 louder-song.mp3

distortion
./ffx.sh distort guitar.wav 5 distorted-guitar.wav

trim audio
./ffx.sh trim song.mp3 10 30 clip.mp3
./ffx.sh trim podcast.mp3 30 60 no-intro.mp3

tempo with pitch preservation
./ffx.sh tempo lecture.mp3 1.5 fast-lecture.mp3
./ffx.sh tempo song.mp3 0.75 slower-song.mp3

pitch with duration preservation
./ffx.sh pitch vocal.wav 3 higher-vocal.wav
./ffx.sh pitch vocal.wav -5 lower-vocal.wav

convert while editing
./ffx.sh volume input.wav -3 output.mp3

automatic output filename
./ffx.sh bass song.mp3 30

input:  star.mp3
output: star333033.mp3
install helper commands
./ffx.sh --add-helper-cmd

remove helper commands
./ffx.sh --remove-helper-cmd

cmd helpers
  ffbass   INPUT PERCENT [FINE_DB] [OUTPUT]
  fftreble INPUT PERCENT [FINE_DB] [OUTPUT]
  ffvolume INPUT DB [OUTPUT]
  ffdistort INPUT [DRIVE_0_TO_10] [OUTPUT]
  fftrim   INPUT START_SECONDS [END_SECONDS] [OUTPUT]
  fftempo  INPUT SPEED_0.125_TO_8 [OUTPUT]
  ffpitch  INPUT SEMITONES_-36_TO_36 [OUTPUT]

defaults
-output uses the source extension and a unique suffix.
-use an explicit filename ending in .mp3 for mp3 output.

examples
ffbass "audio.mp3" 33 2
ffbass "song.wav" 33 2 "bass.mp3"
fftreble "song.flac" 66 -4 "treble.flac"
ffvolume "song.mp3" -3
ffdistort "song.wav" 4 "distorted.mp3"
fftrim "song.mp3" 12.5 48 "clip.mp3"
fftempo "song.mp3" 0.5 "slow.mp3"
ffpitch "song.mp3" -3 "lower.mp3"