Age | Commit message (Collapse) | Author |
|
Keep a dedicated list of automated parameters to evaluate in realtime.
This fixes a performance issue with plugins that have many controls
with only few of them being automated.
|
|
This initialize some otherwise uninitalized variables and may fix
cue/toc export oddities
|
|
* assign Pan knob to Comp thresh as secondary function
* make cancel_all_solo and cancel_all_mute work in device mode, too
|
|
|
|
|
|
|
|
ActionGroups with a given "owner" value
|
|
|
|
|
|
|
|
|
|
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
|
|
|
|
|
|
|
|
This fixes inconsistent WM::Proxy state when a window is destroyed
Specifically "session-options-editor" when the session is unloaded;
previously "toggle-session-options-editor" was never unset.
|
|
|
|
ResampledImportableSource::read() returns audio-frames;
multiplication by number of channels read beyond the buffer.
|
|
|
|
|
|
This is more useful when replacing ActionManager::get_action
|
|
|
|
This fixes issues with analysis and archiving that rely on a readable
to return 0.
Note however that createSilent() uses max_samplecnt (INT64_MAX) by
default. This relies on a region setting the length of its missing
source.
|
|
This probably no real world effect since there is a mutex in the
loop that acts as a memory barrier.
|
|
|
|
These processors don't have a UI, so their load stats are not easily
visible. The stats can still be queried via Lua API or DSP-load
overview window, so we retain this for debug builds.
|
|
Use AU's preset->presetNumber as identifier since std::map are sorted
this also indirectly sorts presets by preset-number. (user presets
start with a '/' and are listed first, sorted by name).
Since Presets are now identified by URI on session load (53a0199a0)
and AU user-presets can added/be removed (since ae4604a24b7), simple
sequential numbering is no longer an option.
|
|
This works around async parameter-changed signal emission when loading
an AU preset. A simple timeout is used to delay making the preset
as modified.
|
|
|
|
This checks if the preset is actually available on the given system
and also sets the user-flag correctly.
|
|
This is a step in the right direction: first load the preset and
only if preset-loading was successful mark it as loaded.
This still does not properly unset "parameter_changed_since_last_preset".
AU signals "kAudioUnitEvent_ParameterValueChange" later in the event-loop.
|
|
|
|
load_property_list() takes a file-path (not URI). Actually it's not
clear why we've ever used a `file:///` URI internally.
|
|
|
|
|
|
|
|
|
|
This fixes a memory-leak (_midi_buf was allocated in DiskIOProc
but only delete in DiskReader). Also skip midi-refill early on
|
|
Disk-writer run() can concurrently use the ringbuffer after it was
free()ed by the butler thread.
|
|
* PortEngine::available() implementation
* AudioEngine::connected() wrapper
Eventually we may re-introduce PortEngine::available along
with a libardour internal port-engine.
|
|
available(), connected(), running() were ill-defined and
used interchangeably.
|
|
Session::new_route_from_template() unconditionally calls
IO::disable_connecting(), and needs to be reverted likewise
(no RAII here).
|
|
|
|
Adding/removing the Monitor section changes port-connections,
a port-engine is needed to establish connections.
Ideally we'd allow this and queue for connection changes. This
will however require deep changes.
Also toggling the monitor-section on/off/on w/o engine can later
result in failure to register ports. Due to lack of engine-signals
not all shared_ptr<> port references are dropped.
|
|
Previously Port::PortDrop was never handled.
The signal was disconnected directly when the connection
is re-used by Port::PortSignalDrop.
Ports::drop() was not called when the engine was stopped
or disconnected, and port-handles were not invalidated.
This lead to crashes whenever a port-related operation was performed
while the engine was stopped. e.g. adding/removing tracks or plugins
(latency recompute, notify port-engine) and various other operations.
|
|
At this point in time MIDI buffers are vastly over-sized.
They include VST and LV2 event structure. This added about a MB per
plugin for no benefit.
|
|
This fixes an error while loading shared libraries: libardour.so
R_PPC64_ADDR32 reloc at 0x... for symbol `' out of range
Treating a local as an immediate value in asm code makes the library
non-relocatable.
|
|
|
|
remove_processor() also calls drop_references, when successful.
|
|
Whitespace between XML nodes can result in "text" children.
Those need to be skipped in the patch-name list.
|