Difference between revisions of "Completed: Proposal Binding Effects to Hot-Keys"

From Audacity Wiki
Jump to: navigation, search
(set a P2 - most of this proposal has been completed - perhaps we need a new proposal for "multiple keys per effect" for varying parameter settings)
m (Text replace - "plugin" to "plug-in")
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{ednote|'''Peter 3Nov13:''' I believe that now that we have Leland's excellent rework of the Keyboard Preferences dialog for 2.0.6 that the GUI examples in this Proposal are largely redundant as I think Leland's is a superior alternative.  Infact most of this proposal is now redundant now that we have the ability to bind effects to hot-keys.  What appears to remain outstanding is Gale's proposal for multiple bindings per effect (to deal with different parameter setting values)<br>[[ToDo-2]]Accordingly I think we should spin that off into a small proposal of it's own and delete the rest of this proposal as "completed".
 
}}
 
 
{{Proposal_Header|This page is a proposal to enable the Binding of chosen effects to buttons or keyboard shortcuts.|}}
 
{{Proposal_Header|This page is a proposal to enable the Binding of chosen effects to buttons or keyboard shortcuts.|}}
  
Line 10: Line 8:
 
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.
 
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.
  
 
+
There is a related proposal: [[Proposal Binding Particular Parameters of Effects to Hot-Keys]].
==The partial Solution 2.0.1 onwards==
 
In 2.0.1 a partial solution was implemented whereby keyboard shortcuts could be assigned to effects (and to the generators and analyzers) to invoke the effect. These are settable via the existing Keyboard Preferences in Audacity which have been extended to facilitate shortcut setting for Generate, Effect and Analyze.
 
 
 
For effects with no settable options or parameters the effect is invoked immediately on striking the shortcut key combination.  For effects with settable options or parameters the effect's dialog box is invoked, populated with the last-used settings, enabling the user to either proceed with their recent settings by clicking on OK/Enter or they can alter those settings in the dialog box prior to using the effect.
 
 
 
While the current implementation will be perfectly adequate for some users (especially those using effects that have no settings dialog), it is still not possible to use a shortcut to run settings-dependent effects without dialog, using predefined settings for that effect.
 
 
 
 
 
The parts of this proposal that are already implemented are <font color="gray">grayed out</font>.
 
  
  
 
== Proposed Feature ==
 
== Proposed Feature ==
<font color="gray">Keys (and key combinations) to be assignable to commonly used effects. </font>
+
Keys (and key combinations) to be assignable to commonly used effects.
  
<font color="gray">The keys used and the effects to be bound to them to be definable by the user.</font>
+
The keys used and the effects to be bound to them to be definable by the user.
  
Bind particular parameters of effects to buttons or keyboard shortcuts ''e.g. one keystroke to amplify by + 3 dB, another keystroke to amplify by -3 dB''.
 
  
  
Line 44: Line 32:
  
 
==Details==
 
==Details==
*<font color="gray">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. </font>
+
*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.  
 
 
*<font color="gray">The keys to be usable in combination would be:  Ctrl, Alt and Shift ''(as for the existing keyboard bindings)''.</font>
 
  
*<font color="gray">Although  5 to 7 key-bindings 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.</font>
+
*The keys to be usable in combination would be:  Ctrl, Alt and Shift ''(as for the existing keyboard bindings)''.
  
*The effects bindings to keys to be managed by the user through a new Preference page called "Effects Shortcuts" (see GUI mockup below).
+
*Although  5 to 7 key-bindings 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.
**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 (also see GUI mockup below).
 
  
*<font color="gray">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.</font>
+
*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.
 +
 +
*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.
  
*Two radio buttons to be provided for each effect (where appropriate) for "Use Last Values" or "Use Default Values".
+
*The assigned hotkeys will be inoperable if no audio is selected (as is the current behavior with the items in the Effects menu).  
**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 execute command, the "OK" button (or execute on <ENTER> key, just as it is now).
 
**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 execute command, the "OK" button (or execute on <ENTER> key, just as it is now).
 
**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 default setting to retain compatibility 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.
 
 
 
*<font color="gray">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.</font>
 
 
 
