summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-12We use seamless looping always now. Never any need to locate for loop changesPaul Davis
2020-05-12make conditional logic fully explicitPaul Davis
2020-05-12Add API to PlaybackBuffer to compute amount of data that can overwrittenPaul Davis
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-12LocateRoll session events should always roll-after locatePaul Davis
Don't rely on ev->locate_transport_disposition
2020-05-12trivial reorder of variable assigmentPaul Davis
2020-05-12Don't bother even checking let alone doing internal seeks for zero distancesPaul Davis
2020-05-12use more standard mechanism for "squishing" start of audio read into loop rangePaul Davis
2020-05-12new mechanism to refill pre-loop buffer when loop changes (used for xfading ↵Paul Davis
loop ends)
2020-05-12Use better method call to determine rolling status when loop is changedPaul Davis
2020-05-12remove unused variablePaul Davis
2020-05-12remove Route::reload_loop() and derivativesPaul Davis
Replacement to follow in subsequent commit
2020-05-12use const; style guide (no spaces around conditional parenthesis)Paul Davis
2020-05-12NO-OP: style guide issues (always use braces; no spaces around conditional ↵Paul Davis
parenthesis)
2020-05-12Fix spacing of engine-delta displayRobin Gareus
2020-05-12Use byte-offset when reading size at ringbuffer boundaryRobin Gareus
This likely fixes https://github.com/sfztools/sfizz/issues/221
2020-05-12Ignore idempotent set_name() callsRobin Gareus
These calls are expensive, particularly for ArdourButton, that triggers a re-layout.
2020-05-12Optimize AudioClock info-text renderingRobin Gareus
Avoid markup, pango markup parsing is expensive, particularly for info strings which may be updated periodically at short time intervals.
2020-05-12Consolidate delta-string format, avoid markupRobin Gareus
2020-05-12Optimize drawing of buttons with changing textRobin Gareus
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-12GNU libc 2.31 compatibility part twoRobin Gareus
This fixes underlinking against -lm and reverts the prior workaround 83cd796a474f746.
2020-05-12Fix MTC delta reportRobin Gareus
This amends a6ffc6213b92735034bd7dc39638e926bca219da. apply the offset before the DLL.
2020-05-12Dummy Backend: remove hardcoded MTC sequenceRobin Gareus
2020-05-12Dummy Backend: add a MTC generatorRobin Gareus
2020-05-11Transport Masters dialog: don't use an uninitialized char array.Ben Loftis
2020-05-11Transport Masters dialog: various layout changes to improve legibilityBen Loftis
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-11Transport Masters dialog: use delta symbol in all delta_strings (libardour ↵Ben Loftis
tweak)
2020-05-11Transport Masters dialog: fix typoBen Loftis
2020-05-11Double dummy MTC sequence durationRobin Gareus
2020-05-11Slave delta display tweaksRobin Gareus
* 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-11TMM GUI: display delta time from all slavesRobin Gareus
2020-05-11Fix TCM requiring port-reconnect when engine restartsRobin Gareus
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-11Fix MTC latency compensationRobin Gareus
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-11Fix MTC slave port latencyRobin Gareus
2020-05-10ALSA: Use same period for in+out #8075Robin Gareus
Since the input is never flushed, capture latency is still only one cycle.
2020-05-10LTC: sync-lock is only relevant when clock is syncedRobin Gareus
2020-05-10Work around a race conditionJohannes Mueller
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-09Fix initial sync to external time sourceRobin Gareus
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-09Bundle script to send raw MIDI to a given portRobin Gareus
2020-05-09MIDI binding map for Nektar PanoramaPaul Davis
This apparently needs several sysex files delivered to the device, so may not be particularly useful
2020-05-09Update LTC reader port latency on connection changeRobin Gareus
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-09Fix subtle bug breaking vari-speed (from d9caa7fd9a55e)Robin Gareus
2020-05-09ALSA backend: ignore idempotent latency settingsRobin Gareus
2020-05-09Engine-dialog: latency spinbox sensitivityRobin Gareus
This allows to change latency while running using numeric entry or otherwise makes the spinboxes insensitive.
2020-05-09Remember I/O ports used for latency measurementRobin Gareus
2020-05-09LTC Generator: prefer LatencyUpdated signalRobin Gareus
2020-05-08LTC Slave: subscribe to LatencyUpdated signalRobin Gareus
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-08NO-OP: clang-format/whitespaceRobin Gareus
2020-05-08Fix aux-send solo propagationRobin Gareus
* 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-08Experiment: propagate solo-state with internal-sendsRobin Gareus
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-08Fix 6afcb350c5, internal backends don't report externally_connected()Robin Gareus