Proposal Select Then Act
|Proposal pages help us get from feature requests into actual plans. This page is a proposal to split detection from action in a number of effects. This will go hand-in-hand with (a) improved ways of acting on labels and (b) improved ways of processing 'detection'.|
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.
This is not really a single feature, rather it is a splitting of:
- Truncate Silence: into detection and then concatenation of detected sounds.
- Click Removal: into detection and then removal of the clicks.
Followed by some enhancements to selection creation so that we can easily create discontinuous selections from multiple labels, add to and reduce selections, and perhaps even specify fuzzy boundaries to selections so that 'mixing' of the selections is already defined in the selection.
- Finer control over any of the effects proposed for splitting. Intercepting at the first stage allows the selection to be fine tuned more easily.
James: Splitting out a 'silence finder' that creates a series of regions also suggests we'd have a 'region compactor' that removes spaces between a series of labels and does truncate-silence's micro-mixing to avoid clicks. This way of building up functionality is going in time to lead to a more powerful Audacity.
A motivating analogy to think about is how an image editor like Gimp has n tools for modifying selections and m tools for doing something with selected regions giving n x m compound operations. Databases do the same thing with select-then-act. This kind of architecture is also way better for optimising quality of complex operations than dialogs with lots of parameters and crucially no feedback on the intermediate stages.
Richard: If you want another example to think about design with, then consider breaking the current click removal effect into two parts, a click detector and a click fixer. Then provide a way to replace the latter (currently a filter I think) with the Repair effect (based on interpolation) to see if that is more effective as a click removal system.
I think the ability to use labels to mark up complex selections is very powerful in this context, but we do need some more sophisticated means of applying effects to many labels - which will probably be useful in their own right.