An 'RMS Compressor'

Hi. For lowering RMS, RMS Normalize causes no problems, but for rising RMS, extreme clipping can easily happen/need to discard big parts of the wave.
[This example is too loud for audiobook ‘rules’, this is for music, for making a piece similar in volume to commercial music; -9.5db is just an empirical preference based on many commercial examples (sometimes they are softer eg -10.5db, sometimes louder eg -8db …, I found aprox. -9.3 to -9.6 good)] :

if wanting to rise [make louder] RMS to -9.5db, keeping max. peaks at 0db [or say, -0.1db], RMS Normalize (and Dynamic Mirror [RMS selected]) boost both the peak and RMS by the same amount, so extreme clipping.
If then using ‘Limiter’ to get all at 0db [or say, -0.1db], huge parts of the wave are lost.

So, with the hoped ‘RMS Compressor’ the user would choose a wanted RMS [and the ‘Threshhold’ and the rest of the other parameters but not the ‘Ratio’; this would be dynamically changed in order to get to the RMS (or maybe the Threshhold wouldn’t be choosed either by the user, but it also would be dynamically changed by the pug-in, idk…] and the wave would be compressed as needed for the wanted RMS, keeping it mostly under 0db at all times.

It’s not easy to predict what the RMS level will be after compression. It could be done, but I believe it would require an iterative process. Compression (and limiting) mostly affects the peaks/loud parts with not much effect on RMS until you apply make-up gain. And, without make-up gain it will push the RMS levels down, the opposite of what you usually want.

The [u]Recommended Audiobook Mastering Process[/u] seems to work well for most people as long as you start-out with a good recording.

Processing music is seriously difficult and you might want to consider other techniques altogether.

No word on whether Chris’s Compressor is still alive or not. Chris Capel wrote that so he could listen to opera in the noisy car. It has a lot of the same characteristics as broadcast compressors—almost no matter what shows up, the broadcast show is “legal” and pleasant to listen to.

I used to use it when I started to download the “Car Talk” radio show instead of taking it off-air. Off-air, of course, had the broadcast compressors along with the transmitters up on Mt. Wilson. It was a little fuzzy and noisy from all the FM craziness, but it worked and I used it.

Scene moves forward to the download. Turns out the two performers are theatrically very badly mismatched. One mumbles in his beer and other has a voice recognised as a lethal weapon by the State of California. Unlistenable in the car. I applied Chris with the first setting, Compression, changed from the default 0.5 to 0.77, which someone on the forum determined was appropriate. They were right. I used that for years—no other changes.

You might like it, too.


If you RMS compress then amplify* to 0dB, you will be able to see what to set the limiter at to trim off the occasional loud peak without causing conspicuous distortion.

[ * amplify to 0dB may actually reduce the volume. The limiter should have make-up-gain enabled which will turn the volume back up when it is applied ].

That is for audiobooks (intends for values way lower [RMS -18db to -23db, Peaks -3db] than the RMS -9.5db, Peaks 0db [or -0.1db] i’m looking for; with those audiobook values of RMS -18db to -23db the ‘RMS Normalize’ plug-in can be used with way less issues with clipping than if using it for -9.5db.);

and if it were for doing it through many steps, well, i do it with regular Compressor through essay and error, so that’s why it would be great a 1 [or let’s say, 2…] step ‘RMS Compressor’ where one would input e.g. RMS = -9.5 and the plug-in would take care of the ‘Ratio’ [and/or ‘Threshold’] to get to it, (while keeping the Peaks under 0db [or -0.1db]).

As for Chris’s Compressor, all well and good, as is the regular Compressor, but it’s not just about make it louder/fine/great etc etc, it’s about getting the precise RMS one wants, like with the ‘RMS Normalize’ plug-in.

it’s about getting the precise RMS one wants

And it’s exactly there you leave us in the dust. Audacity isn’t for scientists. It will make them crazy. Audacity routinely makes decisions on whether something will sound good, not whether it’s scientifically accurate.


Not “lost” unless you use clipping. The default settings in Audacity’s Limiter compress peaks.
If only a few peaks are over 0 dB, then they can be compressed down to 0 dB with negligible affect on the RMS value.

[…] Audacity isn’t for scientists. It will make them crazy. […] not […] scientifically accurate.

I don’t mean some flat ‘scientifically’ exact RMS, i mean just like normal in Audacity:
»choose a region
»apply the hoped “RMS Compressor” [with values eg. RMS=-9.5db, Peaks=-0.1db]
»do a regular Audacity ACX check for the region [not with some sort of ‘scientists’ special measurer], get results close to the -9.5db eg fron 9.2db to 9.6db
That’s it, just same sort of accuracy as with the existing ‘RMS Normalize’ plug-in, it’s accurate enough.

If only a few peaks are over 0 dB, then they can be compressed down to 0 dB with negligible affect on the RMS value

’ a few peaks’ might happen with the numbers used in Audiobooks [ RMS=18db-23db], the numbers i’m talking about [ RMS=-9.5db] produce huge sections of the wave peaked over 0db [this is not theorethical, is from experience trying to use the ‘RMS Normalize’ plug-in to get eg from a section that is already at 0db Peaks, it’s not my recording, it is what it is, with a RMS -12db to same 0db Peaks but louder RMS of -9.5db, (then if compressed down to 0 dB, = not negligible effects on the RMS value; this proved from experiments.

So for this reasons i have to use regular compressor and try/error to get wanted precise enough RMS, can’t use the ‘RMS Normalize’ plug-in due to extreme clipping.
Most people advising are thinking in terms of the ‘soft’ waves you are using, try rising the RMS with the ‘RMS Normalize’ plug-in to a modern dance or metal already compressed at Peaks 0db to see what i mean.

To make it clearer, some real data, here’s a little example experiment:

I select a small region already at 0db Peaks, RMS is: Left 9.0db Right 9.2db (it’s already louder than my prefered -9.5db [not including fade-in & fade-out that can be long and alter the result], so normally in this case I would lower a bit the RMS or just leave the section alone, but for the sake of giving the example, I’m rising the RMS to -7 with the ‘RMS Normalize’ plug-in.)

Results: RMS of Left -6.9db & Right -7.1db, very accurate, but lots of clipping, too much of the wave went over 0db.
So what happens with the options to get the peaks back to 0db:

*with Normalize: as expected, this just reverses what the ‘RMS Normalize’ plug-in did, so I get L-9.0db & R-9.2db
*with ‘Limiter’ I get Left -8.3db & R -8.5db and parts of the wave are lost [idk if technically ‘Limiter’ is doing a compression but it’s more of a hard cut, all above 0db in practice goes away] [and anyway the wanted -7db RMS is not preserved]
*with ‘Compressor’ [‘Threshold’ -2db, ‘Ratio’ 2:1]: RMS L -8.9db R -9.2db so the wave is not harshly ‘cut’ as with ‘Limiter’, but RMS is farther away to the wanted -7db
*with ‘Compressor’ [‘Threshold’ -40db, ‘Ratio’ 10:1]: RMS L -8.4db R -8.6db, closer to RMS results after ‘Limiter’
*with ‘Compressor’ [‘Threshold’ -60db, ‘Ratio’ 10:1]: RMS L -8.2db R -8.5db [same with ‘Noise Floor’ either at -40db or at -80db] almost same RMS as after ‘Limiter’. Not closer to wanted -7db but wave better preserved than with ‘Limiter’.
CONCLUSION: Starting with Peaks at 0db, to rise to a wanted RMS using the ‘RMS Normalize’ can be done at once but the resulting RMS is lost after correcting the extreme clipping [the over 0db peaks], worst with ‘Limiter’ because big parts of the wave are practically gone.
So to rise to a specific RMS [Peaks starting at 0db], one has to use ‘Compressor’ with more or less try/error to get a desired RMS.
[in this example to -7db (not too realistic target, just to show the issues), but my real preference is to get the non fade-in & fade-out sections to aprox. -9.3db to -9.5db (from eg -10db or -13db) (this example is imperfect because with this sample the -7db can’t be done well with ‘Compressor’ either, so if someone objects to this ‘to -7db’, when I get to a sample that is like: Peaks 0db, RMS -11db > make it to RMS -9.3db, I could post results with that more normal data)]

So an ‘RMS Compressor’ plug-in would help in avoiding try/errors, one would input a desired RMS and it would take care of the ‘Ratio’ [and/or ‘Threshold’] to get to it, (while keeping the Peaks under 0db).

Audacity’s native limiter has hard & soft settings.

We have super different goals.

ACX is pretty clear that they want human speech as natural as possible with no distractions and within certain loudness, peak and noise boundaries. The Audiobook Mastering Suite and ACX Check

…were designed to provide performers the tools to produce those works and test them before sending them off to be evaluated, accepted and published. As near as we can tell, this protocol works spectacularly well and we have a terrific track record for getting people published.

If you don’t start with a Mono spoken performance from a human voice in a quiet room, then your mileage may vary. A lot.

You are doing the compression product evaluation for loud, dense stereo music. Write down how it goes. You may get a music processing package named after you.


“limiter has hard & soft settings”
that ‘soft’ is what I mean with ‘technically doing a compression’ but ends out being hard nonetheless…

If not just “RMS Compressor”, it should be named after the person/s that actually do the coding to make it happen;
another name proposal: “The Great Music Equalizer”

With standard ‘Compressor’ some common cases to get to aprox. RMS -9.3 OR -9.5db [Peaks 0db]:
[for all this examples: ‘Noise Floor’ -40db, attack time 0.20, release time 1.0, ticked both ‘make-up for 0db…’ and ‘compress based on peaks’]

*from RMS -10.5 > apply Compressor Threshold -15db, Ratio 10:1 [or Threshold -10db, Ratio 10:1]…
*from RMS -13 > Threshold -40db, Ratio 10:1 [or Threshold -20db, Ratio 10:1]…

*it could need just a Threshold -2db, Ratio 2:1…
*or require 2 passes [eg if the selection is mainly Peaks way lower than 0db ]: a Threshold -40db, Ratio 10:1 and then a Threshold -4db, Ratio 4:1