Talk:Completed: Proposal Normalize

Voting from the email thread
Peter 7Jun11: I have transferred here the results of the summary voting from the email that Steve Daulton sent out to the devel and quality email ists recently

Steve wrote: On the following points I think that all of the points have been made at least once, so could we have a vote on:

1) Normalize should be able to do stereo (linked channel) normalizing. 2) The current behaviour (normalize stereo channels independently) should be preserved as an option. 3) Appropriate wording for such an option is: "Normalize stereo channels independently" 4) If consensus is reached that it should be an option, the default should be OFF (stereo track normalized as one track) 5) The minus sign should be moved from the GUI into the text box.


 * Steve Daulton: My votes are +1 for items 1, 3, 4 and 5. For item 2 I am happy to go with the majority decision.
 * Bill Wharrie: +1 to all five points.
 * Gale Andrews: my votes are +1 to 1, 2 and 3. -1 to 4 though I'll go with the consensus on that.  5 is a bug and not under discussion here. It should be fixed.
 * Martyn Shaw: I'm +1 to Steve's points 1-5
 * Peter Sampson: +1 to all five points.
 * Roger Dannenberg: +1 to all five points. Independent normalization of each track seems to be very odd and unexpected behavior.

Latest feedback from the forum
Peter 7Jun11: we got this latest feedback on the forum today on this issue from recent joiner Tinmar:
 * I just noticed that when normalizing a stereo track Audacity does seem to normalize both stereo channels independently. I'm not sure whether this a bug or a "feature"? If it is the latter I would seriously recommend to change that quirky behaviour. It's contrary to what any other standard audio editor does when normalizing a stereo track and irretrievably destroys its integrity. If I'd ever want to normalize both channels of I stereo track idependently i would split them into two mono channels beforehand.

Discussion from the email thread on voting

 * Peter 5Jun11: Steve Daulton recently put out a summary voting email - this generated some additional feedback which I have copied to the talk page here. I will transfer the voting to this talk page later.

Comments from Martyn
In terms of coding for stereo tracks, this is not as simple as it might seem. It requires some thought to make it as fast as possible, which makes it prone to error and so possible bugs. It is a feature request, but one worth doing for 2.0?
 * Peter: I think is is worth doing for 2.0 because although this is not officially declared as a "bug" most of us on Q/A regard it as erroneous behaviour that potentially lets Audacity's reputation down. It is more than clumsy to be out of step with the rest of the audio world in this regard.
 * Gale: "Stereo normalize" (limited to one track at a time) is available now - in Amplify. So it is a Feature Request to add it to Normalize.
 * Steve: Outside of Audacity, Peak Normalization is defined in terms of changing the amplitude of the entire audio signal by the same fixed amount up or down. Using Amplify is a partial workaround for the problem that the Normalize does not do that. I don't see how a partial workaround can turn fixing this into a "feature request".
 * Peter: I'm puzzled why speed would be an issue, as when dealing with a single stereo pair as linked pair the behaviour of Normalize should be the same as Amplify now (that is why we all use, and recommend, Amplify as the workaround to the problem cited in this proposal). My recent timing tests on various versions of Audacity (distributed via the Quality email list) indicate that Amplify is always significantly quicker than Normalize when working on a single stereo pair.

5 [the minus sign issue] is not (technically) a bug, in that it 'does what it says'. (-)3(dB) gives you that. (-)-3(dB) gives you +3dB on all tracks, as you asked.
 * Peter: but I'd prefer to see it remain on Bugzilla, as that way it has a real chance of being fixed.
 * Gale: I know Vaughan feels strongly about this, and I feel it is a bug because I don't think it was considered that people may not be able to see the minus sign (or don't see it because it is unexpected), and two minuses making a plus isn't obvious to all. It's also a UI inconsistency with Amplify and I believe every other comparable effect where there is negative input.

