Proposal Normalize & Amplify Consolidation

From Audacity Wiki
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This page is a proposal to merge the Amplify and Normalize effects into a single effect. It is an alternative Proposal to Proposal Normalize but shares its aim of giving a Normalize a way to normalize stereo pairs as a single track.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.

  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.

The Problem

The Amplify and Normalize effects both change the amplitude of the signal in slightly different ways. Novice users find it hard to decide which to effect to use. It therefore may make sense to merge these into a single unified command, with options to enable all existing or proposed behaviors for both effects.

Proposed Feature

  • Merge the Amplify and Normalize effects into a single effect with a radio button choice between Amplifying "by" an amount and Normalizing "to" a level.
  • Normalize continues to set the level of all tracks independently, but a new checkbox offers a choice to normalize a stereo pair as a single track as well as the current behavior of normalizing each stereo channel independently.
  • Effect could be called "Change Volume" or "Amplify / Normalize" (which would have greater backwards compatibility).
    • Optionally, consider retaining the "Amplify" and "Normalize" selections in the effect menu (in addition to a new "Change Volume" entry) , both directed to the "Change Volume" effect.
    • Gale: -1 on two menu items going to same effect.

Developer/QA Backing

  • Gale +1. But I think GUI should lie somewhere between the simplicity of the left hand image and the complexity of the right hand image.
  • Peter -1
  • Steve -1

Use Cases

  • Users are often confused as to which effect to use.
  • Frees an item in the already long Effect Menu.
  • Assuming a merged effect applies DC offset removal (optionally or not) and DC removal is not otherwise applied or available, we significantly increase the chance that user will remove offset.


GUI Examples

Here's some examples of what the GUI could look like for a combined Amplify/Normalize effect.

ChangeVolumeAmp.png    ChangeVolumeNorm.png

  • When Amplify is chosen:
    • "Normalize to..." text box is greyed out
    • "Link stereo channels" checkbox is greyed out
  • When Normalize is chosen:
    • "Amplify by..." text box is greyed out
    • "Normalize to..." text box defaults to 0 or last setting.
    • "Link stereo channels" checkbox is enabled and remembers its previous state
  • Allow clipping
    • As now happens in the Amplify dialog, if this is not checked and settings that would cause clipping are chosen, the "OK" button is disabled.
  • The "Amplify" and "Normalize" text boxes are independent (typing in one does not affect the other)
  • Amplify or Normalize selection state is remembered. Probably it should initialise to "Amplify"
  • If the choice is changed from Normalize to Amplify then a recalculation of the max amplification factor would need to happen.
  • The "Remove DC Offset" button is Ed's idea. It would remove offset and be greyed out when done, though this assumes Audacity can detect offset. If not, it would be a checkbox. Longer term it may be better to have Audacity remove DC offset by default. A related Proposal DC Offset removal‎ suggests moving DC Offset removal to a separate menu item so that the opportunity to remove it is not confined to those making volume changes,


  • There is another option (in an earlier draft of the images) for a checkbox "Remember last value" for Amplify. I don't think this is a problem - if this value would cause clipping, OK greys out. I still quite like this idea. Whether we had this option or not, I still think it would be less confusing and avoid regressions to let Amplify have a target. My concern is if user will otherwise be able to grasp "why" the text box has different values each time. It could look like:
Amplify by: [   ] dB to peak of: [  ] dB
 [  ] Remember last Amplify value

Normalize to: [   ] dB
 [  ] Treat stereo channels independently
  • Or you can take more vertical space which could let us add another option to Normalize. Does "Treat stereo channels independently" help?
  • "Amplify selection by dB" is I think potentially a little confusing as Normalize works on "selections" too. I would just leave "selection" out.

Previous Feature Requests relating to this proposal

To date, no feature requests have been raised on the Wiki or the Forum for such consolidation.