Batch Processing of Audio Levels
July 16, 2005 4:18 AM   Subscribe

How can I synchronize audio levels on hundreds of files in a batch process?

I'm putting together a rather lengthy educational software product which is using hundreds of audio files from two separate studios. One studio is recording their files fairly louder than the other. On top of that, I have quite a few sound effects from various sources with a fairly decent range in volume.

Since my students will be listening via headphones in their classes, I need to have the audio levels even in order to avoid any complaints about blown eardrums or an inability to hear the instructions.

With such a large number of files, I'd like to find a program which would process multiple files and set them to a certain level, amplifying or softening as needed. Is there any solution which would match this requirement? I don't mind paying for a solution but I'd rather not buy one of the high end editing packages as Audacity does most of what I need from day to day.
posted by pandaharma to Technology (13 answers total)
Well, there are two things here:

1. What exactly do you want to do? If all the the files are of a similar content, with a fairly flat dynamic, but are at different overall levels, then Normalisation might do you job. (Normalisation is raising the highest point of the a particular file up until it's at 0db, and everything else up by the same amount.)

Normally (excuse the pun) though, they're not - if they're music with a varying dynamic content, or even dialogue which varies in level, you might need to apply compression - which is (in effect) raising the overall perceived volume of the files by reducing peaks by a certain ration and raising the volume of the whole file.

2. Most software audio editors will allow you to do batch processes - Steinberg's Wavelab and Abode's Audition are both pretty good at this, and Soundforge is pretty well respected too. All of them will enable you to select a group of files and apply either Normalisation or Compression to each and every file in turn...
posted by benzo8 at 4:39 AM on July 16, 2005

Sonic Foundry's Batch Converter and Wave Hammer plugin will do this exactly. It will cost you, though. I think Sony bought up the Sonic Foundry line.

You should really consider a high end editing package as they potentially can make your life much easier.

Alternately, you should get your studios to equalize volume. (from now on).
posted by fake at 5:30 AM on July 16, 2005

Steinberg's Wavelab can do exactly what you need.

It has a function called "Meta Normalise". This isn't a regular normalise function - it is designed to render any number of files to the same overall level. I've used it lots of times on multimedia projects, and it works wonderfully.

There is a "Lite" version of Wavelab, which is much cheaper than the full version. I can't say for sure if it includes the meta-normalise function though.
posted by coach_mcguirk at 5:41 AM on July 16, 2005

WaveGain will do what you want and is simple and free. It uses the more intelligent ReplayGain algorithm instead of a simple peak normalization. You'll want to use "Radio gain," i.e. normalize each file individually.
posted by zsazsa at 7:45 AM on July 16, 2005

Here's a free utility that'll do it: MP3Gain
posted by curtm at 9:14 AM on July 16, 2005

MP3Gain is great. And will do exactly what you're lookin to do.
posted by glenwood at 9:35 AM on July 16, 2005

You really should understand and address benzo8's point before proceeding (maybe you do already?). The files coming from one of the studios probably just needs a fixed adjustment to meet the level of the other studio. The sound effects are a different story, a pin hitting the floor is supposed to be quieter than a cannon. You might want to 'take the edge off' of that difference, but you don't want to make them sound the same...
posted by Chuckles at 9:59 AM on July 16, 2005

Normalize is good and free, if unimaginatively named.

Keep in mind that if you use MP3Gain you'll also need an mp3 player which supports the normalisation metadata, which isn't all of them I seem to recall.

Also heed benzo8's excellent point that you probably don't want mass-normalisation.
posted by fvw at 1:05 PM on July 16, 2005

Response by poster: Thanks for the good advice.

I should have been more specific about what I'm trying to do. All of my files, with the exception of the sound effects and a little background music, are voice work. There are no songs and the background music is already at an acceptable volume level. There aren't many sound effects so I can probably process those manually.

My main concern was the English language voice talent was a bit soft in her work and the foreign translations were too loud, comparatively. So I was mainly looking to get them on the same level, relatively, with flexibility given to the dynamics ( a term I didn't know to use; thanks benzo8).

I'll try some of the freebies and if that doesn't work, I'll give SoundForge another go. I downloaded the demo and really liked it but didn't know about its batch processing plugin.
posted by pandaharma at 3:01 PM on July 16, 2005

I second zsazsa's suggestion. It's perfect. You never mentioned what file types you're using, but virtually every audio format on the planet (don't get me started on DSD) can be converted into PCM (ie WAV). You didn't mention MP3, and I would hope most studios wouldn't deliver lossy formats unless specifically asked for, so the MP3Gain suggestions are irrelevant (unless I'm blind and you mentioned MP3 somewhere).
posted by Monochrome at 9:55 PM on July 16, 2005

OK - given what you say you're trying to achieve, you probably will be OK with straight normalisation on the vocal files.

Where normalisation will fall down is if the difference between the loudest point and the average volume of a particular file is large. For instance, if one of your vocal files contains normal talking levels, and at one point the performer shouts a line, then returns to his normal volume for the rest of the file, then the normalisation will raise the whole file until the shout is at 0dB - which won't be much, so the normal talking won't be raised in volume a great deal.

Another place normalisation will be unsuitable is if the average volume of the file is low, and intentionall so - if a file contains nothing but whispered conversation (of Chuckles pin-drop above), that too will be normalised to 0dB, raising it much more than you'll want...

It's also worth remembering that *everything* is considered when you're normalising - if the source is not entirely clean, and there are clicks, pops or bounces, or the encode is not perfect and their are digital spikes which you can't actually hear as they're so short (and are, in effect, just mistakes in the file), then it won't normalise properly - those high points will taken as the upper mark for normalisation, and like the "shout" example, everything below them won't be raised as much as you'd think they should be...

Let us know how you get on - it sounds like an interesting project!
posted by benzo8 at 3:01 AM on July 17, 2005

If you're going to use WaveGain and want to preserve relative sound levels between the files from one studio, Album gain may give better results. It will calculate the peak perceived loudness level across all tracks, and then adjust each track the same level, so the tracks you want to stay loud can, and the quiet whispered ones can stay quiet. Run through two batches, one for each studio, and the perceived loudness of the two should be comparable. Give both Album and Radio gains a try and see what suits you better.

The MP3Gain software mentioned before uses the exact same ReplayGain algorithm as WaveGain, but is geared specifically towards MP3 files, as the name suggests.
posted by zsazsa at 10:40 AM on July 17, 2005

While it's true that if you can push everyone to record to the same level, we find that it is simply impossible when audio files come from many different sources, and most are already completed before we receive them - or even know that we will receive them.

So, we need a batch gain level adjustment that will bring everything to one level.

But, the problem is that we need to do this on a regular basis. Sometimes only one file. Sometimes 20 files. But, they have to go to the same level in the batch I do today as they did in the batch I ran last week.

So, we need something that we can set to a particular set of parameters and then it will do every batch the same. Or, we need something where you can put in a "model" file and the others will be matched to it.
posted by Radio Left at 10:47 AM on August 13, 2005

« Older Can I drink tonight?!   |   Never buy tickets from a European. Newer »
This thread is closed to new comments.