User talk:PeterSampson/Proposal: Improvement and rationalization of Amplify, Normalize & DC-Offset removal - V3

Note on V3 of this proposal
Peter 14May11:In this version, following unanimous feedback from reviewers, I have withdrawn my proposal for a -3dB peak amplitude initial default setting for Normalize and Amplify:
 * Normalize: Initial default on first use of the effect to be set to -3.0 dB to encourage users to leave some headroom (this is the "hardwired" level that Dominic provided in 1.2.x, variability was only introduced in 1.3.x).
 * Bill: -0.5. We can argue for -3, -2, -1 -0.5, or 0 dB as "optimum" for specific situations. No matter which we choose, new users will think this is the "best" setting. It's been 0 dB for a long time and I think there's a case for leaving it there, with documentation suggesting lower levels for specific situations.
 * Gale: +1 on keeping the default at 0 dB (and also the 0 dB as default for New Peak Amplitude in Amplify). One reason Normalize was changed to 0 dB was a string of complaints (knowledgeable or otherwise) about -3 dB in 1.2. Think the "maximise" word that many will be aware of.
 * Amplify: Initial default on first use of the effect to be set to -3.0 dB to encourage users to leave some headroom.
 * Bill: Again the confusion. The default is not -3 dB. The default is the amplification factor needed to make the maximum peak level of the selection (which may include multiple tracks) X dB. I think we should leave it at 0 dB, per my comment above on this same issue for the Normalize effect.
 * Gale: +1 to Bill. And that's why I think an option to launch at the last used amplification level makes sense as per Feature Requests.
 * Bill: We can't launch the Amplify effect with the previous amplification factor since that might cause clipping in the new selection. The behaviour should remain the same an now - calculate the amplification factor for 0 dB max peak amplitude based on the selection.

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 stero pair as a single entity - a "track". In order to operate on each channel separately the user must "split" the stereo track.
 * For those who simply wish to normalize a stereo track (or even normalize multiple stereo tracks) I'd support a "link stereo channels" checkbox.
 * I'd support a separate "Remove DC offset" effect.
 * The Amplify effect confuses things somewhat by offering the "New Peak Amplitude" text box, which looks like "normalizing" but is not. Perhaps this could be removed, or made non-editable (just reporting). The only need I see for this control is when I want to "normalize" a stereo track to a new peak amplitude without changing the channel balance.
 * At the moment I do not support merging the effects. I think that is likely to create something that is even less intuitive, or loses functionality. Specifically:
 * "Switchable option to apply the same amplitude adjustment to all selected tracks (current Amplify behavior) or to apply amplitude adjustment to each selected track independently (current Normalize behavior) - thus making the behavior more explicit". To my mind this is less clear than the distinction between the two effects. What "amplitude adjustment" will be applied to "each selected track independently" - an amplification factor, or a target peak amplitude? If an amplification factor (which is what is entered in the text box), then there is no difference. You need an effect that specifically adjusts each track to a new maximum peak amplitude.

Feedback from Steve Daulton
I agree that there's room for improvement regarding Amplify/Normalize, but I'm not sure that combining the two is the best solution.

"The Problem" then "The Problem: DC offset removal". Don't we have 'several problems' rather than (confusingly) two "the problem"s?
 * 1) "DC offset correction" is "hidden" in another effect.
 * 2) "Normalize" does not behave as expected (channels normalised independently)
 * 3) "Amplify" defaults to sub-optimal level for "mastering".
 * 4) "Normalize" requires a positive integer for target dB level (the "-" is in the control text) whereas "Amplify" shows the target level as a negative number. Entering a negative number in Normalize will cause clipping.
 * 5) DC offset correction belongs at the start of the editing task while Normalizing belongs at the end.

Feedback from Ed Musgrove
What Steve said…+1 across the board.


 * In general, I only use Normalize to repair DC offset (and only in others’ recordings as my system does not induce it).
 * Make “Remove DC Offset” a separate effect.
 * You can leave it in Normalize as well if that's easier on the programmers.
 * Leave Amplify exactly as is.
 * 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
 * Remember this: after all these years I doubt that Audacity’s user base would appreciate a merger of these two.
 * Peter 12May11: I am inclined to agree; it may look like a regression to many users.

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 rebalance the tracks which is what a high proportion of them probably do need.
 * Peter 13May11:: a good point about menu position. As normaliztion is such a workhorse function, how about providing a button for it in one of the toolbars?
 * Gale: The buttons all provide an immediate action, they don't raise a dialogue. I think a button would have to take some prescribed action like "Amplify to 0 dB", "Normalize at current setting". I think a Normalize button would be confusing.
 * 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.
 * Levels - Are the practical implications of the Nielsen and Lund research applicable outside CD players. e.g. to playing a WAV on the computer which was normalised to 0 dB? Subjectively I've always felt any consumer level CD player is subject to distortion whenever the music reaches 0 dB (and of course when then music is very quiet which is a limitation of digital). I've also always felt these issues are much less significant when the WAV is played on a computer (even with a stock motherboard sound device).

