Age | Commit message (Collapse) | Author |
|
The re-order is queued to be performed click-free in realtime-context.
Meanwhile adding plugins will result in a race-condition.
|
|
|
|
change, not just configuration changes.
This prevents a scenario where the route has had its solo control's state set from
XML, but then we configure the route's output, and invoke output_change_handler().
Without the new conditional, this would check which downstream routes are soloed,
find none, and then unset the soloed-by-downstream state of the solo control.
|
|
propagation
|
|
* allow to directly fan-out when adding a multi-channel instrument
* Mixbus: move multi-channel instruments after Comp & EQ.
|
|
|
|
|
|
|
|
|
|
Moves global update of solo state and emission of Session::SoloChanged to
a single point after 1 to N solo controls are changed.
Also avoid unnecessarily emitted Activated() signal for listen controls,
though Process::{activate,deactive}() should probably be redesigned to
avoid this in a "deeper" way
|
|
|
|
The motivation is to allow a Processor (here Lua) to get a pointer
to the owning Route without resorting to iterative lookup.
|
|
This should be the final part of a fix for bug #7025, which means the id
property of PBD::Controllable is restored and a new id is not generated at
first save.
I'm assuming this was a typo, comparing with the wrong name meant the state of
the MuteControl was never being restored. This also fixes restoring bindings
associated MuteControl instances.
|
|
This [hopefully] fixes jack1 zombification on session-load with large
plugin-states. Previously it was possible to block
Route::process_output_buffers().
|
|
|
|
|
|
|
|
not try to use its own _solo_ignore to track Muteable::can_solo() or solo isolate state
|
|
re-arrange Route::set_state() to avoid duplicated control set_state() calls
|
|
The trim processor was moved to the front after the internal return was,
so the trim setting was applied before the signal coming from other
tracks/busses sends was mixed in. Change the order so that trim applies
to audio from internal sends as well.
|
|
|
|
|
|
So that MIDI in the ports is really made silent.
|
|
When flushing the buffers of Delivery processors owned by a Route/Track,
inner deliveries of PortInsert processors were missed since PortInsert
is not a Delivery subclass, but rather owns a Delivery as a private
member. Expose a flush_buffers() for PortInsert and call it too.
This is correct since (external) Send is a Delivery subclass, so that
just makes the send part of inserts behave as external sends do.
|
|
Route::no_roll(), Route::roll(), Track::no_roll(), AudioTrack::roll()
and MidiTrack::roll() all had the exact same loop for flushing buffers
of their Delivery processors. That was a lot of replicated code that had
to be kept synchronised by hand. Put that code into a protected method
Route::flush_processor_buffers_locked() which is called instead.
|
|
|
|
|
|
If a route has strict I/O then the main delivery follows the output of
the last processor, but libardour ensures it has at least as many
outputs as inputs in the master strip. A good consequence is that mono
tracks get their expected panner.
An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses
without a synth) get two audio channels that have no use (and indeed no
panner is added because there is nothing to pan).
Skip the completion of audio outs if there was no audio out to begin
with.
|
|
* active(): hard bypass: en/disable. When disabled, run() is not called.
* enabled(): plugin run()s but may do nothing (or only be latent)
|
|
|
|
Pass current (latency compensated) cycle times to plugin.
This fixes time-reporting to plugins and also fixes automation
and when bouncing (the session->transport* is not valid) etc.
|
|
|
|
|
|
|
|
Now handles color, partially.
|
|
|
|
luaBridge implicit inheritance uses a single direct parent
(other parents object need casts). This motivates
Route -> Stripable -> SessionObject
|
|
|
|
|
|
remote control ID and "order keys" have been removed.
|
|
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
|
|
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
|
|
|
|
|
|
|
|
This is better tested with direct use of the solo_control and
Config->get_solo_controls_are_listen_controls()
|
|
|
|
|
|
VCA solo+mute (BUT ARE NOT DONE YET)
|
|
|