Scanning a mix

Jimbob, it’s floating point. There’s an explicit exponent that goes up to +/-126, and 24 mantissa bits. So, you always have 24 significant bits (i.e., range does not affect relative accuracy), and the maximum value is 2^126.

So, the max value is roughly 2^126. dB is defined as

20 * log(value)

and 20 * log(2^126) is 759.

Note that I’m taking a shortcut or two above: dB is actually only defined when comparing two values, or a value against a reference. However, for floating point audio, the reference value of 0dB is arbitrarily and conveniently assigned to the value 1, so the above is correct to several decimal places.

Plugins don’t deal with 16-bit limitations, in general. They’re almost all written using the f32-bit floating point defaults for DX and VST (though it is possible to override the default – largely untested waters, though). Internally many of them use 64-bit floating point for accuracy, and to avoid the pitfalls mentioned above (infinites/infinitesimals).

Simple plugins like delays and compressors won’t be affected by values over 0dB. On the other hand, plugins with complex matrix math require painstaking coding to avoid a problem known as “near infinites/infinitesimals”. You see, there are a number of elegant formulas for computing various kinds of filters, and on paper they work just great (analytically, when every value is infinitely accurate. But when you code these on a computer, you run into problems where intermediate terms go to extremely high or low values (to be later divided by another such number). Push the range of the number format and out comes crappola. BIGO: Beauty in, Garbage out. So, as part of optimizing the code to avoid these issues, it helps to assume the inputs will fall within a nominal range. The programmer gets to pick the nominal range, but obviously you’d want ideal results between 0 and -50dB or so, with accuracy possibly decreasing outside that range. Therefore, it’s best to stay within the nominal range of a plugin.

However, we’re not talking about constant levels over 0dB, just a few rogue peaks here and there. As we all know, we can have a number of peaks that actually get totally clipped off (in the soundcard on output) and we can’t hear it as long as it’s no more than 2 in a row and infrequent enough. So, we sure don’t need to worry about a little higher math errors on occasional peaks over 0dB. If your ears are good and you can’t hear it, chances are you’re OK.

Which leads to Bubba’s policy, which works fine. He didn’t say it, but I’ll bet dollars to donuts he doesn’t mean camping out at +3dB, just the occasional peak here and there.

Regardless, the best guideline, one that needs no explanation, is to stay under 0dB. As usual, though, it’s best to understand the rules than to follow them as dogma. Of course, it’s a long road to understand all the rules, so we start out following them without understanding why, just to keep out of the weeds, and that’s a good thing. As our understanding grows (or experiment and practical understanding despite ignorance of theory), we can color more and more outside the lines and still get good results.


Which leads to Bubba’s policy, which works fine. He didn’t say it, but I’ll bet dollars to donuts he doesn’t mean camping out at +3dB, just the occasional peak here and there.

Correct… those are the peaks at the height of the mix where things are really humping. The average if I had to guess is proabably between -15 and -9 on my mixes. Personally I really don’t see the need for this feature as if you do a 32 bit mix down, everything else would happen in a wave editor for me and finding peaks etc. are all part of a decent wav editor. If you are so worried about smashing the crap out of your stuff in the mixing stage, me thinks you may want to revisit your methodology. Sure, I’ll throw a limiter from time to time on the 2 bus while mixing as a safety net, but never as a level maximizing tool. After a few passes, the limiter comes off as I have backed things down by then to not worry about clipping the 2 bus.

I do my original mix without concern for peaks by turning the master gain down so I don’t have a problem with the rough mixes. I do not work in a wave editor at all. If I did I would want this feature in it. The problem with scans is that they only find one or two peaks (positive and negative) at a time. If you had a hundred peaks within a few fractions of a dB of each other you would have to scan 100 times to find them all. What is worse, you can’t tell from the scan if you have 1 peak or 1000 so you don’t know how many times to run it until you have somehow dealt with all the peaks. If you are trying to decide whether to compress or selectively use envelopes, you have a chiken-and-egg problem. You can’t know how many peaks you have until you have supressed them all but you can’t decide how to suppress them until you know how many there are.

Another approach is to expand the timeline magnification and scroll through the entire file manually, making note of the location of the peaks so that you could decide whether compression or envelope modification was the best approach. This approach would work in a wave editor and probably is faster than scanning if you have more than a few peaks, but without a mixdown time-line in N-tracks it is not possible.

In any case, modification of the individual tracks before mixdown provides the best control and the fewest side-effects. For acoustic mixes, overall limiting can suck the life out of a recording without making it sound “bad” so it can be a subtle thing.

I do a lot of “live-in-the-studio” recording which can generate a lot of songs in a short amount of time. A recent 3-day session generated about 70 full-length 7-10-channel songs. Of course maybe a third of these are too flawed to worry about, and maybe half of the rest probably will not ever get a full treatment, but I’m up to 3 hours of good takes for that session alone (and I haven’t even listened to all the songs yet). A feature like this could help me save a lot of time.


Adobe Audition does an excellent job of scanning for rogue peaks IMO. That’s one of the reasons I like to polish my tracks off there. Use the Hard Limiting effect and click Scan or whatever the button is called? It will return the % of clipped samples for both left and right channels if stereo. Then you can adjust your limiter attack and release, makeup gain etc to taste. You can make a smokin’ hot mix with that thing. I have to be careful though because it is super easy to get caught in the “Hey, LOUDER is better.” trap. Several times, I’ve had a second listen a day or two later and went “HOLY S$%T!! What was I thinking!” :D


Bubba, you’re right except when you imply that Jimbob is wrong. There are different good work models.

I think that the waveform display for peaks is an overly complex feature and isn’t likely to appear, but that a few things can and should be done to help out here. BTW, Jimbob made it clear that he doesn’t squash the #### out of his mixes, quite the opposite and thus the issue. (If he was squashing the #### out of it, he’d just use a limiter.)

I used to do a lot of surgical removal of rogue peaks. But I find that I’m happy with the results using appropriate compression on individual tracks, and then using PeakComp as a poor man’s mastering compressor, configure it to boost by about 4dB and limit at just under 0dB, and I get a result with RMS levels in the -9 to -12 region and no audible clipping. Sounds just as good to me, and it’s a HECK of a lot less time consuming.

Oh, another handy plugin is Inspector, which counts overs and records peaks & such, as well as reporting RMS levels. I used it a lot earlier but find I mostly wing it and go by ear these days.