The Normalize page in the manual would need updating, but it does already since it does not 'equalize the volumes of the left and right channels of a stereo track' and the stuff in the blue box is misleading re 'channel imbalance in the equipment', as acknowledged by Gale below (you need to remove clicks first, at least).
 * Peter: I'm pretty sure the manual team would more than happily update the sections of tha manual that needed updating if the developers were to implement this proposal. (Bill, Ed, Steve and myself have all supported this propsal - so I'm sure we'd put our shoulders to the wheel to change the manual.)
 * Peter: we would also need to change the Amplify and Normalize page in the wiki (the one that was created to explain the tricky differences leading to this proposal).  But we'd happily fix that too if the development was undertaken.
 * Peter: re click removal: the tutorials in the manual recommend removing clicks at a very early stage in the editing process.  E.g. see: this recommended workflow and this page.

Comments from Gale
I don't feel lack of stereo normalize is a "bug" because the last time this was raised three years ago, there was no developer interest in it except for Markus and Martyn&#8225;. I assume the other developers intended it as it was, but possibly didn't consider the awkwardness of stereo normalizing multiple tracks at a time. The more constructive solution to my mind is still to merge Amplify and Normalize (the latter also to have a new option to do "stereo normalize").
 * &#8225; Vaughan pointed out that he has had input especially as to the -ve sign in the Normalize GUI. And before that in 2006 he was arguing to merge the two effects while others saw Normalize as the "Quick effect for Novices" and "Amplify" the advanced. And that thread from 2006 refers to "contentious" previous discussion that came to no decision. So argument has been going on at least 5 or 6 years.


 * Peter: I see this as a longer term option that we could consider after we have fixed the current behaviour of Normalize (and personally, I do not support the merger on grounds of increased UI complexity)
 * Gale: I don't see my proposed UI as "complex" unless we want to add lots more features to amplify and normalize. It seems inefficient to code twice when once would do, especially if doing it now with a separate Normalize is more complex than was thought.

We've been here before, three years ago ...
A little research in the Audacity archives shows that we have been through this particular discussion on Normalize over three years ago. Back in January 2008 Markus Meyer (an Emeritus Audacity Developer) raised the issue of what he believed to be errant behaviour by Audacity in its handling of stereo tracks in Normalizing each channel independently.

The full thread may be viewed here but I made a precis of the key points:
 * Marcus Meyer: I have reports here that Normalize in 1.3.4 does not work correctly on stereo tracks. It seems to normalize each channel independently (probably treating them as two mono tracks). I guess this is a bug.
 * Gale: Behaviour is like this in 1.2.6. Why is it a bug? If you want to scale the two channels up by the same amount, preserving the dynamic contrast between them, use Amplify. In other words, on most stereo tracks this will make one channel to be at the target level. If you want both channels brought to the same level, removing the dynamic contrast between them, use Normalize.
 * Markus: Because it goes contrary to common sense? I know I can just use Amplify, but it is common to tell newbies "to make your track as loud as possible just use Normalize before export". … I bet, 99% of the people who use this just don't notice that Normalize works this way because stereo tracks in overall tend to have about the same peak amplitude.
 * Gale: … I think you're probably right there, and I can recall a few people complaining that normalize has changed the balance between the tracks (though fewer than those who want to rebalance a stereo track)…
 * Edgar Franke: 'balancing' can only work with RMS but NOT with peak values. A 'normalize' effect that maximizes both channels independently according to their peak values DOES NOT balance a track.
 * Markus: I can see that in rare cases users may have two stereo tracks that are out of balance (how often does this happen in practice anyway?), but the user can still do "Split Stereo track" and then normalize them independently.
 * Markus: I really do like Normalize because it is a very convenient UI to amplify a track to 0db. I had used Normalize myself for this task and actually was a bit shocked that it did not do what I had expected from it for stereo tracks. Until now I thought that tracks in Audacity were a single object and stereo tracks were also treated as single object in its entity. This means that effects, if it makes sense in this particular situation, should operate on them as a whole…
 * Edgar Franke:   The problem is not balancing or not balancing, the main problem is that in Audacity 'Normalize' and 'Amplify' are mistaken. 'Normalize' behaves like 'Amplify' should and 'Amplify' behaves like 'Normalize' should.  IMHO Audacity should behave like long-approved sound studio standards…

