Robin Gareus
1c680f116a
Emit signal when session latency was updated
2019-09-29 01:27:35 +02:00
Robin Gareus
16066786e3
Add Lua bindings related to latency compensation
2019-09-29 01:26:54 +02:00
Robin Gareus
430dae6250
Add Signal to indicate global delay compensation status
2019-09-29 01:26:52 +02:00
Robin Gareus
e1378e7be5
Handle case where an audio-port is added to a MIDI only delayline
2019-09-27 14:50:40 +02:00
Paul Davis
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
5395a557d2
Another try at C++11/boost spinlock initialization
2019-09-26 02:48:17 +02:00
Paul Davis
468731c14b
goodbye Profile->...trx
2019-09-25 13:02:31 -06:00
Paul Davis
5ec5bc4523
goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build
2019-09-25 12:16:13 -06:00
Robin Gareus
86187514d9
Some reasonable default config changes
2019-09-25 15:27:02 +02:00
Robin Gareus
99b3bde7f6
Print LADSPA ID with debug message
2019-09-25 15:16:34 +02:00
Robin Gareus
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
Robin Gareus
09acad190b
Faderport: use well-known-controls API
2019-09-25 14:02:45 +02:00
Robin Gareus
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
John Emmas
c1abc6e1f1
Add/remove source(s) in our MSVC project (libardour)
2019-09-24 10:19:38 +01:00
Paul Davis
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
Paul Davis
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
Paul Davis
2a221ae21b
improve debug output
2019-09-22 12:23:54 -06:00
Paul Davis
0b033a320d
move all bundle-related session methods into their own file
2019-09-22 12:23:54 -06:00
Paul Davis
86b23c0f19
add direct access API for transportFSM and session transport speed
2019-09-22 12:23:54 -06:00
Paul Davis
9f8b8d192b
remove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Capture)Buffering
2019-09-22 12:23:54 -06:00
Paul Davis
228fbd3192
correct problem with some locates that would keep rolling after they are finished
2019-09-22 12:23:54 -06:00
Paul Davis
d7c91b5322
split session-bundled-related methods to their own file
2019-09-22 12:23:54 -06:00
Paul Davis
ba9e6ab869
add const and tweak variable name
2019-09-22 12:23:54 -06:00
Paul Davis
0869f63866
transport master deletion is no longer in parallel with process()
2019-09-22 12:23:54 -06:00
Paul Davis
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
Robin Gareus
99c072660b
NO-OP: whitespace
2019-09-22 04:58:32 +02:00
Robin Gareus
0e68d3f742
Optimize Audio-buffer summing
...
* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain
2019-09-22 04:54:28 +02:00
Robin Gareus
a1c48e0a80
Remove unused method
2019-09-22 04:52:26 +02:00
Robin Gareus
3ae46256c8
Properly initialize BusSendEnable min/max
2019-09-22 04:15:36 +02:00
Robin Gareus
7dc52e009f
NO-OP: cleanup code
2019-09-22 04:15:01 +02:00
Robin Gareus
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
Paul Davis
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
Paul Davis
bddde1337e
better initial value
2019-09-20 12:36:23 -06:00
Paul Davis
7383fbbe48
remove debug output
2019-09-20 12:26:49 -06:00
Paul Davis
b374eb7658
fix crash when doing rapid (ongoing-locate-interrupting) locates
2019-09-20 12:26:49 -06:00
Paul Davis
84f8e23027
move TransportFSM::enqueue() into .cc file
2019-09-20 12:26:49 -06:00
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
4d2ccdd905
const-ify TransportFSM
2019-09-20 09:44:15 -06:00
Paul Davis
30a1cffcdc
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)
2019-09-20 09:38:17 -06:00
Paul Davis
6b12264d40
add an important comment about transportFSM being single-thread and synchronous
2019-09-20 09:38:17 -06:00
Paul Davis
b075c67e51
use boost::intrusive to manage FSM events (this is all RT code)
2019-09-20 09:38:17 -06:00
Paul Davis
ea8ec74565
expand comment
2019-09-20 09:38:17 -06:00
Paul Davis
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
Robin Gareus
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
Paul Davis
401ace0c67
don't bother following playhead priority during session loading
2019-09-18 10:08:42 -06:00
Paul Davis
beafb5b572
deepen stack trace when checking non-RT RT calls
2019-09-18 10:08:42 -06:00