Audio compression tools for screencasts on Linux
Summary: Use ardour - the digital audio workstation with the Calf Studio Gear - GNU/Linux Audio Plug-Ins and the JACK Audio Connection Kit system.
See other options on Linux than Ardour, such as ffmpeg, sox and Audacity below, with examples.
Ardour, Jack and the Calf plugins are all in the Ubuntu repositories if you are using Ubuntu.
However PulseAudio in Ubuntu does not play well with Ardour, and you would probably prefer a Linux distribution that natively uses Jack instead, and not PulseAudio. The problems with PulseAudio and Jack together are listed here:
JACK Audio Connection Kit|How use PulseAudio and JACK?
One option is to use the Ubuntu Studio Linux distribution directly on your computer, or in a virtual machine for Ardour/Jack on a pulseaudio host OS (Linux) . The latter works surprisingly well; I'm using it!
Ardour's plugin system is just gorgeous. Above two of the "Calf" series plugins in the foreground: An equalizer and a compressor. Effects can be stacked and signals routed in different ways. If you use Ardour 5 in Ubuntu studio, there are hundreds of effects plugins to choose from.
Apply the compressor twice. The effect was better I felt when using a moderate compression twice instead of a stronger once, as mentioned here:
That page has a lof of other useful advice as well.
Before you compress
Clipping is accentuated by compression in my limited experience. So if you record with clipping it may be a good idea to re-record. It's better to redo a recording until the suond is good, than try to fix it afterwards. Gigo.
Other choices
- Audacity has and can use a set of effects plugins
- ffmpeg has and can use a set of effects plugins
- sox has a set of effects
But after having seen Ardour, who cares? :D Although sox and ffmpeg can be used from scripts, it must be said.
Audacity example
Here are the settings that worked for me, in Audacity's compress effect:
Threshold: -16dB first time (I think), -13dB second time
Noise floor: -30dB
Ratio: 2.5:1
Attack time: lowest (0.10 secs)
Release time: 1.0 secs first time, 2.2 secs second time
Sox example
sox has compression. I am toying with this one, basically lifted from the man page. At least it looks a bit complex:
sox audio-in.wav soxied.wav gain -28 mcompand "0.005,0.1 -47,-60,-34,-55,-17,-33,0,-10" 100 "0.003,0.05 -47,-60,-34,-55,-17,-33,0,-10" 400 "0.000625,0.0125 -47,-60,-34,-50,-15,-33,0,-10" 1600 "0.0001,0.025 -47,-60,-34,-50,-31,-31,-0,-30" 6400 "0,0.025 -38,-60,-28,-28,-0,-25" gain 15 highpass 22 highpass 22 sinc -n 255 -b 16 -17500 gain 9 lowpass -1 17801
ffmpeg example
ffmpeg -i screncast-audio.wav -vf "compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6" comptest.wav