Feedback from Vaughan
Summary: I'm opposed to removing the ability to Normalize stereo channels independently.
 * Peter: agreed, but that is not suggested in the proposal

Seems to me best solution is to merge Amplify and Normalize, checkbox for stereo channels independent. And probably make Remove DC Offset a separate effect. I don't know, but it may be the case that doing Remove Offset separately from Normalize is a lot more time consuming than doing them in the same process. If nobody's looked at the code, it's easy enough to do some tests.
 * Peter: The key reason for wanting to separate DC Offset removal from Normalize is that DC Offset should be used at a very early stage inthe editing process, normally immediately the capture (recording or import) whereas Normalization is normally the last editing step prior to export of the finished audio. Any additional time penalty would be a secondary cosnsideration compared to that.

Discussion re stereo channel linking - moved from the proposal page

 * Gale: "You can't Normalize multiple tracks at the same time with the Amplify effect, so the only workaround there is to use the Amplify effect on each track separately." Exactly, that is the "new feature" that I meant - scaling up (which we now call "Amplify") multiple stereo tracks independently one after the other, so they all end up at the prescribed peak in one channel or the other without change of stereo balance. We can do this with the new checkbox in Normalize, is that the intention?


 * Steve: It's only a small subset of user cases where there is any advantage for normalizing channels independently. The right tool for adjusting stereo balance is the pan slider. It should not be an unpredictable side effect of Normalizing. Complaints about stereo channels being Normalized independently are not very common, but people using "Normalize" without realising that it can adjust the stereo balance is alarmingly common. The usual assumption is that "Normalize" in Audacity will work in the same way as it does in the rest of the Universe. Gasps of disbelief are the reaction when they learn the shocking truth. Using the Amplify effect to Normalize is a "workaround" that we all repeat every week on the forum. As there is a "Normalize" effect, there really should be no need for a workaround. You can't Normalize multiple tracks at the same time with the Amplify effect, so the only workaround there is to use the Amplify effect on each track separately.
 * Gale: "The right tool for adjusting stereo balance is the pan slider." But it's a hit and miss corrective - it's not that easy to guess what slider correction is needed (certainly not with default waveform view). Then you need to mix and render if you want to see the result. And pan will never scale up the stronger channel, but many users will want to "maximise" in one sense or another so then they still have to use Amplify after pan. So Normalize is I think the better general purpose tool. People with a click that is going to wreck the stereo balance should get rid of the click.

Previous Feature Request relating to this proposal
This Feature Request is taken from the Feature Requests page in the Wiki:
 * Option to calculate track gains together to avoid changing stereo balance: When multiple tracks are selected, only the highest peak level of ALL tracks should be considered to adjust each track by the same amount so that the volume of each track relative to each other will stay the same. (9 votes)
 * Gale: This is what Effect > Amplify does. Some people would argue "Amplify" should be called "Normalize", or we should have an option inside "Normalize" to "Normalize stereo channels independently". If unchecked, this would retain the channel balance in stereo tracks (while still letting all tracks be normalized independently). Then some people envisage Amplify and Normalize could be merged into one effect, but care is needed so that too many options are not provided which could make a single effect too complex.

Normalize with different normalization methods
Mock up (courtesy of Steve Daulton) of possible enhancements (post Audacity 2.0) to Normalize effect:



Includes different normalization methods (including the often requested Replay Gain for "equal loudness" normalizing) and a "Help" button that links to the appropriate Help section in the manual (or at least a reasonably detailed help pop-up).

