summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
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
2020-04-15Fix PolyKeyPressure, consolidate AutomationType checksRobin Gareus
2020-04-15Allow MIDNAM lookup of valid channels for controllersRobin Gareus
2020-04-14NO-OP: whitespaceRobin Gareus
2020-04-14Fix playback alignment when adding/removing channelsRobin Gareus
The disk-reader assumes that all playback ringbuffers are in sync and have the same fill_level.
2020-04-12Forward disk-reader ConfigurationChanged signalRobin Gareus
2020-04-12Fix loop range changes while playing - #8001Robin Gareus
Since ead883302fe800ae, it is no longer possible to use a null pointer SessionEvent::track as flag to indicate overriding all buffers.
2020-04-09some potentially helpful but trivial commentsPaul Davis
2020-04-07Revert "PortEngineSharedImpl callbacks should not be pure virtual"Paul Davis
This reverts commit a13ef36b3b6212d1ae0c563c7a60a86152dbb48f. A better fix is coming.
2020-04-07PortEngineSharedImpl callbacks should not be pure virtualPaul Davis
A port can callback from its destructor, which if occuring inside the backend destructor would reach an already partially destructed backend.
2020-04-07fix return value to be a legal null shared_ptr<PortPtr>Paul Davis
2020-04-08Fix false-positive under-run messagesRobin Gareus
Port (or Tracks) can be safely added during playback, however the disk-reader's playback buffer is initially empty. This lead to false-positive Underrun() signals when processing takes place before or concurrently with re-filling the disk-buffer for the new channels. Now new empty buffers are ignored, and produce silence until the initial refill is complete. There is however no per-channel de-click in, yet. This fixes: play some audio track, ctrl+drag a region to the drop-zone, creating a new track while playing.
2020-04-07Add option to reset x-run count on record-startRobin Gareus
2020-04-07use shared_ptr to manage backend port lifetimes (Pulse,ALSA,Dummy,JACK)Paul Davis
JACK is not yet finished. Changes also include minor reformatting and a spelling correction (latecies to latencies)
2020-04-07Fix typo in API name (1/2)Robin Gareus
2020-04-07NO-OP: whitespaceRobin Gareus
2020-04-07Atomically reset peak meters #7465Robin Gareus
2020-04-07API change: LatencyUpdated(), indicate playback/captureRobin Gareus
2020-04-06NO-OP: whitespaceRobin Gareus
2020-04-06Add method to check for ambiguous port latencyRobin Gareus
2020-04-04Forward instrument MIDNAM changed signalRobin Gareus
2020-04-03Allow to disable input auto-connect when creating tracksRobin Gareus
Auto-connect is handled in a background thread, so newly created tracks are not immediately connected. This causes a race-condition when fan-out directly disconnects and re-connects ports after track/bus creation.
2020-04-03NO-OP: indent & whitespaceRobin Gareus
2020-04-03Add missing includeRobin Gareus