Feedback from Peter Sampson

 * For me the single really critical issue is getting an option into the Normalize effect to link the two channels of a stereo pair. In its current state the Normalize effect is positively dangerous to users with inherently balanced kit, potentially causing them unknowingly to change/damage their stereo image - to the extent that I would actually regard this as a bug.

Further feedback from Steve Daulton
I think the feature request section that you quote for "Normalize" misses the very important point that Bill raised. Consequently I think that the proposal needs to distance itself from the section "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)"

I'm a bit embarrassed to have missed that point in my first reply, but 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.

This is a relevant note thread transferred from the manual's "Splitting a recording into separate tracks"
Step 3 - Maximize the volume of the recording

If you did the original recording properly and avoided clipping, the recording is probably not at the maximum possible volume. In order for the CD you burn to be at maximum volume and thus match other CDs in your collection we need to fix this.

Gale 05May11: Is the above recommendation for portable players? Peter 6May11:It's based on the general consensus on the forum over the years from elves and other heavyweight contributors. My own personal experience is only with iTunes and iPods. Both had no problem in the past with tracks that I amplified up to 0dB and then exported as an MP3 with LAME from Audacity - or with exported WAVS (from max. 0dB projects) loaded into iTunes and there converted into AAC. These days I only amplify up to the -2dB just for safety for potential future use on non-Apple platforms. Steve always recommends leaving a little headroom, and it was a discussion thread with Bruno that set me off on the -2B datum. I don't know what experience or knowledge that they have to back that up. But I find that -2dB Amplify gives a plenty loud enough file. Gale 06May11: Hmm well I think some people will question this especially as our defaults are 0.0 dB. It's news to me that players would distort at 0 dB. Of course if you are going to apply DSP effects in the player it makes sense not to maximise. Peter 6May11: Hmm indeed - actually it's only for Amplify that our default is 0dB. With Normalize, in 1.3.x, the original default may well be 0dB but thereafter the Normalize dialog box defaults to a maximum amplification level "remembered" from the last use of Normalize. I prefer the Normalize behaviour in this respect and have added a piece on the FR page on the Wiki under Effects>Amplify for this. I also note that in 1.2.x (tested on 1.2.4b and 1.2.6) Dominic did not offer a variable maximum amplitude level, but rather had it "hard-wired" to -3dB (presumably because he may have been aware of headroom issues. Personally I would like to see our "defaults" set to -2.0dB to provide headroom.  Do we need to start a Proposal page to sort out Amplify/Normalice/DC-offset removal?
 * 1) Click on Edit > Select > All
 * 2) Click on Effect > Amplify
 * 3) The default choice in this dialog is to amplify to a "New Peak Amplitude" of 0 dB (the maximum possible). However as some players could have playback problems with audio at 0 dB, it is recommended to set a maximum of -2.0 dB to provide some extra headroom.
 * Gale 08May11: Certainly a Proposal page would be a good idea. Normalize does not work independently on multiple tracks in many other apps. If we still have two separate tools for volume changing, there are some possible enhancements for Amplify too.
 * Peter 8May11: ok Gale, I'll try to make a start on a draft proposal this week. I'll start it off on my user pages in the Wiki first, to get some editorial review and approval prior to publication.  Interestingly, I did run into a use-case on the forum this morning where the current behavior of Normalize was just what the poster needed: a mono recording in a stereo pair which was unbalanced L-R.  I did learn from reading Carla Schroder's new book on Audacity that if you have multiple tracks selected then Normalize treats each of those tracks independently unlike Amplify which treats them as whole.  I assume we would want to retain this behaviour, but maybe make it switchable?  I'm guessing too that it may be worth making a case in the proposal for merging Normalize and Amplify.  Any thoughts before I start writing?
 * Gale: Normalize is actually a good choice for many people recording stereo tapes and LPs on USB or cheap equipment because those recordings will often be unbalanced. Many apps don't even have independent amplification so we don't want to throw the feature away. The problem is that the expectation of "Normalize" to more experienced users is that it only calculates for the loudest track so they get a shock when it changes balance between tracks/channels. Anything is on the table - switch the names of Amplify and Normalize, make them one tool, add more features to both. Thanks. When you don't need this div any more, please delete it.

Note that Amplify retains any volume differences between channels of a stereo track. In practice however, consumer-level turntables, tape decks and/or amplifiers may well record stereo channels with a stronger signal in one channel than the other, which you will probably want to correct. In that case, use Effect  > Normalize instead. One problem when copying records is that a loud click in one channel can cause Normalize to create an unwanted change in the stereo balance. In that case you should consider removing the click before the Normalize step, using Click Removal. For more information about the difference between the Amplify and Normalize effects see this page on the wiki.

