Design and UI suggestions for real time effects (and more)

Hello!
I saw that Martin Keary talked about better support for real time effects in Audacity. (https://youtu.be/RMWNvwLiXIQ)
After thinking this over for a few days, I realized I had some specific ideas regarding this…

I have chosen to make these suggestions very conservative in terms of usability for current users by not changing the layout at all. (I am not at all sure if this is the best way to go, but attempting anything else would require a much deeper knowledge of how Audacity is used by different users than I have right now)

I still tried to make the appearance a bit more modern, a dark mode as I would prefer it, that is also a throwback to the classic look…
(Note that I did not attempt to do much to improve the button icons)
audacity_teadrinker_sketch_01w.jpg
audacity_teadrinker_sketch_02w.jpg
audacity_teadrinker_sketch_03w.jpg

Other Suggestions:

(1) Support conventional clip editing

When using the move tool, I would suggest:

  • Possibility clicking on a clip and see it is selected
  • Multiselect clips by using a modifier key
  • Moving a clip, or a selection of clips, by simply clicking and dragging

(This is how OS filebrowsers work, inkscape, google drawings, reaper etc)

(2) When using plugins, don’t allow weird samplerates (or at least show a warning)

I guess now, the default project rate is based on the opened audio.
But VST plugins are rarely tested outside the range 44100 - 192000.

(3) Don’t make automation global.

When plug-in support is in place, users will want to automate parameters. Making automation global per track is the most straight-forward implementation, but it leeds to having to add more complexity and features such as “move with clips” options and global erase/cut/paste. Instead, try to always tie automation to clips, and introduce automation-clips if necessary.

(4) Add another way to remove envelope points

Removing a control point by dragging it outside the track is not intuitive or discoverable, at least not for me as I had to look this up multiple times. :slight_smile: It also don’t feel efficient if you want to remove a bunch of points. An alternative way to delete, using a modifier key (shift/ctrl/alt) would be awesome.



I noticed another thread “Procedural editing and other feedback” arguing for node based routing. While I like the idea of having access to a node based graph for advanced use cases, I’m not sure if it is a good focus. I feel that for almost all use cases, I would prefer a UI that is simpler and more space efficient. Cases like adding reverb, adjusting tone, and applying basic voice processing should be 1 click away ideally.

I also made some minor tweaks for the logo to work better in dark mode, basically brighter blue and reversal of the flash colors
audacity_logo_for_darkmode.jpg

Nice artwork.

I have doubts about “per clip” real-time effects. How would that work? How would the effect know when the clip was playing - would it be “attached” to the clip in some way?

Thanks!

I looked a bit deeper into the source code yesterday, and since clips are not rendered in order, and also pre-cache, it’s pretty tricky to implement in the current architecture, so I agree that in practice, per-clip FX may not be a useful idea.

But let me explain a bit more anyway…
From a user perspective, the idea also depends on the suggestion “Support conventional clip editing”, so when a clip is selected, the UI could look a bit like this:
audacity_teadrinker_sketch_04w.jpg
Internally I imagined the DSP structure something like this:

DSP-sketch.png
Basically, every clip has its own channel (as a reverb should not be cut-off if the clip ends).
To avoid performance issues, there is a silence check after the plugin-chain, that can turn-off the channel automatically. This is something that is good even if there is only realtime FX support for tracks, as this will enable larger projects, cause less drain on laptop batteries and decrease likelyhood of audio glitches due to cpu overload.