Completed: Proposal Binding Effects to Hot-Keys

From Audacity Wiki
Revision as of 12:37, 5 January 2012 by PeterSampson (talk | contribs) (GUI Examples: changed image of GUI: no tick boxes and title changes (with photoshop))
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This page is a proposal to enable the Binding of chosen effects to buttons or keyboard shortcuts.

This is not intended to be tackled prior to the release of Audacity version 2.0

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 Effects list has grown very long in Audacity, most users use only a small subset of these effects and finding the ones they need in the long list is difficult (and requires at least two or more clicks).

A typical user's use of effects means that they will use a small subset - but each item will be used many times in the editing process.

Proposed Feature

Keys (and key comninations) to be assignable to commonly used effects.

The keys used and the effects to be bound to them to be definable by the user.

Developer/QA Backing

  • Peter
  • Greg Kozikowski
  • Ed Musgrove--though neither QA nor Developer, I am going to vote -1 here. +1 for the concept of allowing shortcut key binding for effects; -1 for limiting the number.

Use Cases

User transcribing LPs or tapes This user will typically be repeatedly using the following five effects: Fade In, Fade Out, Click Removal, Noise Removal and Amplify (or Normalize). In particular the Fades are used at the beginning and end of each track, so several time for each LP, these involve 2 clicks each to activate. Each use of the effect. The other effects will often involve more than two clicks to activate.


  • Keys (and keystroke combinations) to be assignable to commonly used effects. The keys used and the effects to be bound to them to be definable by the user.
  • The keys to be usable in combination would be: Ctrl, Alt and Shift (as for the existing keyboard bindings).
  • Although 5 to 7 keybindings for effects are likely to be ample for most users, there is no real need to limit the number as there are plenty of available keys that are not currently assigned in Preferences>Keyboard.
  • The effects bindings to keys to be managed by the user through a new Preference page called "Effects Shortcuts" (see GUI mockup below - please note that the text on the GUI mockup has an earlier and longer "Effects Keyboard Shortcuts", this was considered too long).
    • An alternative approach would be to use two tabs in the Effects dialog of Edit>Preferences, the first being for the existing Effects dialog and the second being for key bindings for effects.
  • Audacity to check that the user is not attempting to define a key which already has a binding, either here or in Preferences>Keyboard - in which case the binding would be denied and a warning/error message raised.
  • In order to make the facility more discoverable, at least one effect should have a default key assigned (I suggest "Amplify" would be a suitble effect to use as it is likely to be used by most users).
  • Checkbox by each effect in the list to indicate which keys are to be bound to effects.
  • Two radio buttons to be provided for each effect (where appropriate) for "Use Last Values" or "Use Default Values".
    • If "Use Last Values" is checked, the effect dialog will be populated with the last used parameter values for the effect enabling the user to change any of those values if required prior to pressing the execcute command (the "OK" button).
    • If "Use Default Values" is checked, the effect dialog will be populated with the Audacity default parameter values for the effect enabling the user to change any of those values if required prior to pressing the execcute command (the "OK" button).
    • Only one of "Use Last Values" or "Use Default Values" can be selected "on" at a time. Clicking on the radio button that is not currently selected will select that one and de-select the previously selected one.
    • Both radio buttons for any particular effect to be off and un-settable until a hot-key combination is typed for that effect by the user. At that point Audacity will set the "Use Last Values" as the defult stting to reatin compatibilty with current behavior.
    • If the user clears the hot-key setting for the effect then Audacity will uncheck the currently checked radio button leaving both radio buttons unchecked.
  • For effects that have no parameters (and thus no radio buttons or dialog box) when the user strikes the hot-key combination with some audio previously selected then Audacity will immediately activate the bound effect on the selected audio.
  • The assigned hotkeys will be inoperable if no audio is selected.

GUI Examples

The example below shows the Effects mapping as a separate entry in the Edit>Preferences dialog tree.

Effects mapping to keys no tickboxes.png

Ed's comments:

"This is real code (Peter 5Dec11: with some light photoshopping by me) but only built-in Effects are considered and only the GUI is implemented at this time. I have some ideas about how to install the shortcuts on the menu. I realize that post-2.0 the Developers have plans to add the Effects plug-ins to the Commands Manager – this should make managing their shortcuts a lot easier. My interim solution allows the user to turn any Effect on or off in the menu, select whether the Effect dialog opens showing the default values or the most recently used values and, obviously, allows the association of the keyboard shortcut. It also creates a separate Preferences page – the Keyboard page is already very long."

The example below is the alternative proposal using tabs in the Effects dialg of Edit>Preferences


Thanks to Ed Musgrove for supplying both these mockups.

Please see the Talk page for further relevant details of the forum thread discussing this proposed GUI (and for an image of Ed's original proposed extended GUI derived from real code).

Previous Feature Requests relating to this proposal

This is one of the "Highest Rated" items in the list of Feature Requests on the Wiki.

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 (34 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