Choosing some option and then trying to remove it by clicking "Disabled"
previously did nothing. Now sets it back to blank. Also fixed for Tascam
US-2400.
Empty means that it contains some tracks or user-addedd
busses or VCA (not counting master, monitor, surround busses).
This is motivated by A&H control-surface.
Also speeds up PT imports during region creation.
This is because regions are imported immediately when sources
are grouped into multichannels rather than doing it in another pass
This allows bulk creating tracks with different name templates.
Simply call the bulk method multiple times as required and finally
call add_routes() once.
Although setting CURLOPT_PROGRESSDATA appears to work to set the pointer
passed into the new CURL_XFERINFOFUNCTION option, the documented option is
now CURLOPT_XFERINFODATA.
We must not walk past a MusicTimePoint if the reftime is a BBT_Argument.
May try to fold this back into the fully-templated version in a subsequent commit.
Clamp misaligned prefix loops to the remaining frame count to avoid
nframes underflow and potential out-of-bounds access for small buffers.
Apply vabsq_f32() to all SIMD loads before peak reduction to ensure
correct absolute peak calculation in unrolled NEON paths.
This fails when done via direct import into a cue slot which assumes that all sources created
must be associated with the region, and that each source must have a model.
This change drops the metadata-only track/source from being returned by Session::import_files()
Note that in order to avoid refcnt'ing from prolonging the life of the source we want to drop,
we do not announce the sources when they are created, but defer that until we know they are
going to be used post-import
It is risky to take the sample value returned by this method and then convert it back
to either superclocks or beats, mostly because tempo & meter times are generally in
music time, and converting from superclocks to samples loses precision.
This rename is there to serve as a reminder to developers to be careful when using
this method
MixerStrip::show_send() may unset _panner if the send
has no panner. When then triggering an action that emits
`Pannable::automation_state_changed` (like un/link send panners)
of the main panner, Ardour crashed.
Note that PannerUI::set_panner already handed that case.