Age | Commit message (Collapse) | Author |
|
Mixbus does not expose the "auto_connect_standard_busses" preference
and forces it to false.
|
|
|
|
|
|
|
|
|
|
Some trickery is needed here to manage object lifetimes and
multiple inheritance.
|
|
When allowing to cross-connect plugin-ports, inplace processing can
no longer be used. We need a complete set of independent input and
output buffers.
Since scratch and silent buffers are used by the various plugin
implementations we cannot re-use them in the PluginInsert.
Besides we need a complete BufferSet which can hold both: ins + outs.
|
|
|
|
|
|
|
|
|
|
ARDOUR::Session::~Session()
ARDOUR::Route::~Route()
ARDOUR::InternalReturn::~InternalReturn()
ARDOUR::Return::~Return()
ARDOUR::Session::unmark_return_id(unsigned int)
boost::dynamic_bitset<unsigned int, std::allocator<unsigned int> >::reference::do_assign(bool)
-> Invalid write of size 4
-> 0 bytes inside a block of size 4 free'd
Thanks to The_CLA for valgrinding this.
|
|
|
|
tracks/busses.
THIS DOES NOT WORK YET. Selection information is not available in libardour at this time
|
|
In preparation for Lua bindings this completes the basic set of
Session object lookup: route, source, controllable, region, processor
|
|
a shortcut
|
|
|
|
Add logic to RouteGroupMember::use_group() to implement the real intent of InverseGroup
|
|
|
|
|
|
This reverts commit a9ec547457bfa65655ee946063426f1ba85b6f91.
|
|
|
|
Executive decisions were necessary in a couple of places about the correct group disposition
behaviour, notably faderport and OSC surfaces
|
|
|
|
It used to be owned by Amp. Now it is owned by Amp's owner
|
|
|
|
|
|
The initial value of Config::get_use_monitor_bus() may not reflect
the current session's state when loading a session.
|
|
This also removes Route::group_gain_control() and associated machinery.
Not yet tested with Mackie or other surfaces. More work to done to
start using the group capabilities, and also potentially to add
or derive more controls as RouteAutomationControls
|
|
|
|
The Analyser only holds a weak-pointer the the Source,
session-destruction frees the actual Source, which is fatal for any
ongoing audio analysis.
This fix simply waits for the current ongoing analysis to complete,
ideally TransientDetector::run, EBUr128Analysis::run, OnsetDetector::run
and AudioAnalyser::analyse could be interrupted.
Alternate option: cancel the Analyser::work thread (and re-create with
the every session).
|
|
|
|
This includes removing the removal of ID values in XML, and its replacement with
thread-local forcing of ID resets, implemented in a previous commit
|
|
|
|
|
|
|
|
The MidiPatchManager only requires a reference to the session to get the path
to the Session midnam directory so change it so that the path is passed to
MidiPatchManager::add_search_path on Session construction and removed on
Session Destruction. This will also make it easier to test and reduce compile
times etc.
For the common case where the Session doesn't have a Session specific midnam
patch files directory(for instance a new session) it won't cause a refresh and
reparsing of all the midnam files. This saves about 2 seconds to load a Session
on my machine(fast machine with SSD), or about half the time spent in the
Session constructor for a new session.
There is still going to be that initial cost of parsing the midnam files when
the first session is created after starting Ardour. Options to remove that
would be to parse the files asynchronously and or use a faster xml
parser(eventually), neither of which seem worth doing at this stage.
This change will cause a performance regression for the uncommon case where a
Session with Session specific midnam files is unloaded and then another Session
with Session specific midnam files is loaded as it will cause the common midnam
files in midi_patch_path to be parsed twice(unload and load).
|
|
...and potentially other route removals that involve
processor changes.
|
|
|
|
|
|
handle cases Track(s) -> Bus1 -> Bus2
|
|
'Isolate' means that when another track is solo'd the isolated
track won't mute.
|
|
|
|
|
|
|
|
* solo groups
* cancel-solo
* SIP <> AFL/PFL changes
The optimized plural-form route_solo_changed() relied on the false
premise that solo-groups and port-connections are disjoint sets.
-=-
e.g. "cancel all solo" calls set_solo(get_routes(), false);
Since All routes are affected, the "non_solo_change" set is empty, and
no changes were propagated up/downstream.
Routes that indirectly change state as group-members, wrongly end up in
the "non_solo_change" list instead of the "solo_change" list.
If a route feeds another in the same group, no changes were propagated.
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
|
|
This is not bomb/thread proof yet, because it still requires at least one process callback to function
|
|
names
|