13
0
Commit Graph

30187 Commits

Author SHA1 Message Date
9b3c31f6b9 As in previous commit, never locate because of loop handling 2020-05-12 11:34:38 -06:00
ef1565d2bf We use seamless looping always now. Never any need to locate for loop changes 2020-05-12 11:34:38 -06:00
0326af6f6a make conditional logic fully explicit 2020-05-12 11:34:37 -06:00
98d56d6b21 Add API to PlaybackBuffer to compute amount of data that can overwritten
The distance is between a given offset in the buffer (probably a
read position at some point in time) and the write ptr. Any data after
the write ptr is "old" and not readable, and thus not worth overwriting
since we would not read it anyway.
2020-05-12 11:34:37 -06:00
376d4f2e68 LocateRoll session events should always roll-after locate
Don't rely on ev->locate_transport_disposition
2020-05-12 11:34:37 -06:00
c2e774e99d trivial reorder of variable assigment 2020-05-12 11:34:37 -06:00
27e45e9336 Don't bother even checking let alone doing internal seeks for zero distances 2020-05-12 11:34:37 -06:00
98a3a96d40 use more standard mechanism for "squishing" start of audio read into loop range 2020-05-12 11:34:37 -06:00
7138e76d2d new mechanism to refill pre-loop buffer when loop changes (used for xfading loop ends) 2020-05-12 11:34:37 -06:00
6a542fe5fe Use better method call to determine rolling status when loop is changed 2020-05-12 11:34:37 -06:00
2debf52ef1 remove unused variable 2020-05-12 11:34:37 -06:00
5a7b7b3bfb remove Route::reload_loop() and derivatives
Replacement to follow in subsequent commit
2020-05-12 11:34:37 -06:00
6433647268 use const; style guide (no spaces around conditional parenthesis) 2020-05-12 11:34:37 -06:00
da9b366e63 NO-OP: style guide issues (always use braces; no spaces around conditional parenthesis) 2020-05-12 11:34:37 -06:00
6f6d26d0ef
Fix spacing of engine-delta display 2020-05-12 19:32:27 +02:00
9908419f89
Use byte-offset when reading size at ringbuffer boundary
This likely fixes https://github.com/sfztools/sfizz/issues/221
2020-05-12 19:30:15 +02:00
ab6e274613
Ignore idempotent set_name() calls
These calls are expensive, particularly for ArdourButton, that
triggers a re-layout.
2020-05-12 15:37:23 +02:00
7b2b2401a3
Optimize AudioClock info-text rendering
Avoid markup, pango markup parsing is expensive, particularly
for info strings which may be updated periodically at
short time intervals.
2020-05-12 15:08:39 +02:00
fb203f3df8
Consolidate delta-string format, avoid markup 2020-05-12 14:59:44 +02:00
b36e6b8341
Optimize drawing of buttons with changing text
When a button has a fixed size, there's no need to call queue_resize().
This fixes an issue with the ArdourClock info displays when slaved.
The Timecode and Delta display text changes in small intervals and
caused excessive CPU load due to GUI size-requests + redraws.
2020-05-12 13:22:11 +02:00
58a5e256a9
GNU libc 2.31 compatibility part two
This fixes underlinking against -lm and reverts the
prior workaround 83cd796a47.
2020-05-12 12:23:26 +02:00
ba1a60873a
Fix MTC delta report
This amends a6ffc6213b.
apply the offset before the DLL.
2020-05-12 01:49:45 +02:00
feaf87d200
Dummy Backend: remove hardcoded MTC sequence 2020-05-12 01:49:45 +02:00
7c15ad099f
Dummy Backend: add a MTC generator 2020-05-12 01:49:41 +02:00
20c09ccfc3 Transport Masters dialog: don't use an uninitialized char array. 2020-05-11 18:37:12 -05:00
26dbd30ae6 Transport Masters dialog: various layout changes to improve legibility
Use Fonts and Color to help discriminate columns:
Values that come from the TC Master are now in black boxen (ToDo: use gtk theming)

