summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
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
2020-04-30use PROGRAM_NAME to name GUI threadPaul Davis
2020-04-30fix 52b906651180 (incorrect logic). Restores audio playback from diskPaul Davis
2020-04-30Set Arodur's main thread name to include "Ardour"Robin Gareus
This is helpful when debugging by PID (adevices.sh most notably), just "gui" is not usually helpful.
2020-04-30ALSA: set start threshold to zeroRobin Gareus
2020-04-30Another step towards nperiod fixes for the RayDayRobin Gareus
2020-04-29Tweak ALSA nperiod setting, fallback to nearestRobin Gareus
This is mainly for RME RayDAT that has a fixed buffersize of 16k: dev_name : hw:HDSPMxc2f6c5,0 channels : 36 min_rate : 32000 max_rate : 192000 min_bufz : 16384 max_bufz : 16384 min_nper : 4 max_nper : 512 However nperiod configuration determines the effective latency regardless. This is similar to https://github.com/jackaudio/jack1/blob/master/drivers/alsa/alsa_driver.c#L476-L486
2020-04-29do not set declick_amp's gain for declick out during export of MIDI-only tracksPaul Davis
When export is done, nothing a MIDI-only track will reduce the gain ("goto midi" inside DiskReader::run() and the "declick-in-progress" state will be permanent
2020-04-29NO-OP: whitespaceRobin Gareus
2020-04-29Add/remove source(s) in our MSVC project (midi++2)John Emmas
2020-04-29Allow to refresh ALSA device list - #8051Robin Gareus
2020-04-29ALSA: set min/max sizes before the debug messageRobin Gareus
2020-04-28Update Japanese translation for 6.0Hiroki Inagaki
2020-04-28Revise French translation, part 7 -- #8035Robin Gareus
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-28Revise French translation, part 6 -- #8035Robin Gareus
2020-04-28Con't work on ALSA nperiod selection (see also d3d120fa)Robin Gareus
2020-04-28Prepare to allow using ALSA backend with nperiods > 3Robin Gareus
This will still need an update for Alsa_pcmi::set_hwpar() capture channel (which is fixed at 2, unless FRAG_NEAR is used).
2020-04-28Add flag to allow ALSA backend to fall back to nearest avail. nperiodsRobin Gareus
2020-04-27show MTC transport master latency when computedPaul Davis
2020-04-27Ignore unconnected ports for latency-compensationRobin Gareus
This fixed a false-positive "ambiguous latency" warning for MIDI busses: MIDI track -midi-> MIDI Bus w/instrument -audio|midi-> master The master-bus only has audio inputs, so the MIDI Bus' MIDI out is left unconnected. Its latency does not matter, it can float freely. Previously it was assumed to be zero. So the MIDI Bus' input playback latency range was [0, master-bus playback-latency].
2020-04-27nominal improvement for MTC master: use port latency to adjust sampletimes ↵Paul Davis
that MTC events "occured at"
2020-04-27Don't call into engine for queued latency updatesRobin Gareus
2020-04-27Prevent excessive latency recomputationsRobin Gareus
Session::update_latency() may be called multiple times with the process-lock being held.
2020-04-27Remove debug messageRobin Gareus
2020-04-27Skip delayline updates if no change is requiredRobin Gareus
2020-04-27Work around jack2's insane thread semanticsRobin Gareus
jack2 can process in parallel with calling a graph-order or latency-callback, so Ardour takes a lock to update those in sync. Yet jack2 can also block while port-registrations happen, and concurrently emit latency-callback from another thread..
2020-04-26Prevent race between adding ports and IO port-lookupRobin 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-26Fix a deadlock (process_lock vs _update_latency_lock)Robin Gareus
The backend may call update_latency() while at the same time the auto-connect-port calls set_worst_io_latencies(). The latter already holds the process-lock, so update_latency() first needs to acquire it, as well. If one already holds the _update_latency_lock, one must not ask for the process-lock. --- Previously Ardour's connection manager first took the process_lock and then waited to the _update_latency_lock. Meanwhile jack calls latency_callback(), takes the _update_latency_lock and waits for the process_lock. Classic deadlock.
2020-04-26Cont'd work on delayline-config (amend b196cef2)Robin Gareus
2020-04-26Speed up loading sessions with synthsRobin Gareus
LV2 plugins may add a MIDNAM file when they're loaded. This can be happen concurrently with the MidiPatchManager, loading the system-wide patch files. Session load should not be interrupted by the initial background scan of patch files, which can take a very long time. We need to allow update_custom_midnam() to grab the _lock.
2020-04-25NO-OP: reduce scope, return earlyRobin Gareus
2020-04-25Remove unused signalRobin Gareus