audacity / audacity

Audio Editor
https://wiki.audacityteam.org/wiki/For_Developers
Other
12.59k stars 2.26k forks source link

Several EGATS have "Debug" buttons #3526

Closed petersampsonaudacity closed 2 years ago

petersampsonaudacity commented 2 years ago

Bug description

Several EGATS have "Debug" buttons

Effects Spectral edit Parametric EQ Spectral edit Shelves Vocal Reduction and Isolation Vocoder

Generators Rhythm Track Risset Drum

Analyzer Beat Finder

Tools Nyquist Prompt Sample Data Import

Steps to reproduce

  1. get some audio
  2. Apply say Vocal Reduction and Isolation
  3. Observe Debug button at extreme right

Expected behavior

No Debug buttons on any EGATS in released software

Debug buttons really have no place in released software - they make the app look unfinished and buggy (OK, yes all apps are buggy)

They are fine to have if you make a debug build and need them for debugging.

Actual behavior

Note that not only do we have a Debug button but it is placed at the extreme right pushing the important Apply button over leftwards and thus removing/diluting the visual impact of the Apply button. Thus is poor GUI and poor UX

image

Audacity Version

current master / alpha / nightly build - audacity-win-3.2.0-alpha-20220902+7c9c978-x64-msvc2022

Operating system

Windows and Mac - but suspect all OS

Additional context

Flagging @Tantacrul and @LWinterberg as a UX and design issue

Tantacrul commented 2 years ago

Thanks @petersampsonaudacity !

Since we're very close to release, it's possible (likely, I'd say) we'll need to pop this in a patch release

LWinterberg commented 2 years ago

I note that @SteveDaulton's nyquist plugins don't exhibit this behavior - is this something that can be solved by throwing in a line into the nyquist plugins in question?

SteveDaulton commented 2 years ago

The plug-ins that still have a Debug button are likely to either be very old (and could probably do with being brought up to date), or relatively new.

Several of Audacity's built-in effects began life as Nyquist plug-ins. Nyquist is an excellent choice for quickly creating prototypes for many kinds of effects. Some of Audacity's current Nyquist plug-ins would be good candidates for implementing in C++ (including the Nyquist Plug-in Installer, Adjustable Fade, Channel Mixer, Delay, and crossfading).

The Debug button is enabled by default in Nyquist plug-ins, which is totally appropriate for prototypes.

The Debug button can easily be disabled, but for very old plug-ins I would strongly recommend updating the code to current standards first, then giving it a full release cycle out in the wild (an opportunity to catch any bugs that may have been missed), and only then disabling the Debug button.

Comments re. plug-ins with Debug buttons:

  1. Beat Finder: Very old, and not very effective. This could do with further development.
  2. ClipFix: Old, but has received some updates. Still quite dated, and has a tricky little bug.
  3. Rhythm Track: This could have the Debug button disabled, unless it is going to be developed further. We do get requests for more sounds to be added, though the Nyquist Plug-in interface is a limiting factor on how much further this "drum machine" can be taken.
  4. Risset Drum: a nice little demonstration of sound synthesis in Nyquist, but ancient. Could really do with being brought up to current standards.
  5. Measure_RMS: Demo: shows how third party Nyquist plug-ins can have translated strings in messages.
  6. Sample Data Import: One of the few uses of a "file" widget. The file widget could do with extending to support directory selection rather than just files. Note that Nyquist in Audacity does not have the ability to create folders - that would be a nice addition if not considered too dangerous, and if implemented, it would probably affect how the file widget is updated.
  7. Spectral edit multi tool: Needs updating. It would be nice to package the frequency gathering / error handling, that is common to multiple "spectral" effects into a separate .LSP file, which could greatly simplify spectral effects (a new "Spectral Gain" effect was published on the forum recently).
  8. Spectral edit parametric EQ: ditto.
  9. Spectral edit shelves: ditto.
  10. Vocal Reduction and Isolation: This could have the Debug button disabled. It would also be a good contender for implementing in C++ so that the GUI could be improved, along with processing speed.
  11. Vocoder: Very old effect. Could do with a complete rewrite to remove the requirement for specially constructed stereo tracks. Note that this effect was written as an "effect", not as a "technical" vocoder.

To disable the debug button just requires the addition of a "header" line: ;debugbutton false (3rd party plug-ins.) $debugbutton false (shipped plug-ins.)

The last two big updates to Audacity's Nyquist library both introduced unexpected issues. The presence of the Debug buttons allowed the problems to be diagnosed and fixed promptly. In the latter case, it would have been easy to write off the issue as user error, had it not been for the debug info.

LWinterberg commented 2 years ago

@SteveDaulton I don't think that a rewrite of effects is in the cards for this release. Given that all nyquist effects have been in for a good while at this point, do you think that just adding the header line would be an acceptable fix to this issue for the time being? In case of a re-write down the line, they can of course be enabled again for a release cycle like you suggested.

SteveDaulton commented 2 years ago

It's not my call, but personally I think it's useful to have a visible reminder that (in most cases) the plug-ins that have Debug buttons need some attention. As you say, there's no major problems with any of these effects, so updating them will be low priority and can easily be brushed under the carpet unless there's a visible "nag".

Brushing issues under the rug is always a bad idea. According to Murphy they will always reappear at the least convenient time and bite.

Perhaps the plug-ins that I highlighted could be scheduled for attention (explicitly written into "the plan") so that the task of updating them doesn't get kicked too far into the long grass. Then there wouldn't be a need for the "visible nag".

LWinterberg commented 2 years ago

I made a visible nag for myself which will forevermore live in the feature request spreadsheet, #3547. Let's not nag users, too :)

SteveDaulton commented 2 years ago

I doubt that many end users notice or care ;-) but I'm happy for the debug buttons to be hidden now that there's a record.

The simple fix is to just add $debugbutton false in the top section of each affected plug-in, as shown here: https://wiki.audacityteam.org/wiki/Nyquist_Plug-ins_Reference#header