Notes from the forum

 * Ral-clan: Yes, I agree that if Audacity doesn't link the two channels when it Normalizes, then that function is fairly useless.
 * Koz: quoting Ral-clan "I think it might be useful if there was a tick box in the Normalize function that offered something like "tie stereo pairs" or "preserve stereo balance" as an option. That way one could import a number of stereo songs and normalize them all to the same level, but keep the relationship between each song's left and right track intact."
 * That's how I thought it already worked. Imagine my surprise. I believe it should normalize a stereo pair tied and independently if they're split. Normalize should introduce no damage and only change levels. Changing the stereo image is show damage, and better, it's damage that you can't readily recover from without UNDO.
 * Ral-clan: I agree that the way Normalization works independently on each track of a stereo pair in Audacity seems counter intuitive to me, as someone who mixes down and prepares home music studio recordings for burning to CD. I also agree that, intuitively (it seems to me), Audacity should by DEFAULT lock the balance of stereo pairs when normalizing and only adjust MONO tracks independently (another option would be to add a toggle checkbox to Normalization to set balance locking / unlocking of stereo pairs). I'm surprised more people don't feel the same way as this type of normalization is something a lot of people do after mix-down of music. Do they even know that Audacity's normalize function is destroying the stereo balance they've carefully mixed? If they did, would they be content with that?

