... while the project makes note of which window has temporarily given up the
focus; and TrackPanel can detect that, so that the yellow border of the focused
track is still drawn while the panel "lends" the focus.
Why do all this? So that, when the ruler is another CellularPanel, ESC key
will work to abort drags in the ruler, but TrackPanel appearance won't change
during the drags.
... To be reused with the Ruler too.
The new base class does all the handling of hit tests on cells and managing
of UIHandles, and keyboard events and focus.
It has no knowledge of tracks -- that all resides in overriding functions in
TrackPanel.
Still to do, of course, is reorganizing drawing with callbacks to the cell
objects.
... All updates of position are done in DoGetRectangle(). Ruler need only
expose one function, DrawOverlays().
Don't redraw indicators twice when dragging (hiding and showing again), making
some flicker. Just do one update.
This restores the 2.2.2 behaviour, with a subdirectory called 'cleaned'. The problem was that 2.2.2 used special cases for MP3 Ogg and WAV exports, which were stripped out in favour of using the built-in Export command. However, the differences in behaviour (prompting) between batch and non batch mode were not taken into account.
The original fix for this bug deleted pluginregistry.cfg. That was judged to be too extreme. This new modified fix updates pluginregistry.cfg, changing the Nyquist Prompt type and removing duplicated Sample Data Import/Export. In future if we have further menu rearrangements of plug ins, we can make them using the same methods as in this fix.
This code now does the clean out of pluginregistry.cfg.
Nicer for the user would be to preserve the list of hand-added plug-ins. But a clean restart is easier.
All backing bitmaps (not just the one in track panel) now are set to 24 bits.
Big thanks to David Bailes for tracking down the root cause of slow BitBlts, and the comments at https://trac.wxwidgets.org/ticket/14403 which led to the fix.
In testing the bitmaps, I also fixed the sizer errors reported for Export.cpp that wxWidgets now reports as ASSERTS when running in debug builds.
... Reuse the external function registration added earlier in 2.3.0
development, for support of internationalization in Nyquist.
This way, we avoid making cyclic static linkage dependencies between the
library and the application.
Also adds the options
;type tool
;type tool process
;type tool generator
;type tool analyze
These tools will appear in the Tools menu, but behave as their second argument (if any)
These changes below are paving the way for aud-do:
Nyquist Effect now detects self reentrancy and skips reentry if so.
Nyquist Effect now detects if another effect has run during effect processing, and does not send Nyquist
output if so.
Neither of these preparatory changes have an effect in absence of AUD-DO (or other function
that allows Nyquist effect to call out to Audacity functions).
1. Set accessibility names for the buttons for applying a macro to the project or files. Note that although these names are not read by NVDA 2018.2, they will be read by NVDA 2018.3
2. Remove access keys from wxStaticText controls, as they do not work on this type of control.
This fix addresses the remaining issue, issue 4, that the selection was often cleared when Play-at-Speed stopped.
The problem was that Scrubbing 'Set Selection to here' code was not being disabled by the Play-at-Speed state.
LUFS are defined as the power of the signal, not as the root mean square.
Accidential use of the RMS caused incorrect normalization to only half
of the LUFS value.
Please note that normalizing to large LUFS values may introduce clipping
of large peaks. However, the recommended target value in EBU R128 of
-23 LUFS should be totally safe but only uses a small amount of the
possible quantization range. For tracks with normal dynamic range,
normalizing to about -10 LUFS should be possible without clipping.