Proposal Select Then Act

From Audacity Wiki
Jump to: navigation, search
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.

Proposed Feature

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.

Developer Backing

Use Cases

  • Finer control over any of the effects proposed for splitting. Intercepting at the first stage allows the selection to be fine tuned more easily.

Screenshots of Experiments

The image below shows multi-select in operation in an experimental TrackPanel plug-in for Audacity. The green part of the wave is showing another experimental feature, where label colors are reflected to the wave too. The extra selection regions are added by holding ctrl down when creating a selection.


In current operation multiple selections can overlap. This is shown with a darker selection in the area of overlap. That's OK up to about four fold overlap, after which you can't see the extra overlap or the waveform! When multiple selections overlap effects like 'amplify' or 'echo' applied to the selection will be applied more than once in the area of overlap. Currently I think this is a feature rather than a problem. You might actually want that.


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.

Deconstructing Compound Commands

This section, which may move to a new page, is just playing with the idea of deconstructing commands into more atomic ones.

  • Trim = InvertSelection + Cut
  • Cut = SplitCut + RemoveGap
  • Delete = PushCutBuffer + Cut + PopCutBuffer
  • TruncateSilence = SelectSilence + ShortenGaps
  • Zoom To Fit = PushSelection + SelectAll + ZoomToSelection + PopSelection
  • SoftwarePlayThrough = Play + Record (see buttons on Proposal TrackPanel Evolution for how the toolbar can do this)