Feedback from Bill Wharrie
Bill 11May11: Amplify and Normalize do two different things and I believe are appropriately named.
 * Amplify applies a fixed amplification factor to the selection. It calculates the maximum factor that can be applied to the selection and offers that as a default. If you select multiple tracks the effect still finds the peak value in the selection (i.e. across all tracks). "I want to amplify all my tracks by 3 dB."
 * Normalize makes the maximum peak level in each track in the selection the same. This is useful. In preparation for a multi-track mix you could normalize all tracks to, say, -6 dB or -9 dB. "I want to adjust all my tracks so the maximum peak amplitude in each track is -6 dB."
 * Gale: To clarify, Normalize still works on selections, ignoring regions outside the selection. So if we were to rename these two effects (which I think is an option for Normalize if developers don't want to allow it to "link" tracks or channels), distinguishing the effects by whether they work on tracks or selections would be too simplistic.
 * Bill: I'm not suggesting we rename the effects. And, yes, Normalize works on selections, but still works on each track independently. So what I'm suggesting is "Link Stereo Channels". This is the place where Normalize really breaks with every other effect and editing operation in Audacity.
 * Peter: Indeed all other effects in Audacity always work on a stereo pair as a single entity - a "track". In order to operate on each channel separately the user must "split" the stereo track.

Feedback from Ed Musgrove

 * In general, I only use Normalize to repair DC offset (and only in others’ recordings as my system does not induce it).
 * Add a switch to Normalize to operate on a stereo pair as a single track - default set to "on" but let this be a Prefs setting

Feedback from Gale Andrews

 * I agree Normalize is more of a problem than Amplify, but I'm aware that novices may not see Normalize a long way down the menu, and even if they do, they are likely to ignore Normalize if they don't understand the word. So we still have an issue that Amplify won't help novices re-balance the tracks which is what a high proportion of them probably do need.
 * We still have an issue that people can't figure which tool to use which is why we wrote Amplify and Normalize.
 * Peter 13May11:: Yes, I recall from past postings on the forum that some of them even think that they have to use both tools. I do remember from when I had my ION iTT-USB that the manual recommended using Normalize as the final production step.  And that's also what Carla Schroder writes in her new "The Book Of Audacity" on p235 on Normalization.
 * Normalize kind of loses its point to me as a separate tool if it loses DC Offset (which I think it should) and then (by default) does the same as Amplify in operating on the hottest track. The only real difference then is the presentation of a target in Normalize and scale amount in Amplify. So I think there could still be mileage in having one volume adjust tool and its name should at least start with "Amplify". Some of its perceived complexity and decisions on what units it displays/whether target or scale is preselected/remembered could be removed to a preference.
 * Peter 13May11:: I know what you mean - but I have just been discussing this with an Audacity newbie (my wife) and for her I explained the differentiation as Normalize changes amplitude to a prescribed level whereas Amplify adjusts the tracks by a scaled - and that seemed to make sense to her. I fundamentally agree that if we were starting from scratch that a single amplitude adjustment tool would be the sensible way to design the UI.  But we have what we have and I do suspect that removal of one of the effects, or a merger, would look like a regression.
 * Gale: There was very little resistance from Beta users to the removal of FFT Filter that was in 1.2 and its incorporation into Equalization. It removed the confusion about "which should I use?". This is definitely an issue with having two volume changing effects (which of itself is I think somewhat untypical of most audio editors).
 * Alternatively, like a possible solution suggested for splitting the curves EQ and graphic EQ to two menu items, there could be two "Amplify" menu items with *matched design*. The one for scaling multiple channels or tracks is not available if you only select a mono track.

Feedback from Steve Daulton
Probably the *most* important distinction between "Amplify" and "Normalize" is that "Amplify" changes the level *by* an amount whereas "Normalize" changes the level *to" an amount.

When processing a single track, this distinction is subtle, but for multiple tracks the distinction is totally obvious.

Use case 1: Multiple tracks from an album have been imported. The user wants to change the level so that they all have the same peak level. The way to do this is to "Normalize" the tracks to the desired level.

Use case 2: A multi-track project - several tracks that will be mixed down to a single "song". The user wants to change the level of all tracks so that the entire mix is at a different level but without changing the balance between tracks. The way to do this is to "Amplify" the tracks by the same amount.

Providing an option to "Normalize based on the peak level of all tracks" totally confuses the functions of these two distinctly different effects.


 * Gale: I don't see the "target" or "scale by" distinction as the primary one between Normalize and Amplify. Normalize was designed to also be different because it operated independently on each track or channel. I think both distinctions are important. The problem is that users with some knowledge assume/expect that "Normalize" will do what is in the feature request. Personally I would like freedom to do any combination of scale up/use target/per track or channel/per loudest track or channel.


 * Steve: Just two different ways of saying the same thing. If tracks are "scaled by" the same amount, then tracks are processed collectively. If tracks are amplified to a "target", then they are processed independently. The "New Peak Amplitude" in the "Amplify" effect is IMHO a little misleading as it can easily be misunderstood as being a (per track) target, which it isn't. There's probably a better description for that setting that makes it clear that it refers to the highest peak in one of the selected tracks, but I not thought of better wording. A tool-tip could help.

An important issue is that use case 1 is impossible without the risk of unbalancing stereo tracks. Currently the only way to achieve the desired effect for user case 1 is the arduous job of applying "Amplify" to each track individually and resetting the "New peak level" each time (if any value other than 0 dB is required).


 * Gale: I suppose this could be a third option in Normalize, so at least we get a new feature out of all this. Or are you suggesting the only choices for Normalize should be "as now" or "link stereo pairs" (one after the other if there are multiple stereo pairs)? In other words you cannot do what is in the feature request with Normalize if you have mono tracks?


 * Steve: I'm not sure what you mean Gale. As I see it, the options in the Normalize effect should be "Link Stereo Channels" which is selected by default (alternatively an option for "Normalize Stereo Channels Independently" - NOT selected by default). This would mean that the default option would treat one stereo track as one track and not as two independent channels. The behaviour with mono tracks would not be changed.
 * We do gain a new feature, and that is that multiple tracks can be Normalized in one go without damaging the stereo mix of any selected stereo tracks.
 * I strongly disagree with the second element of the old feature request: "When multiple tracks are selected, only the highest peak level of ALL tracks should be considered to adjust each track by the same amount so that the volume of each track relative to each other will stay the same" as that is exactly what the "Amplify" effect does. It is both unnecessary and confusing to duplicate that feature into the "Normalize" effect.
 * Gale: Thanks, Steve. I honestly don't think the original proposal was clear enough, but hopefully it is now. As for "When multiple tracks are selected, only the highest peak level of ALL tracks should be considered" being implemented in Normalize, I agree this is undesirable. I've revised my comment underneath in Feature Requests to reflect that. It *is* what people have said/apparently voted for, but I suspect at least some of them are mixing up "track" with channel or only considering the case where Normalize deals with a single stereo channel. I'll get hold of as many people as I can, which might change the voting somewhat. I've added five votes (you, Bill, Peter, me, Ed) for:
 * Normalize stereo channels independently: If unchecked, this normalizes any stereo tracks as a unit, retaining their channel balance while still letting all tracks be normalized independently to the requested level.