summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
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
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