Reduce the number of columns, to improve legibility:
Consolidate the Slave's current TC chase value and Delta (offset from Ardour current TC)
Consolidate the last message received, and how recently it was received
Remove Collect checkboxes (just disconnect the port if you don't want it to run)
2020-05-11 15:37:40 -05:00
80abcc8b2d Transport Masters dialog: use delta symbol in all delta_strings (libardour tweak) 2020-05-11 15:37:40 -05:00
7581ec5ac5 Transport Masters dialog: fix typo 2020-05-11 15:37:36 -05:00
88fc77b4c0
Double dummy MTC sequence duration 2020-05-11 21:35:22 +02:00
5e2755baa1
Slave delta display tweaks
* use left-aligned sign symbol with "sample" unit.
  When the delta value jitters in decimal places (e.g. MTC)
  it's otherwise no possible to discern + vs -.
* Use white text by default (not green)
2020-05-11 21:34:01 +02:00
44d87f2cd7
TMM GUI: display delta time from all slaves 2020-05-11 18:37:16 +02:00
58c5f75fc9
Fix TCM requiring port-reconnect when engine restarts
An engine restart sends dis-connect messages for the reverse
port-mapping (after making the connection):

Connect: system:midi_capture_41a56f90 -> ardour:MTC in
Connect: system:capture_1 -> ardour:LTC in
DisConnect: ardour:MTC in -> system:midi_capture_41a56f90
DisConnect: ardour:LTC in -> system:capture_1

This lead to TransportMaster being marked as inactive.
This is likely an issue that should be fixed elsewhere, but in
case of JACK, we likely do not have control over this.
2020-05-11 03:42:21 +02:00
a6ffc6213b
Fix MTC latency compensation
Offset the detected timecode instead of the detection time.
The latter is used by the DLL and later also used to calculate
delta times which lead to a constant offset.
2020-05-11 02:04:40 +02:00
f69a395893
Fix MTC slave port latency 2020-05-11 00:37:32 +02:00
4ff6fbe6b8
ALSA: Use same period for in+out #8075
Since the input is never flushed, capture latency is still
only one cycle.
2020-05-10 22:28:40 +02:00
e9401934c1
LTC: sync-lock is only relevant when clock is synced 2020-05-10 22:28:37 +02:00
Johannes Mueller
bff9c9a5a1 Work around a race condition
This covers a race condition in session transport that when synced to an
external engine it sometimes occurs that at the end of ::realtime_stop()
::transport_stopped_or_stopping() returns false when ::setup_rec_box() is
called. In this case the rec boxes are not erased when the recoding transport
is stopped.

This fixes this behavior about the remaining rec boxes, however the race
condition remains.

The race condition is reported in #8104. It should be considered reverting this
commit once the race condition is fixed.
2020-05-10 14:53:38 +02:00
52ae134efb
Fix initial sync to external time source
TransportMasterStart needs to be set when this cycle's delta
can reach _remaining_latency_preroll.

This allows to directly catch the master-position and start
rolling without initial vari-speed.
2020-05-09 23:43:04 +02:00
34fd8b5356
Bundle script to send raw MIDI to a given port 2020-05-09 23:43:04 +02:00
e3ea4a4a81 MIDI binding map for Nektar Panorama
This apparently needs several sysex files delivered to the device,
so may not be particularly useful
2020-05-09 11:43:39 -06:00
3ca33c07dc
Update LTC reader port latency on connection change
This mechanism adds infrastructure that can later also be used
for MTC and MIDIClock.

PS. The LTC Generator port's latency is queried after the port
is created, and later kept in sync via LatencyUpdated signal.
2020-05-09 05:10:04 +02:00
a46091b86a
Fix subtle bug breaking vari-speed (from d9caa7fd9a) 2020-05-09 02:20:15 +02:00
abe23b5885
ALSA backend: ignore idempotent latency settings 2020-05-09 01:22:18 +02:00
dffe780d95
Engine-dialog: latency spinbox sensitivity
This allows to change latency while running using numeric entry
or otherwise makes the spinboxes insensitive.
2020-05-09 01:19:03 +02:00
fe8df2eeae
Remember I/O ports used for latency measurement 2020-05-09 00:55:40 +02:00
ace8a0d7b9
LTC Generator: prefer LatencyUpdated signal 2020-05-09 00:34:15 +02:00
ecd55f9fec
LTC Slave: subscribe to LatencyUpdated signal
This uses a recently introduce Signal instead of the generic
GraphReordered, which was used in the past since it usually
happened after the latency was changed.
2020-05-08 23:51:40 +02:00
a2094d97ad
NO-OP: clang-format/whitespace 2020-05-08 23:30:04 +02:00
21f2c01fcd
Fix aux-send solo propagation
* Do not allow new send to change implicit solo (no propagation)
* Propagate changes to due aux-send removal upstream
  to tracks or busses connected to the source route.
* Forward solo-isolate
2020-05-08 14:59:44 +02:00
caf057f06d
Experiment: propagate solo-state with internal-sends
So far internal-sends were explicitly special-cased, and implicit
solo-state only was only forwarded for direct up/down-stream
connections.  ...and nobody can remember why :)

This restriction is removed, so far mainly with commenting-out
code, as experiment.

Internal sends are not only more convenient, but also required
in cases where direct connections result in ambiguous latency.
2020-05-08 06:35:08 +02:00