During an append record, silence may need to be added to the
end of the existing track(s) to fill any gap between the end
and the common recording start time.
But, if the recording fails to start, this silence is left at
the ends of the tracks.
This change fixes that by making a copy of the tracks before
recording starts and restoring the tracks from that copy if
the start fails.
During an append record, silence may need to be added to the
end of the existing track(s) to fill any gap between the end
and the common recording start time.
But, if the recording fails to start, this silence is left at
the ends of the tracks.
This change fixes that by making a copy of the tracks before
recording starts and restoring the tracks from that copy if
the start fails.
EXPERIMENTAL_SCRUBBING_BASIC enables middle-click-drag to scrub, or to seek
when shift is down.
EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL adds middle-double-click-drag to
scrub or (with SHIFT down) to seek while keeping the playhead at the midline
of the track display.
EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL allows control wheel to vary the speed
limit, while scrubbing (not seeking).
All three are enabled in this commit.
Also notice the changes to status bar messages and the Mouse Preferences dialog.
Scrubbing works only in Select and Multi tools.
EXPERIMENTAL_SCRUBBING_BASIC enables middle-click-drag to scrub, or to seek
when shift is down.
EXPERIMENTAL_SCRUBBING_SMOOTH_SCROLL adds middle-double-click-drag to
scrub or (with SHIFT down) to seek while keeping the playhead at the midline
of the track display.
EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL allows control wheel to vary the speed
limit, while scrubbing (not seeking).
All three are enabled in this commit.
Also notice the changes to status bar messages and the Mouse Preferences dialog.
Scrubbing works only in Select and Multi tools.
This will matter if the smooth-scrolling version of scrubbing is enabled
The problem was accumulation of roundoff errors when deciding which pixel
column data to copy from old caches to new caches, when the number of samples
scrolled was not an integer multiple of samples per pixel (itself, not always
an integer)
Thus repeated scrolling by small amounts caused the wave display or spectrogram
to creep relative to the time ruler!
This will matter if the smooth-scrolling version of scrubbing is enabled
The problem was accumulation of roundoff errors when deciding which pixel
column data to copy from old caches to new caches, when the number of samples
scrolled was not an integer multiple of samples per pixel (itself, not always
an integer)
Thus repeated scrolling by small amounts caused the wave display or spectrogram
to creep relative to the time ruler!
In particular, use an options structure for AudioIO::StartStream to simplify
calls
ControlToolBar::PlayPlayRegion also takes that structure as an argument, and a
SelectedRegion instead of two times
And other changes
This brings the builtin, LV2, and VAMP effects inline with the
Audio Units, LADSPA, and VST effects. All effects now share
a common UI.
This gives all effects (though not implemented for all):
User and factory preset capability
Preset import/export capability
Shared or private configuration options
Builtin effects can now be migrated to RTP, depending on algorithm.
LV2 effects now support graphical interfaces if the plugin supplies one.
Nyquist prompt enhanced to provide some features of the Nyquist Workbench.
It may not look like it, but this was a LOT of work, so trust me, there
WILL be problems and everything effect related should be suspect. Keep
a sharp eye (or two) open.
Dave Avery's wx3 fixes for Audacity, without the .sln/,vcxproj file updates that add the new target. These changes are believed to be safe for wx2.8.12, wx3.0.x and wx3.1.0.