13
0
Commit Graph

14975 Commits

Author SHA1 Message Date
f417bc07d0
Fix port-insert default latency 2019-09-29 18:25:14 +02:00
cd5f70e69a
Fix issues when delay-buffers are re-allocated
Previously buffers were dropped, and data was not copied to
newly allocated buffers. As side-effect the read-offset was not
adjusted either.

The distance between read and write-pointer needs to be maintained
(delay does not change). This needs to be accounted for, when the
buffer increases while read->write wraps around the old (smaller)
buffer. Previously this triggered an assert (in line 180)
2019-09-29 17:00:27 +02:00
1c680f116a
Emit signal when session latency was updated 2019-09-29 01:27:35 +02:00
16066786e3
Add Lua bindings related to latency compensation 2019-09-29 01:26:54 +02:00
430dae6250
Add Signal to indicate global delay compensation status 2019-09-29 01:26:52 +02:00
e1378e7be5
Handle case where an audio-port is added to a MIDI only delayline 2019-09-27 14:50:40 +02:00
903c3ec5a0 rename BufferSet::get* to BufferSet::get_available*
This tries to make it clear what the BufferSet limit semantics really are
2019-09-26 18:39:56 -06:00
f5f452bf9c Don't try to process MIDI input in a DiskWriter if it has no _midi_buf
... which implies it has no MIDI input port(s) either.

This fixes behaviour caused by BufferSet::get...() returning a valid MidiBuffer because it was
based on using the _available count within the BufferSet, even though the _count value
indicated there was no buffer available (to match the I/O configuration of the Route).
2019-09-26 18:39:56 -06:00
55e03e5c68
Try auto-start engine by default
Ardour auto-connects to JACK already if jackd is running. Let
other users benefit from a similar experience.
2019-09-26 20:15:09 +02:00
5395a557d2
Another try at C++11/boost spinlock initialization 2019-09-26 02:48:17 +02:00
468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06:00
5ec5bc4523 goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build 2019-09-25 12:16:13 -06:00
86187514d9
Some reasonable default config changes 2019-09-25 15:27:02 +02:00
99b3bde7f6
Print LADSPA ID with debug message 2019-09-25 15:16:34 +02:00
d10c4c651c
Consolidate and extend "well-known" controls:
* Add new common strip controls (inspired from Mixbus)
* Remove duplicate documentation, document virtual API only.
* "azimuth" not "azi"
2019-09-25 14:02:45 +02:00
09acad190b
Faderport: use well-known-controls API 2019-09-25 14:02:45 +02:00
0eebc8b894
Prepare for plugin-control groups
This is in preparation to allow groups of "well known" controls,
the parameter ID of which is not known a-priori.
2019-09-24 19:50:54 +02:00
c1abc6e1f1 Add/remove source(s) in our MSVC project (libardour) 2019-09-24 10:19:38 +01:00
e0069fe0f5 various changes to transportFSM, mostly to try to keep track of whether to roll-after-locate (more) accurately 2019-09-22 12:23:54 -06:00
21ba7fb844 change the way we clear post transport work as the butler and post-butler methods get things done
This avoids the blanket "set_post_transport_work (PostTransportWork(0));" that never really looked right
2019-09-22 12:23:54 -06:00
2a221ae21b improve debug output 2019-09-22 12:23:54 -06:00
0b033a320d move all bundle-related session methods into their own file 2019-09-22 12:23:54 -06:00
86b23c0f19 add direct access API for transportFSM and session transport speed 2019-09-22 12:23:54 -06:00
9f8b8d192b remove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Capture)Buffering 2019-09-22 12:23:54 -06:00
228fbd3192 correct problem with some locates that would keep rolling after they are finished 2019-09-22 12:23:54 -06:00
d7c91b5322 split session-bundled-related methods to their own file 2019-09-22 12:23:54 -06:00
ba9e6ab869 add const and tweak variable name 2019-09-22 12:23:54 -06:00
0869f63866 transport master deletion is no longer in parallel with process() 2019-09-22 12:23:54 -06:00
057ce33563 use internal seek to implement DiskReader::seek() when possible.
This still needs a check that the amount of readable data left in the buffe is adequate.
2019-09-22 12:23:54 -06:00
99c072660b
NO-OP: whitespace 2019-09-22 04:58:32 +02:00
0e68d3f742
Optimize Audio-buffer summing
* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain
2019-09-22 04:54:28 +02:00
a1c48e0a80
Remove unused method 2019-09-22 04:52:26 +02:00
3ae46256c8
Properly initialize BusSendEnable min/max 2019-09-22 04:15:36 +02:00
7dc52e009f
NO-OP: cleanup code 2019-09-22 04:15:01 +02:00
e8822e76d6
Add abstract API for latency compensated sends
This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.
2019-09-20 21:27:16 +02:00
361727716f do not abort in the event that we cannot internal-seek to align with the playhead.
There are no good options here, but treating it like a regular underrun seems as good as anything
2019-09-20 13:02:46 -06:00
bddde1337e better initial value 2019-09-20 12:36:23 -06:00
7383fbbe48 remove debug output 2019-09-20 12:26:49 -06:00
b374eb7658 fix crash when doing rapid (ongoing-locate-interrupting) locates 2019-09-20 12:26:49 -06:00
84f8e23027 move TransportFSM::enqueue() into .cc file 2019-09-20 12:26:49 -06:00
b04788407a at transport stop, reset FSM's idea of the last locate target (also removes const from method) 2019-09-20 12:26:49 -06:00
3f9d79e7ab
Handle an unused edge-case
In practice PanControllable::owner cannot be NULL, but in theory it
could be (and might be for Mixbus6 internal panning).
2019-09-20 19:41:06 +02:00
467795f467
Fix Latency Measurement without device re-start
This handles a case when the engine was started normally
(not for latency measurement), and measurement is performed later.
This resulted in a duplicate backend start
2019-09-20 19:41:05 +02:00
4d2ccdd905 const-ify TransportFSM 2019-09-20 09:44:15 -06:00
30a1cffcdc rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department) 2019-09-20 09:38:17 -06:00
6b12264d40 add an important comment about transportFSM being single-thread and synchronous 2019-09-20 09:38:17 -06:00
b075c67e51 use boost::intrusive to manage FSM events (this is all RT code) 2019-09-20 09:38:17 -06:00
ea8ec74565 expand comment 2019-09-20 09:38:17 -06:00
61afcb8e2b replace boost::msm - based FSM for transport with one written in "plain C++"
Still need to use boost::intrusive to managed qeued/deferred containers
2019-09-19 22:34:18 -06:00
e698a1b2fa
Fix LV2 state:loadDefaultState
lilv_state_restore() needs to be called unconditionally (regardless
if a plugin actually has a state-interface) to set port and properties.
It has to be called after ports are enumerated and supported
properties are loaded.
2019-09-18 18:42:34 +02:00