summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2020-05-11Transport Masters dialog: use delta symbol in all delta_strings (libardour ↵Ben Loftis
tweak)
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-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-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-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-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
2020-05-08Fix LTC generator alignmentRobin Gareus
When rolling forward the LTC generator needs to send future a timestamp, so that when it matches the current time when the signal arrives at the output port. (A6 aligns transport playhead to output)
2020-05-07required header inclusiongPaul Davis
2020-05-07make LTC transport master safe against the absence of a sessionPaul Davis
For example, when opening a new one, there will momentarily be no session
2020-05-07fix definition of templateed foreach_track() methodsPaul Davis
2020-05-07add new template methods for "foreach {route,track}" and use themPaul Davis
Also remove redundant double call to Track::set_block_size(). This dates back to 2010 when there used be an additional traversal of the Diskstream RCU-managed list, before they became owned by Tracks
2020-05-07fix comment typoPaul Davis
2020-05-08Fix comment in previous commitRobin Gareus
2020-05-08Fix capture alignment when using JACKRobin Gareus
In case of JACK all ports not owned by Ardour may be re-sampled, and latency is added. External JACK ports need to be treated like physical ports: I/O latency needs to be taken into account. When not using JACK, all external ports are physical ports so this is a NO-OP for other backends.
2020-05-08Reset external connection count when ports are reestablishedRobin Gareus
2020-05-07Remove unused variableRobin Gareus
2020-05-07Send LTC timecode from engine contextRobin Gareus
2020-05-07Change LTC Generator from IO to PortRobin Gareus
This is done in order to set the TransportGenerator flag
2020-05-07Prepare timecode-generator direct-outRobin Gareus
Generator ports (like TransportMaster slaves), should not be re-sampled when vari-speeding. Instead the Timecode/Clock should directly use the engine-speed. For this to happen, they need to be special-cased: no re-sampler latency, direct access to engine-buffers.
2020-05-07Fix initial disk-reader fade-inRobin Gareus
Since 4508d5bab this only happened after a fade-out. Currently there is no fade when transport is stopped and monitor mode changes MonitoringDisk <-> MonitoringInput. DiskReader::DeclickAmp is only used for data from disk. Fading live-input data passing through will likely need another Amp.
2020-05-07Fix Latency information of TransportMasterPort portsRobin Gareus
PortManager::cycle_start() excludes these ports from being resampled. They're directly handled by the TSM, outside of the session.
2020-05-07Auditioner: ignore dis/connections during init/shutdownRobin Gareus
2020-05-05Fix potential malloc(0) issueRobin Gareus
2020-05-05updated libardour czech translations from pavel frichPaul Davis
2020-05-04remove empty API and usagePaul Davis
This went away when we added RTMidiBuffer. Getting data from MIDI playlists is now completed in one pass, without note trackers
2020-05-04fix note-tracking in Editor::write_one_track()Paul Davis
We need a MidiStateTracker to determine notes whose end is not reached during the call to ::write_one_track(), so that we can resolve them in the output (SMF) source. This required some changes to the ::export_stuff() API for tracks. In addition, we now take the source "lock" just once during ::write_one_track() rather than every time we write. This isn't an integral part of the note tracking, but fell out along the way. Finally, note that although we use a vector to handle MIDI "sources" here, it is expected that there is only 1 MIDI source at present. Leave vectors in place since it is possible that ::write_one_track() could be modified in the future to change that.
2020-05-04add some (commented/ifdef'ed) debugging for RTMidiBuffer::read()Paul Davis
2020-05-04no need for return valuePaul Davis
2020-05-04add explanatory commentPaul Davis
2020-05-04slight better warning/debug message for a stuck note to-be-deletedPaul Davis
2020-05-04use RTMidiBuffer API correctly when reading for MidiTrack::export_stuff()Paul Davis
2020-05-04Set de-click reason monitor vs. start/stop.Robin Gareus
Previously use-monitor-fades was unused in A6, and transition between monitoring states used the use-transport-fades preference.
2020-05-04Fix alignment and de-click when monitoring changes while playingRobin Gareus
Previously it was possible that * declick_out = true, * target_gain == 0, cur_gain != 0 (fade out active) * speed != 0, disk_samples_to_consume > 0. So the disk-reader advanced the playback_sample, but since declick_out is active, the read from the ringbuffer was not committed.
2020-05-03Cont'd work on ALSA nperiods (amend 2326fb163)Robin Gareus
2020-05-01ALSA: only read/clear user-requested nperiods before snd_pcm_startRobin Gareus
This should fix excessive latency with the RayDay that has a fixed buffersize of 16384 samples.
2020-05-01force provision of "menu-name" for all WindowProxy objects, and thus TabbablesPaul Davis
Actions for hide/show/attach/detach tabbables use hard-coded names which are not translated. Using Tabbable/WindowProxy::name() to lookup the action will fail, since the name can be translated. This changes just removes the option to not provide a menu-name when creating these objects, and uses the name menu-name when looking up an action by name
2020-04-30remove debug outputPaul Davis
2020-04-30update other .po filesPaul Davis