I have been concerned about Aiff exports from Audacity. In the previous versions, and the latest, I was unable to find any option for normalizing an export that includes pans. GarageBand, for instance, has an “Auto Normalize” option for exports that, I think, normalizes to 0dB after all pans are taken into account. If my understanding is correct, this is a very important option to avoid clipping. To test, this is what I did:
- Created a new recording. I was presented with a blank screen.
- Generated a mono 1 kHz, 1 second tone with an amplitude of 1.0.
- Created a new audio track and generated a mono 1 kHz, 0.5 second tone, amplitude 1.0.
- Panned both fully left.
- Played the recording. It sounded as it should: the first 0.5 seconds at a certain volume (distorted), the next 0.5 seconds at half that volume (no distortion).
- Exported and opened the exported file. As expected, the first 0.5 seconds showed serious clipping, the next 0.5 seconds appeared as it should.
Other than manually adjusting levels beforehand (i.e. in a multitrack recording, reduce the gain of all tracks by the same amount and hope the reduction was enough to avoid clipping; if not, try again) can Audacity analyse the entire recording, find the maximum level after pans are taken into account, then reduce the gain on all tracks so that the exported file has a maximum level of 0dB (or other value)?
I hope it can. Audacity will be of little use to me as a multitrack recorder if it cannot.
No, Audacity cannot do that. Neither can Pro Tools IIRC.
If you are working in 32-bit float, you can do this:
Select All tracks then Mix and Render
Select the resulting “Mix” track and do Effect > Amplify accepting the default values.
Export the “normalized” Mix track.
The reason this works in 32-bit float is that, although clipping is indicated on the waveform the underlying data is not clipped, and will not be until it is exported to a 16-bit file.
Did you really mean Amplify? The question was about normalizing. I use neither - have no need to - so asking simply to enhance my knowledge.
Ah, the Amplify versus Normalize dichotomy.
As of 2.0.0, the Normalize effect has a “Normalize stereo channels independently” checkbox that is unchecked by default. In this state it behaves identically to the Amplify effect. That is, Amplify scans all selected tracks and channels, determines the maximum amplitude found, offers an Amplification factor that will set the maximum amplitude to 0 dB, and applies the same amplification factor to each track/channel.
If you do Effect > Amplify and accept the default parameters it is the same as doing Effect > Normalize and setting “Normalize maximum amplitude” to “0” while leaving “Normalize stereo channels independently” unchecked.
Thanks, Bill, for the workflow. Worked fine. I was not aware of the Mix/Render capability. Is that how the pro applications get over the problem of multitrack clipping?
Now for some more understanding: why does this method work in 32-bit and not 16-bit? Where does the extra headroom come from? Is it simply because Audacity when in 16-bit mode is limited to 16-bits of accuracy, whereas when in 32-bit mode it has 33-bit accuracy (or some higher number)?
16 bit is signed, fixed point format. When you run out of numbers during overload or clipping for example, that’s the end. The damage is permanent. 32 bit floating does not have fixed numbers. This allows you to clip or create overload damage without actually losing any data. Just reduce the loudness of the work and the show recovers.
If you overload either the input or the output system, then you’re still dead. That’s non-recoverable damage, but using floating point in the middle allows effects and filters without worrying about overload damage.
I only have experience with Pro Tools LE. In that case mixing is done in real time, and you have to watch your output meters to make sure you didn’t clip during the mix. It at least tells you how much you clipped, so you can turn down your output sliders to compensate, then mix again.
To expand on what Koz wrote, since 32-bit is also floating point the range of values that can be stored is enormous. If you exceed +/- 1.0 when in 32-bit float mode, Audacity will indicate clipping (which is good, since the clipping would actually occur if you exported to anything but a 32-bit floating point file) but the data is not really clipped and can thus be recovered by amplifying by a negative dB amount.