Notes from the forum
A file that is normalised/amplified to -1 dB peak level will sound virtually the same as squeezing out that last 1 dB, but dramatically reducing the possibility of clipping. When exporting as WAV you will probably be OK to set the peak level to 0 or -0.1 dB, but if you may be making an MP3 version at any time, then in my opinion you should definitely allow at least 1 dB of headroom. Some people like to go as low as -3 dB, and although that is a very safe setting I think that it is possibly a little over cautious. Ask 5 people this question and you are likely to get 5 different answers, though most would recommend a target level somewhere in the range of 0 dB and -3 dB.
 * Steve:If the "Normalize" effect had an option to "link" both channels of a stereo track, then this could also provide the necessary functionality ... Personally I'd prefer this solution as there are many other situations where it would be useful to Normalize with stereo channels linked.
 * Bruno:I'd risk saying that 99.9% of those who use normalize are not aware that it's acts separately on both channels. I'd not only like to see the linking option in normalize as I'd like it to be the default... I'd be as radical as eliminating normalize and putting "remove dc offset" only in its place. I can't remember of a single situation in which I needed to "normalize" both channels separately... and if I needed I'd probably split the track use amplify and join again...
 * Steve: I'd rather not lose the Normalize effect. If recording with two microphones (stereo pair), it's quite easy to have one channel louder than the other, even though both microphones are recording very similar sounds. When transferring tapes to CD, it's not uncommon for the left/right playback levels to be slightly out of adjustment - particularly with old tapes and/or old tape players.  In both of these situations, Normalizing channels independently can be a quick, easy and effective way to rebalance the stereo.
 * Steve:  My reasoning for leaving a little bit of headroom on the final exported file is based on a number of factors:There's no guarantee that audio playback equipment will reproduce 0 dB - several studies have shown that some high quality CD players by reputable manufacturers will clip just below 0 dB, particularly with audio that has significant amounts of high frequency content.  If the exported file is converted to a lossy format (for example MP3), then there is a high probability that 0 dB peaks will be clipped due to the conversion process.
 * 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?
 * Koz: I do almost everything with an idea of my audio peaks hovering around -3. It's a good compromise and is the only value available in Audacity 1.2. Audacity 1.3 gives you the ability to choose any value you want. I still pick -3.
 * Steve: A reference regarding why the final exported audio should be a little below zero dB: 0dBFS+ Levels in Digital Mastering. SØREN H. NIELSEN AND THOMAS LUND (pdf file).
 * Peter 13May11: Interesting paper there Steve - when was it published? It's certainly a good supporting case for setting the default max levels to -3.0dB, the level that Dominic originally hard-wired Normalize for in 1.2.x and the value that Koz (as a pro.) normalizes to his peaks to.

Previous Feature Requests relating to this proposal

 * Normalize:
 * 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 as you suggest, we should have an option inside "Normalize" to "retain balance between multiple tracks" or similar wording (which of course would still work on last used dB value). Then some people prefer Amplify defaulting to 0.0 dB peak, so if Amplify and Normalize were merged into one effect, you have quite complex options which would probably bamboozle a novice.
 * Move the negative sign into the text box, like "Amplify": (3 votes); otherwise, adding the - sign gives you clipping.

Gale: The following, though popular, is probably outside the scope of this proposal and would need a separate Proposal (and maybe a separate tool):  Replay Gain: The current peak value normalization is far from what human ears perceive. If hard to implement, we can normalize to RMS (light blue in waveform) values instead
 * Other feature requests for Normalize: Gale: The following could be considered as an additional option for Amplify or Normalize, or as presets which could be unavailable if they caused clipping, though it would add complication:
 * Percentages: Would it be possible to have a percentage normalisation option (as an alternative to decibels)? Many people have problems with decibels.


 * Amplify:
 * Default to last used maximum dB level: (1 votes) Currently it defaults to 0 dB whereas Normalize defaults to last used maximum.

Gale: The following contradicts the proposal as is, but makes more sense to me than remembering the New Peak Amplitude, especially if we make the latter uneditable:  Option to launch at last used amplification level: even if the New Peak Amplitude is different each time. Use case is trying/undoing different amplification amounts to get the one you want, and you want to see quickly what you last tried (or do it again if you think that will give you the desired result. 
 * Other feature requests for Amplify: Gale: The following could be considered as additional options:
 * Linear "New Peak Amplitude" input: less confusing because it matches with default waveform (and the generate effects)
 * Toggle non-destructive clipping when in 32-bit float quality
 * Presets in dropdown menu


 * Better management of DC offset:
 * Automatic removal of DC offset after recording (rather than just as an option in Normalize) (7 votes)
 * Audacity should block DC at source because of the problems it causes. DC is not sound, and passing DC should only be a fringe purpose for scientists/researchers. (2 votes)
 * Blocking DC at source raises technical issues which we may well not want to address.


 * Bind effects to buttons or keyboard shortcuts: including particular parameters thereof e.g. one keystroke to amplify + 3 dB, another keystroke -3 dB, another to compress (32 votes)
 * Effects for which this has been requested: Amplify; Change Speed; Fade In/Out; Generate Tone; Insert Silence; Noise Removal; Repair; DC removal ; Chris' Compressor
 * Peter 13May11: to which I would add Normalize