Proposal Effect Menu Categorization
|Proposal pages help us get from feature requests into actual plans. This page is a proposal to categorize the effect menu into sub-menus. It originally formed part of the extensive Proposal Menu Reorganisation but moved here to provide focus on the Effect Menu.|
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 Effect Menu is too long to display on the screen without scrolling and grows even longer if users add their own effects. 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.
Users have complained about the length of the menu.
Categorization of effects in the menu, customizable by the user.
- I feel that a key aspect in making this acceptable to all, is that the user must be able to easily organize their effects into groups in the way they want, rather than the "filing scheme" being imposed by the design. The "factory default" groups could be simply "built in effects" and "plug-ins" (as now).
- Must support all effects formats. The previous implementation totally ignored VST effects.
- Must be uncategorised by default but with an easily visible way to turn it on without going into Preferences. Perhaps it is simply "always on" but not yet customised (press a button to access a keyboard-friendly categorisation dialog). If we allow mouse drag of effect menu items and right-click over the effect menu > New Category, there should be some kind of lock that has to be turned on before you can do that.
- Many complaints on the Forum regarding the length of this menu.
- Users who used the categorization that was in 1.3.6-beta frequently request its return
- Some posters on the Forum, with programming skills, are instructed how to build Audacity with the 1.3.6 categorization turned on.
This is an easy-to-implement way to make the categorization customizable.
- There will be a new plug-in that is disabled by default. You enable it from the plug-ins preferences and restart Audacity.
- There will be a new menu item that allows you to save the list of existing effects as a text file.
- You then edit the text file, to make the categories you want.
- When you restart Audacity, it will read this text file and rearrange the menus.
- Allow the Effects dropdown menu to have the capability for sub-folders or categorization so that the user can organize their plug-ins however they wish.
- A "Favorites" folder to be provided that is nothing to do with the automatically generated structure (about one-third of voters for this feature want this).
- A new Preferences setting to be provide to facilitate turning categorization on/off (default to be "off").
- Restrict the auto-generated subfolder to only 2 levels deep (Effects > Category), not 3 levels as tried before in 1.3.6 (Effects > Category > Sub Category) but do not restrict to Two levels if the user optionally requires sub-levels.
- With just one level of categories, the menu will open by hovering the mouse, making locating a specific effect much quicker and easier.
- Provision to be made for the user to customize their categories, change and sort their entries.
- Gale 13Nov13: I think it's accepted there will be (at least) a dialog to do this, so that it's keyboard friendly. There are growing requests for some kind of "plug-in manager" where user can enable/disable particular effects, choose in which folders Audacity detects different types of plug-ins and so on. Should the categorisation dialog be in such a manager, or designed so that it could be moved into such if it is subsequently developed?
- Set the menu to automatically detect and display subfolders of the "Plug-Ins" folder as categories.
- Gale 13Nov13: This seems attractive but there is the issue of how plug-ins in system folder structures are accommodated. Do we need this if the feature is fully customisable anyway (which I think it needs to be)?
Nearer Future (2.0.7 proposal)
One approach is a menu re-arranger. Audacity can be requested to write the menu structure to an XML file. This could be edited by hand in any text editor. Here's what it would look like.
When you've finished editing, save it, and ask Audacity to reload the file whenever it starts up.
The format is recognised by an existing open source project, wxFormBuilder, which can load the file, allow you to preview the menu structure, and drag and drop in a tree structure to rearrange. You can also add new categories and separators and change the labels on the menu items.
It's not 'pretty' and it is only really suitable for power users. Still, users who want the flexibility to rearrange menus gain a GUI to do it, not just a text editor. It's worth noting that:
- This approach, if we decide to process the top level menu this way, allows all the menus in Audacity to be customised, not just the effects menu.
- wxFormBuilder is designed for building GUIs. We could do more with it in future, for example customising colors and providing custom dialogs to attach to Nyquist functions. Down the road, we could use it to customise what buttons appear on toolbars.
Here's how the configuration screen for configuring the menus might eventually look with a built in menu editor. This is a bit further along than just a screenshot, but is unlikely to be in Audacity any time soon. Colorful and a somber alternative version are shown :
The blocks can be dragged around to change the order. If you want to, you can also edit the text exactly as in a conventional text editor, so it's two kinds of interface in one. The idea for this kind of editor comes from the 'Scratch' language.
This kind of blocks-based interface may also be used for configuring other kinds of tree in Audacity. For example, a mix may be constructed from submixes, a track may contain multiple subtracks layered on top of each other, a toolbar may have buttons and other toolbars inside it.... The idea is to write one interface for configuring trees, and re-use it in multiple ways.
Previous Feature Requests relating to this proposal
- 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. (49 votes)
- Include "Favorites" folder at the top for frequently used plug-ins (either autogenerated and sorted by number of calls, or user-added) (21 votes)
- Only two 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. (7 votes)
- Preference to turn categorisation off (5 votes)
- Fully user-customisable categories and sorting of entries (5 votes)
- Ability to assign one effect to multiple categories: (1 votes) such as a saturation compressor to both Compressor and Distortion categories.
- Detect/display subfolders of the "Plug-Ins" folder as categories: (5 votes) So if you have a folder called /Plug-Ins/MyEffects/ the menu shows Effects > MyEffects > (effects in the MyEffects folder).
- How does this work for plug-ins in system folders?
- Must support VST plug-ins (4 votes)
- Must include VST plug-ins in system folders (3 votes)
- Manipulate effects with a dialog box that has all plug-ins on the left hand side, an empty box on the right hand side, with "New Group...", "Delete Group", "Rename Group", "OK", "Cancel" buttons below, and arrows ">>" and "<<" in the middle, to move plug-ins between groups. (2 votes)
- Group by plug-in format (VST/LADSPA/LV2/Nyquist/AU) (2 votes)
- Multiple columns for different groups of effects (1 votes)