Age | Commit message (Collapse) | Author |
|
shows issues with some workflows
|
|
sources, especially when created via import
|
|
|
|
change related to data loss
|
|
disk.
This is intended to catch a potential wierd condition where a source exists as a stub, but has not yet been written to disk,
and then a new source is created with the same path. Currently it is not understood how/when this might happen
|
|
renaming
|
|
region on demand and cloning/unlinking
Existing code would cause data loss due to creation of two Source objects referring the same path, one with removable flags and one without. Careful code review suggested a variety of thinkos, function naming problems and other confusion that caused this. I have tried ot extensively comment what is going on with these operations, because it is one key area in which MIDI differs from audio: with audio, capture is the only way to add a new audio region, but for MIDI there are GUI input events that can add a new region.
|
|
non-capture driven MIDI region creation operations).
See comments in Session::new_midi_source_name() for details.
|
|
|
|
Ideally, we would feed the monitor section via an internal (aux) send/return, but this is an improvement over what we had before
|
|
|
|
|
|
Outdated and fuzzy translations of MTC, MTC, LTC, etc caused
various issues (duplicate jack port names, exceptions, crashes).
Functionality should not be affected by translations (for now).
|
|
|
|
|
|
|
|
state of the click IO object
|
|
|
|
This reverts commit 914ba475de48f72e57bb6ac8a81888ad71cea7fa.
Unclear why I applied this or what it was supposed to do. A new session has no
state.
|
|
|
|
|
|
|
|
n_physical_{inputs,outputs} members which were (a) not initialized early enough (b) not used anywhere except monitor bus connection.
Things almost make sense now.
|
|
during quit-without-finished-session
|
|
both work
|
|
into its own method. sorry, ardour build-from-source folk :)
|
|
measurements, and continuing work on the session construction/engine configuration flow
|
|
EngineControl::State*
|
|
|
|
defer save state till after everything done in post_engine_init() is complete.
|
|
every session member is now initialized using C++ constructor syntax
session construction reordered to clarify the split(s) between work
where the engine is not relevant and work where is it is. this
split is still not 100% obvious, but is enormously clearer than
previously.
if engine/backend are not running as session is created, and the SR
of the sample rate is known, attempt to force backend to that value.
|
|
the goal is to allow a clear demarcation of where we need
the audioengine and have existing data parameters (e.g. sample rate)
for the session so that we can coerce the engine (if possible)
to match to session values.
also, to rationalize construction even more and use C++
constructor syntax as much as possible.
|
|
Session::AudioEngineSetupRequired when loading a session if it is necessary
|
|
This makes the responsibilities and ownership of non-Route related MIDI ports
more clear, and removes a few wierd bits of code. It also ensures that open/close/open
on the same session will retain connections for those MIDI ports
|
|
|
|
|
|
|
|
|
|
Plugins rewrite the buffer data in-place and some plugins
can produce output even when fed with silence.
Hence, during a PluginInsert::silence() run a plugin can
inject data into the "silent" buffers which causes side-effects.
Kudos to Chris 'oofus' Goddard for finding this issue.
|
|
"scratch buffers are by definition scratch and their contents are undefined at all times"
"silent buffers are by definition all-zero and should not be used for real data"
But track & route were using those for actual data; plugins (which may run
in the same thread and may get the same buffers) use them for scratch thereby
overwriting real data.
In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run)
clears the buffer which can holds real data:
e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
|
|
|
|
This reverts commits:
ca54ea2b462869bfd9254a493d073ca1e9ad4b8e.
9e87e058e26b87013e89ddf5d3b7358d50024d60.
|
|
|
|
|
|
This reverts commit e17f75b351356279778e4ea4adbb6c0d544ba755.
|
|
This currently only has effect if the loop connection is
made/unmade while the option was set/unset.
Toggling the option itself won't trigger a graph re-order
|
|
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
|
|
user-supplied text from the add route dialog
|
|
|
|
_origin is set, it means that the file is "external" to the session (aka "embedded") and for some purposes this is more significant than _file_is_new. rename SourceFactory::createReadable() to ::createExternal() to more clearly indicate its purpose; remove never-supplied "origin" argument from SourceFactor::createWritable(). Fixes problems caused by 864ce8f0
|