Procedural editing and other feedback

Hi, First time poster on this forum but I’ve used Audacity every now and again over many years.

This post is primarily a response to Tantacruls video (https://youtu.be/RMWNvwLiXIQ) to provide feedback on where I’ve experienced pain with Audacity before and where I think it can be improved.

Feedback:

For simpler audio editing tasks, I’ve found myself using https://www.ocenaudio.com/ instead due its more responsive UI and cleaner design. But it lacks the more advanced features that Audacity has.

The most common pain I experienced was the UX loop of “apply effect, listen to it, slightly wrong parameters, undo, repeat”. And the “preview” often wasn’t helpful.
I would love it if we had like the stackable effects shown In Jessica Williamson’s mockup (https://youtu.be/RMWNvwLiXIQ?t=791) which would allow tweaking of parameters while I’m continuously listening to a second of audio. This seems to tie in with this popular feature request https://wiki.audacityteam.org/wiki/Feature_Requests#realtime
I would advocate for a feature that is more general which I found very useful in other applications which deal with composing slow and real-time effects together: Procedural editing.
The key difference is that it allows users to instead of changing the content, to compose nodes that operate. I’ll give two examples that I think demonstrate this well:
Houdini (commercial) https://youtu.be/Tsv8UGqDibc?t=641
Blender (open source) https://youtu.be/Uvc2P911rZk

Some reasons why I really like this approach to UX:

  • It is non-destructive: the original samples are kept and rendered audio can be regenerated.
  • Users can easily do a with/without effect comparison even after other actions have happened (which would occupy the Ctrl+z history)
  • Certain things that have their own special UI currently like “Solo” would be a natural thing like viewing the track node before it gets added to other tracks
  • Project files can be small as the generated data does not need to be saved.
  • Nodes are general and could span multiple audio tracks such for instance, audio between two tracks could be multiplied together.
  • Allows organization of complex chains into blocks that can be reasoned about and shared to other users (like functions in programming)
  • Can be real-time nodes by default and control can be given to users when they want to “cache” the output of a node to avoid long re-computations of effects.
  • I think it maps cleanly to a plugin API

Note that I think this scales quite nicely with the complexity of what the user is trying to do.
If it’s simple → graph is simple and the graph view could be hidden by default and actions on the tracks (like currently) just generate nodes in the background.
If it’s complex → graph allows to manage the complexity.
I’m a programmer by day and I’d be willing to put in time to make it happen if you decide to go down the procedural editing route.

I’ve never really used the per-track audio volume and panning. Maybe these could be moved to being a real-time effect as part of the above?
I’ve never really needed the description of “stereo, 44100Hzm 32-bit float”, I think that can be put in an info dialog.

The Spectogram feature is useful and I thought it was difficult to find as I was searching in the “View” menu rather than knowing that it was a per-track thing.
When I select a rectangular region of a spectogram (not the full height) and press delete, I’d expect the selected frequencies to be dropped to zero in the selected time frame, rather than the time frame being completely cut. I ended up removing things with effects but that was a bit painful. Also it would be nice if a frequency selection is made and I hit play, that I hear only those frequencies. This would’ve been useful when I was trying to isolate information from an audio file that came from from an ARG.

I like dark modes for all my applications.

Logo: Keep the icon looking the same/similar; I don’t mind if the text style changes.



I’d be open to be interviewed as a user if you’d like further details.

Hope this feedback is constructive. Regards,
:Dom

Is the “Real time preview” helpful? Bass and Treble, Distortion, Wah wah, Phaser, VST effects, AU effects, LV2 effects allow you to adjust setting during preview.

Yes, thank you.

I think I was doing Highpass or lowpass filters where I wanted it to apply to a whole track but I wanted to preview only a specific section of the track which had an instance of a noticeable bit of noise at some frequency I wanted to remove.

Thanks for the tip! Until now I did not know about real-time preview of those effects. I just checked it out. I was confused what the “Enable” checkbox does on the bass/treble dialog does but figured it out after a minute. Maybe could use a renaming or a useful tooltip.
After playing around a bit I guess it’s possible to see the previewable effects by playing and then entering the effects window.
I think I’ve encountered a bug where sometimes the effect doesn’t apply in the preview: https://youtu.be/hAnX4Z-VDS4 (Audacity 3.0.2)

Thanks very much for this!

The high pass / low pass filters are “Nyquist plug-ins”. They do not yet have “Real time preview”, but they do have a “super power” in that users can create their own effects (Nyquist - Audacity Manual). Nyquist plug-ins are in line for major improvements, which I’m hoping may include Real time preview (but no guarantee on whether that will happen - I’m just hoping that it will :wink:)

I would support this.

It’s far too easy to accidentally nudge the Pan/Gain sliders in a track’s Track Control Pamel - I have damaged a couple of tracks in my projects that way (without immediately noticing).

I even wrote this proposal in the Audacity Wiki a while back:

But I do like Dom’s suggestion - it would have the nice side-effect of tidying up the TCPs

Peter.

I tend to agree except that there are a couple of potential bear traps that would be difficult to figure out without that information being clearly presented.

Audacity allows a project to contain multiple tracks with different sample rates (the “kHz” figure), but some effects require that all selected tracks have the same sample rate (for example, both of the “Equalization” effects). This would be extremely confusing if there were no visible indication of the track sample rates.

Personally I think this should be fixed so that all effects can operate on any combination of sample rates, though for technical reasons this is rather difficult.


2.
Audacity supports 16-bit integer and 24-bit integer tracks, and may import a track as 16-bit even when “32-bit float” is selected as the default sample format. 16 / 24-bit (integer) formats are much less precise than 32-bit float, and suffer permanent damage if the peak level hits 0 dB (integer formats cannot exceed 0 dB). Working in formats other than 32-bit float can lead to permanent damage, and / or permanently reduced sound quality, so I don’t think this should ever be hidden from view.

Personally I think it would be MUCH better for tracks to always be 32-bit float format unless explicitly changed by the user. We could then safely hide the sample format by default, and only show it if the user has overridden the safe default.

Big +1 for that idea,

Peter.