*<font color="gray">The assigned hotkeys will be inoperable if no audio is selected (as is the current behavior with the items in the Effects menu).</font>
 
 
 
Gale wrote ''(archived on [http://audacity.238276.n2.nabble.com/Effects-Hot-keys-td7425250.html#a7445431 nabble])'':
 
*I do feel some special interface would be needed to manage multiple parameters for an effect, possibly the shortcut would be created in the effect itself?
 
 
 
*I can see possible value in allowing a much wider range of keyboard input to trigger multiple bindings per effect. For example on pressing a shortcut that activated typing of an "effect shortcut", someone could then type "a-6" to remind them of a created shortcut that amplified by -6 dB, or "n32" for a shortcut that applied noise reduction of 32 dB.
 
 
 
*If this was extended to a typed syntax that Audacity understood e.g "nr:r-32 s15" that automatically ran Noise Removal with a noise reduction of 32 dB and sensitivity of 15 dB, you have something really efficient for power users. It could also be another way of running a chain of effects.  
 
  
  
 
===GUI Examples===
 
===GUI Examples===
The example below shows the Effects mapping as a separate entry in the Edit>Preferences dialog tree.
+
As implemented.
 
 
[[File:Effects mapping to keys no tickboxes.png]]
 
 
 
It may be preferred instead to tabulate the dialog box similar to the current Effects>Keyboard dialog, but with three columns: effect, shortcut and the radio button pair.  This would have the benefit of keeping the shortcuts and the radio button pairs neatly lined up vertically.
 
 
 
 
 
 
 
The example below is the alternative proposal using tabs in the Effects dialg of Edit>Preferences
 
 
 
[[File:TabsDemo.png]]
 
 
 
Thanks to Ed Musgrove for supplying the originals for both these mockups.
 
 
 
Please see the [[Talk:Proposal Binding Effects to Hot-Keys|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)''.
 
  
  
Line 101: Line 58:
 
The following high-rated Feature Request is related to this current one in that if this proposal for effects binding to hot-keys is implemented then the objectors and objections to a structured Effects menu might disappear.
 
The following high-rated Feature Request is related to this current one in that if this proposal for effects binding to hot-keys is implemented then the objectors and objections to a structured Effects menu might disappear.
  
*'''Effects Categorization:''' Allow the effects drop-down menu capable of sub-folders or categorisation so that the user can organize his plug-ins however he wishes. {{votes|32}}
+
*'''Effects Categorization:''' Allow the effects dropdown menu capable of sub-folders or categorisation so that the user can organize his plug-ins however he wishes. {{votes|32}}
 
** Only 2 levels deep (Effects > Category), not 3 levels as tried before (Effects > Category > Sub Category). Sub categories are just too fiddly and too much clicking. With just one level of categories, the menu will open by hovering the mouse, making locating a specific effect much quicker and easier. {{votes|5}}
 
** Only 2 levels deep (Effects > Category), not 3 levels as tried before (Effects > Category > Sub Category). Sub categories are just too fiddly and too much clicking. With just one level of categories, the menu will open by hovering the mouse, making locating a specific effect much quicker and easier. {{votes|5}}
 
** Preference setting to turn categorisation off. {{votes|3}}
 
** Preference setting to turn categorisation off. {{votes|3}}
 
** Customised categories and sorting of entries {{votes|3}}  
 
** Customised categories and sorting of entries {{votes|3}}  
 
** Include "Favourites" folder at the top for frequently used plug-ins (could be either autogenerated and sorted by number of calls, or rely on user adding items) {{votes|10}}
 
** Include "Favourites" folder at the top for frequently used plug-ins (could be either autogenerated and sorted by number of calls, or rely on user adding items) {{votes|10}}
** Set the menu to automatically detect and display subfolders of the Plug-Ins folder as categories. So if you have a folder called /Plug-Ins/MyEffects/ the menu shows Effects > MyEffects > (effects in the MyEffects folder). This should allow full customization of categories without having to do a major re-design.  
+
** Set the menu to automatically detect and display subfolders of the "Plug-Ins" folder as categories. So if you have a folder called /Plug-Ins/MyEffects/ the menu shows Effects > MyEffects > (effects in the MyEffects folder). This should allow full customization of categories without having to do a major re-design.  
 
<ul>{{devcomment|1.3.6 Beta had incomplete categorisation of Nyquist and LADSPA plug-ins. Categorisation has a penalty in more difficult navigation, and was withdrawn from 1.3.7 until there is (at least) a way to turn it on and off.}}</ul>
 
<ul>{{devcomment|1.3.6 Beta had incomplete categorisation of Nyquist and LADSPA plug-ins. Categorisation has a penalty in more difficult navigation, and was withdrawn from 1.3.7 until there is (at least) a way to turn it on and off.}}</ul>
  
This feature request is now included as part of the [[Proposal Menu Reorganisation]]
+
This feature request is now included as part of the [[Proposal Effect Menu Categorization]]
  
  
  
{{Proposal}}
+
[[Category:Proposals Completed or Withdrawn]]

Latest revision as of 11:43, 19 May 2015

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.
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.

There is a related proposal: Proposal Binding Particular Parameters of Effects to Hot-Keys.


Proposed Feature

Keys (and key 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.


Developer/QA Backing

  • Peter - the 2.0.1 partial solution is perfectly adequate for me for LP/tape transcription use (using shortcuts for fades is particularly valuable).
  • Greg Kozikowski
  • Ed Musgrove--though neither QA nor Developer, I am going to vote here. +1 for the concept of allowing shortcut key binding for effects; -1 for limiting the number.
  • Bill Wharrie:
    • I intensely disliked effects categorization as previously implemented - in some case I had to go three deep in the menu to get the effect I wanted. Much for fiddly than scrolling a long menu.
    • I would prefer a system where the user can choose which effect they want to bind keys to.


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.


Details

  • 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 key-bindings 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.
  • 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.
  • 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 (as is the current behavior with the items in the Effects menu).


GUI Examples

As implemented.


Feature Requests relating to this proposal

This is one of the "Highest Rated" items in Wiki Feature Requests. It is possible the votes are a slight overestimate because prior to the 2.0.1 implementation the request was titled "Bind effects to buttons or keyboard shortcuts: including particular parameters thereof". The votes may thus include some users who were happy just to have a shortcut to open the effect dialog. From recollection, Gale thinks most users actually wanted parameter binding.
  • Bind particular parameters of effects to buttons or keyboard shortcuts: e.g. one for amplify + 3 dB, another -3 dB, another to Compress with -6 dB threshold (46 votes)
    • Effects for which this has been requested: Amplify; Change Speed; Fade In/Out; Generate Tone; Insert Silence; Noise Removal; Normalize; Repair; DC removal ; Chris' Compressor

Related Feature Request

The following high-rated Feature Request is related to this current one in that if this proposal for effects binding to hot-keys is implemented then the objectors and objections to a structured Effects menu might disappear.

  • Effects Categorization: Allow the effects dropdown menu capable of sub-folders or categorisation so that the user can organize his plug-ins however he wishes. (32 votes)
    • Only 2 levels deep (Effects > Category), not 3 levels as tried before (Effects > Category > Sub Category). Sub categories are just too fiddly and too much clicking. With just one level of categories, the menu will open by hovering the mouse, making locating a specific effect much quicker and easier. (5 votes)
    • Preference setting to turn categorisation off. (3 votes)
    • Customised categories and sorting of entries (3 votes)
    • Include "Favourites" folder at the top for frequently used plug-ins (could be either autogenerated and sorted by number of calls, or rely on user adding items) (10 votes)
    • Set the menu to automatically detect and display subfolders of the "Plug-Ins" folder as categories. So if you have a folder called /Plug-Ins/MyEffects/ the menu shows Effects > MyEffects > (effects in the MyEffects folder). This should allow full customization of categories without having to do a major re-design.
        1.3.6 Beta had incomplete categorisation of Nyquist and LADSPA plug-ins. Categorisation has a penalty in more difficult navigation, and was withdrawn from 1.3.7 until there is (at least) a way to turn it on and off.

This feature request is now included as part of the Proposal Effect Menu Categorization