summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2019-11-13Automation watch toggle buttons and enforce latchRobin Gareus
2019-11-13Remove boolean automation special caseRobin Gareus
Previously setting a boolean-control to "write" and roll did not create an automation-point. The state was not correctly captured. The boolean-control needed to be toggled explicitly to create an automation point.
2019-11-13Fix automation-write when locatingRobin Gareus
When locating while writing automation, begin a new write-pass, and add a guard point at the locate target position. NB set_in_write_pass takes 3 arguments: (write_enable, add_point, when) the last two default to false, 0.
2019-11-13Fix bool-automation anchorRobin Gareus
Typo sneaked in from ff2f93497...cc7de475f2
2019-11-12Add API to query if a given MIDNAM is plugin-providedRobin Gareus
2019-11-11Only retain control-port connectionsRobin Gareus
When MIDI input follows selection, ports that provide music-data should be disconnected, even if they *also* provide control-data
2019-11-10Log warning if host does not support midnam/bankpatch extensionsChristopher Arndt
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2019-11-10Fix segfault: don't try to use midnam:update extension if host doesn't ↵Christopher Arndt
support it Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2019-11-09Remove invalid error messageRobin Gareus
This clause is in NO_VFORK, vfork_exec_wrapper is irrelevant there
2019-11-09Fix child-process communication (video monitor in particular)Robin Gareus
103ef2ba08e5 introduced an API to write raw data (const void*) to a child process, along with the previous API to write (std::string const&) VideoMonitor uses write_to_stdin("fixed text"), and g++ interprets this to use the (const void*) API instead of the std::string, which breaks communication.
2019-11-08Fix Metronome: use loop-range only when loopingRobin Gareus
2019-11-08Fix tempo-grid calculation: prevent duplicate events, enforce rangeRobin Gareus
2019-11-08Fix uninitialized valueRobin Gareus
ARDOUR::LV2Plugin::init -> lilv_state_restore () -> set_port_value () compares new against current value
2019-11-08Ignore latency of inactive routesRobin Gareus
2019-11-08Remove unused signalRobin Gareus
2019-11-08Click: pre-allocate memory for grid-point lookupRobin Gareus
2019-11-08Fix metronome when loopingRobin Gareus
2019-11-08Fix loop/pre-rollRobin Gareus
Pre-roll to fill buffers only needs to be done once when starting to play or when locating. Seamless looping just continues. Every processor takes the loop position into account locally.
2019-11-06remove stacktracePaul Davis
2019-11-06remove debug outputPaul Davis
2019-11-06do not transition "back" to Rolling by calling start_transport() if a locate ↵Paul Davis
was for loop-end We never stopped the transport, so there's no reason to start it again. Doing so causes alignment problems because all tracks have their ::run() ranges reinitialized
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-06add a signal to Gtkmm2ext::Keyboard to allow (possible) handling of ↵Paul Davis
close-current-dialog
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-06Use strict-i/o on master-bus by defaultRobin Gareus
This precludes issues with multi-out-plugins adding an excessive number of ports and changing master-panning.
2019-11-06remove debug messagePaul Davis
2019-11-06move at-exit messages about pool utilization to DEBUG_TRACEPaul Davis
2019-11-06resolved notes need to use cycle-relative timePaul Davis
2019-11-06be sure to move effective_start while loop-reading MIDIPaul Davis
2019-11-06fix DiskReader::get_midi_playback() when loopingPaul Davis
Although at the Session level we never run "through" the loop end, latency compensation means that that start/end sample values passed to Processor::run() may cross the loop end. Fix how we handle this so that we do not read data from after the end of the loop
2019-11-06improve comment about warning messagePaul Davis
2019-11-04fix a bad transition in the transportFSM.Paul Davis
2019-11-04avoid use of Port::port_offset() everywhere except Port::flush_buffers() and ↵Paul Davis
Port::get_buffer() Split cycles are run as if they are an entire self-contained cycle, starting at zero and running for "nframes". We adjust the timing and position of data only when retrieving and writing it to Port buffers.
2019-11-04rename method argument to better reflect its intended rolePaul Davis
2019-11-03when resolving notes for a locate, use zero as the timestamp, not the ↵Paul Davis
current Port::port_offset() All _immediate_events data gets written to the output buffer at the end of the current (split) cycle anyway, so the timestamp is irrelevant (as long as it is zero, and will therefore be read by ::snapshot_out_of_band_data()
2019-11-03another notable cleanup/simplification of DiskReader's MIDI handlingPaul Davis
Note that we resolve notes from the tracker directly into the output buffer. This happens after an edit causes a buffer overwrite
2019-11-03comment fixPaul Davis
2019-11-03immediate events time reference for zero is the start of the run() cycle, ↵Paul Davis
not absolute sample time
2019-11-03Correctly flush MIDI buffers on cycle-splitRobin Gareus
2019-11-03Clarify MIDI-port event-timestamp debug-messageRobin Gareus
2019-11-03Fix timecode generation after split-cyclesRobin Gareus
2019-11-03Add/remove source(s) in our MSVC project (libardour)John Emmas
2019-11-03Accommodate some recently moved/renamed folders and source files (libevoral)John Emmas
2019-11-03Fix build -- 'printf' was not declared in this scopeRobin Gareus
2019-11-03Fix compiler warningRobin Gareus
2019-11-02for now, show how long MIDI rendering takesPaul Davis
2019-11-02use playback filter when rendering MIDI; respond to changes in filter by ↵Paul Davis
re-rendering
2019-11-03Auto-connect input should not disconnect other portsRobin Gareus
This fixes an issue with existing MIDI routing between MIDI tracks and/or busses. Automatic MIDI connections should only dis/re-connect ports that are explicitly configured in Preferences > MIDI Ports and leave all other connections alone.
2019-11-02part 1 of replicating semantics of ARDOUR_UI::toggle_roll() in ↵Paul Davis
BasicUI::toggle_roll() This can be done better, even without sharing code
2019-11-02comment updatePaul Davis