ffx/README.md
2026-09-09 08:18:24 +00:00

148 lines
3.1 KiB
Markdown

### ffx.sh
quickly apply audio effects using ffmpeg <br>
<pre>
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
</pre>
---
<pre>
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
</pre>
<pre>
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"
</pre>
<pre>
zsh helpers
install
bash install-ffx-zsh.sh
the installer
-prompts for the directory containing ffx.sh
-auto-finds ffx.sh when pressing enter
-ensures ffx.sh is executable
-validates ffx.sh
-creates ~/.ffx.zshrc.snippet
-adds source "$HOME/.ffx.zshrc.snippet" to ~/.zshrc if missing
reload zsh
source ~/.zshrc
usages
bass "song.mp3" 33 2
treble "song.flac" 66 -4
volume "song.mp3" -3
distort "song.wav" 4
trim "song.mp3" 12.5 48
tempo "song.mp3" 0.5
pitch "song.mp3" -3
presets
bassboost audio.mp3
grunge audio.mp3
preset values
bassboost INPUT = bass INPUT 5 1
grunge INPUT = distort INPUT 2
custom output
bassboost audio.mp3 bassboosted.mp3
grunge audio.mp3 grunge.mp3
</pre>