Audio compression tools for screencasts on Linux

published Mar 31, 2017 11:35   by admin ( last modified Apr 03, 2017 11:08 )

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:

"If you want to heavily compress a voice recording without making it sound too unnatural, use two or three compressors in series. This will sound better than using drastic settings on a single compressor"

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