Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Add PBD::to_/string_to specializations for ARDOUR::DataType
These could go into the data_type.h header but they don't really need to and it
means that ardour/types_convert.h can just be included by source files that
need to do type<=>string conversion. A potential problem with this is that if
all the specializations are contained in a single header then any class that
requires inclusion of that header to do serialization will be recompiled each
time types_convert.h is changed. I'm not going to worry about it at this stage,
it can always be broken up or improved upon later.
|
|
|
|
|
|
|
|
This allows to pass a sperici Controllable alike instance around without
relying on directly exposing the Plugin instance and parameter-id.
|
|
In preparation for Faderport8 "Mute Clear" LED Button.
|
|
|
|
eg. at the end of a loop, the session may already be playing the
beginning of the loop. The TransportLooped signal was emitted.
Yet due to playback latency, the audible frame is still at the end of
the loop.
To interpolate the playhead position the UI needs to be able to know:
Relying on the TransportLooped signal is not sufficient because it
does not take playback latency into account.
|
|
|
|
There are various issues with copy-construction: no readlock is taken,
Tempo/Metric Sections were static-cast to non-const pointers and passed
as references...
This remove the [now] unused copy-c'tor, and fixes various const issues.
|
|
|
|
|
|
|
|
Some VSTs (e.g. waves) can take a rather long time to scan.
(VST-shell: many plugins + online license check)
|
|
|
|
This follows the same concept as plugin-UIs (keep a pointer in the backend)
to prevent multiple instances to be created from various TAVs
and RouteUIs (mixer, editor-mixer, meterbridge,..)
|
|
|
|
(this changes the internal API, pending follow-up GUI update)
|
|
|
|
Set the AEffect* plugin pointer before calling effOpen.
effOpen may call back into the host (masterCallback) and invoke
actions which depend on _plugin (eg. to call back into the plugin again)
|
|
This mechanism re-uses internal abstraction (plugin-enable).
Other plugin-specs designate a control-port, for VST we 'emulate'
a control-port.
There is still debug-output to stderr, here while testing.
|
|
- a tempo marker may now be set to always continue (clamped)
this means that the end tempo of the previous section will
track the start tempo during tempo ops.
it mimics the behaviour in 5.8, with the gui indicating
the curves to be changed.
|
|
- should fix 7105
|
|
The audioMasterAutomate callback from plugin to host does include
the parameter-value.
Previously there was a redundant call
Plugin::parameter_changed_externally() -> get_parameter
-> VSTPlugin::get_parameter() back into the plugin to query the value.
calling back into the plugin from the callback, may explain
oddities and/or crashes with some VSTs.
|
|
- this is the opposite of 'Ramp to Next'.
it removes discontinuities between the
last end tempo and the current by altering the current one.
|
|
|
|
- this implements in the intention behind the previous commit.
a tempo mark is constant until its end has been changed by a
shift-drag on the next marker.
|
|
|
|
most changes are due to a new design where tempo discontinuities at the
beginning of a ramped section may be set.
this allows easier mapping of live performance, especially in
the common case of a ramped ritard before the beginning of a new section.
feature summary:
holding constraint modifier (shift) while dragging the BBT ruler area
drags the tempo lines by changing the start tempo (as before)
holding copy modifier (control) while dragging the BBT ruler area
drags the tempo lines by changing the end tempo (ahem. not quite there)
dragging a tempo mark while holding constraint (shift) will change the
previous end tempo to match the marker position *worth trying*.
holding constraint and copy modifier (control + shift) while dragging
the BBT ruler area attempts to'pinch' or twist the surrounding tempi
sp that later ones are not repositioned (currently suffereng from
rounding errors)
|
|
selected in
|
|
|
|
|
|
|
|
master(s) value now just scales the control's own value; a trivial
bit of math at assign/deassign ensures that values do not change
during add/remove master operations
|
|
|
|
|
|
|
|
|
|
|
|
context should potentially tell its ControlGroup
This fixes record-enable controls in a group failing generate
a call to the required stuff for tracks (moving meter position,
preparing diskstream) #7213
|
|
which may be slaved to a master
|
|
up back in the same state
|
|
|
|
snap now fills in a struct (MusicFrame) which contins a snapped frame
along with a music divisor.
this gives useful information wrt magnetic snap which may or may not
have rounded to an exact musical position.
region position may now be set musically (using quarter notes for now).
this patch fixes several problems in the current code:
- dragging a list of music-locked regions now maintains correct
musical offsets within the list.
- splitting regions using magnetic snap works correctly (#7192)
- cut drag should now work correctly with magnetic snap.
- musical length of split midi regions is no longer frame based.
|
|
|
|
only: this avoids the necessity of an extra cast to PlugInsert )
|