summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2020-05-23Define Lua constants (used with preferences)HEAD6.0masterRobin Gareus
2020-05-19Don't save the session when creating bussesRobin Gareus
Most calls to new_audio_route() used save = false, only directly creating busses saved the session. Probably for historical reasons.
2020-05-19NO-OP: replace `save_state("")` with `save_state()`Robin Gareus
2020-05-16NO-OP: whitespace & const'nessRobin Gareus
2020-05-15DiskReader: do not initialize pre-loop-buffer in constructorPaul Davis
2020-05-13update DiskReader loop delick objects when loop changesPaul Davis
2020-05-13reinstate Session::loop_changing to avoid problems when locating to start of ↵Paul Davis
loop for loop play
2020-05-13Set timecode format from active master onlyRobin Gareus
2020-05-12remove Session::loop_changingPaul Davis
Since we now (correctly) do not locate for loop changes, this member is unnecessary
2020-05-12new mechanism to refill pre-loop buffer when loop changes (used for xfading ↵Paul Davis
loop ends)
2020-05-12remove Route::reload_loop() and derivativesPaul Davis
Replacement to follow in subsequent commit
2020-05-12Consolidate delta-string format, avoid markupRobin Gareus
2020-05-11Fix MTC slave port latencyRobin Gareus
2020-05-10LTC: sync-lock is only relevant when clock is syncedRobin Gareus
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-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-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-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-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-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-04-28remove pointless libs/midi++2/midi++/event.h filePaul Davis
This was just a proxy for libs/evoral/evoral/Event.h. Note that the #define that controlled allocation that was at the top of the removed header is replicated in the Evoral header, so there are no semantic changes
2020-04-28Con't work on ALSA nperiod selection (see also d3d120fa)Robin Gareus
2020-04-27nominal improvement for MTC master: use port latency to adjust sampletimes ↵Paul Davis
that MTC events "occured at"
2020-04-27Skip delayline updates if no change is requiredRobin Gareus
2020-04-26Remove duplicate i/o latency calculationRobin Gareus
Port and connection changes always imply a latency_callback from the engine. Worst I/O latency is updated directly in Session::update_latency() which is called from AudioEngine::latency_callback. Explicit subscriptions to route->output()->changed() is not needed to update the worst I/O latency. Only set_block_size() needs to to update the I/O latency when the buffer-size changes.
2020-04-26Remove common prefix for latency debuggingRobin Gareus
-DLatency now triggers all four: * LatencyCompensation (entry-points, overall flow) * LatencyIO (Port/IO query, set/get private/public) * LatencyDelayLine (Delaylines for internal sends and alignment) * LatencyRoute (route processor latency)
2020-04-25Remove unused signalRobin Gareus
2020-04-25Clean up 135814cf0, prefer PannableChanged signalRobin Gareus
This allows to also catch cases when a panner-ui directly changes set_linked_to_route() of the panner shell.
2020-04-24make Session::should_ignore_transport_request() non-constPaul Davis
2020-04-24ensure that when a Session emits Port::PortDrop, transport master ports are ↵Paul Davis
left in place
2020-04-24Expose pan-link via Send API, emit signal on changeRobin Gareus
2020-04-23Fix MIDI auditioningRobin Gareus
The Auditioner is not part of the session route-list and the auditioner route's I/O latency is never updated. Session::process_audition() does not handle pre-roll either, so it need to be zeroed, otherwise Route::roll skips samples. This has lead to initial samples being skipped, IFF the auditioner's output-port had non-zero latency. Since private port-latencies are usually only set for routes in the route-list, and _remaining_latency_preroll is reset at transport-stop, this *usually* worked... Last but not least, MIDI notes need to be resolved when seeking.
2020-04-23Micro optimization: cache output IO latencyRobin Gareus
IO::latency iterates over the port-set retrieving the private_latency_range of each port. Since it can only change when connections and latency changes, we can instead cache the value. This is also in preparation to allow the auditioner to override it.
2020-04-23Prevent huge stack allocations for MIDNAM filesRobin Gareus
xmlParseMemory() uses a c-pointer char*. Previously MIDNAM data on the heap were wrapped inside a std::string only to be later accessed via c_str().
2020-04-23Consolidate stack-size and priority of rt-threadsRobin Gareus
2020-04-19Shorten default export-prerollRobin Gareus
Since 57118c2370fa, plugins are re-activated after every export. So a silent pre no-roll is mainly useful for with realtime export, and for some cases where a plugin does not correctly reset. Note that for the first export, plugins are not currently flushed.
2020-04-19Solo isolate foldback busses - #8020Robin Gareus
2020-04-18RAII collect processor-change signals6.0-rc1Robin Gareus
2020-04-18Optimize realtime listen-position changeRobin Gareus
2020-04-16Plugin: bypass <> enabled mappingRobin Gareus
LV2 uses "enabled": -1: inactive, 0: bypassed, 1:enabled VST3 has "bypass: 0:active, 1: bypassed
2020-04-16Prefer std::string for `print_parameter` APIRobin Gareus