Sometimes listening to podcasts some people are loud, others quiet, and I have to keep changing the volume throughout the conversation.

Is it possible to via command line or other means compress and limit all audio coming out of the system to a fixed or very small range of volume?

I want to turn it on and off when needed.

Not for post-processing audio files. It's to use live.

1 Answer 1


You need some kind of compressor…
Apple provides some by default as Audio Unit plugins - but you then need something to run them in. The simplest I know of is Rogue Amoeba's SoundSource [Rogue Amoeba really do make some very solid sound manipulation tools, this is about their cheapest/simplest.]

You can then 'intercept' the output at either System or application level & insert the compressor to control the output.

enter image description here

A multiband compressor is not the easiest thing to juggle the settings of, if you're not used to audio engineering [& the Apple one doesn't have the best graphical representation to see what you're doing]. If you struggle, there's a simpler single-band comp called AUDynamicsProcessor.
SoundSource can run any Audio Unit plugin, so you might be able to find another compressor more suited to your specific needs. There are a lot available, free & paid. An alternative type of compressor is known as a Limiter [sometimes called a brick-wall limiter], which in effect holds an absolute maximum output & won't let anything be louder. They can be very effective, but also very aggressive in how they affect the sound.

The SoundSource app sits in the menu bar, so you can toggle it with a couple of clicks.

Personally, my multiband of choice is the Waves LinMB [Linear Phase Multiband Compressor] which lets you see as well as hear what you're doing- but that's another $30 on top of SoundSource.

enter image description here

  • That's great. Thank you. My aim is to create something that only has an on and off switch. No configuration. I found a file called "AudioUnitParameters.h". Do you know if there is a value or set of values in there (or elsewhere) that could be changed that would result in simply compressing the volume into a very small range, so that all voices are heard equally loudly? Something that I can maybe turn into an app with a keyboard shortcut or run a command in the terminal and toggle on and off and that's it.
    – Norbert
    Nov 12, 2022 at 17:08
  • There's really no such thing as a compressor you can just switch on & it be perfect. They're programme-sensitive, but you have to define some basic parameters yourself. If you're not used to audio engineering, you won't do it by typing in a couple of numbers, really. I am an audio engineer & still like to see what's going on as I'm setting up. Making a 'covers every scenario' default is tough. I use two multibands in a row to handle movies on my HTTPC, each handing a different aspect of the overall soundfield.
    – Tetsujin
    Nov 12, 2022 at 17:13
  • Your best bet to absolutely level all sound is a brickwall, just wind it down really tight… but that will also appear to lift background noise too, which is part of what makes the whole thing a bit of a 'juggle'. Either way, you need something to do the intercept & run the plugin. You can't just insert it into the sound chain without.
    – Tetsujin
    Nov 12, 2022 at 17:13
  • If I wanted to do the dumbest version, just to make it functional in terms of being able to understand what is said without constantly changing the volume manually on podcasts, would that be a brickwall, and if so it is possible to to implement that with some sort of script run on the terminal and or have a default that will just work in terms of understanding the words being spoken without any regard for audio quality?
    – Norbert
    Nov 12, 2022 at 17:18
  • 1
    You could try searching for "AU auto gain" - one of them might do what you want. Serious implementations of this are for broadcast & cost thousands. I found this - kvraudio.com/product/autogain-by-bluelab-audio-plugins . You still have to have something to run it in.
    – Tetsujin
    Nov 12, 2022 at 17:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .