Is there a way to procedurally change the audio selection within an Audacity Chain?

Background: I work on the raw footage for very long GDC-style talks, where my primary goal is just to increase the overall volume of the audio. Obviously I start by normalizing the entire sample, but that quickly has a major limitation, as the overwhelming majority of the quiet speaker's audio will stay very quiet compared to the various pops and louder spikes in audio from when the metal podium was bumped or someone's voice peaked for a moment or someone coughed or laughed louder than the general volume, etc. The best I've found to combat this is to individually amplify these different spikes in volume down to the rest of the audio's base volume, and then re-normalize the entire thing, with the bulk going higher in volume without these major peaks holding them back by relative volume. However, this is incredibly time-consuming, especially on such long tracks like those I work with, and is never fully done. I'm editing hour-long audio tracks and just doing this same repetitive task over and over that requires a lot of eyeballing.

What I Want to Do: As an alternative to this frustratingly-long process of amplifying the audio down for all the spikes so the normalization can work more effectively, I think that if I could simply normalize the entire track in small chunks, then everything would be of an equally-high volume, which is perfect. I've tested this, normalizing the first ten minutes of the track in one-minute chunks (so I normalized the first minute of audio, then the second minute, then the third minute, etc. individually), and it works perfect, even sounding seamless. But again, this is very slow, repetitive, especially for such an egregiously-long audio sample. It's feasible for me to do this 90 times to normalize each minute of this 90-minute talk individually, but I really don't want to, and this is such a simple, repetitive task with no human eyeballing required, that I feel like a chain macro should do it no problem. The chain would select the first minute (or first 30 or 20 seconds, which would be even better) and normalize it, and then change its selection to the next minute (or other increment) and normalize it, repeating until the entire track was processed. However, I cannot find a way to change the selection of a chain within Audacity. Is this possible? If not, is there another way to do what I want to do, or achieve the same effect?

Thank you so much,

1 Answer 1


This very much comes across as an XY Problem

You've come up with what you think is a potential solution to a problem you don't know how to solve.
The trouble is, you don't know how to achieve your proposed solution either, so that's what you're asking how to do - when in fact that's not the way to achieve your actual goal at all.

As you've discovered, Normalising on its own is fairly useless. All it does is makes the loudest peak 0dB & just brings everything else up to match.

What you should be investigating is a compressor/brick wall limiter.

Audacity has a compressor built-in, but doesn't seem to have a limiter. The compressor, though, has a checkbox for make up gain, so you can in effect use it almost like a brick-wall.

Set your threshold to the level you want to prevent the loud peaks, noise floor to leave quieter sections alone. Ratio is for how hard you want the compression to apply. Setting that to maximum will brick-wall, allowing no signal to be louder than your threshold - which will probably sound uncomfortable on speech, so go gently with it.
Make up gain will lift the final signal to 0dB, which is the same as Normalising it after you removed the peaks.
You can now pretty much process the entire file in one pass.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.