summaryrefslogtreecommitdiff
path: root/libs/ardour
AgeCommit message (Collapse)Author
2020-01-30Add some sanity checks for Session::save parametersRobin Gareus
2020-01-30Cont'd work on loading old route templatesRobin Gareus
This builds on top of 51d2bb: * v6 routes templates/states have a version per <Route> * older route-states are assumed to be from ardour-5 Stateful::loading_state_version 3002, unless specified otherwise
2020-01-29Save/Use state-version with route templatesRobin Gareus
Currently using Ardour-5 route templates (state version "3002") with Ardour6 fails. As opposed to session-templates, Route templates were not versioned. This ensures future compatibility (and may allow to interpret unversioned templates as "3002")
2020-01-29Fix tests failing to build by adding LIB_FFTW3FNikolaus Gullotta
2020-01-29Reduce overhead of Lua session-scriptsRobin Gareus
2020-01-29Fix MIDI loop capture alignmentRobin Gareus
Loop recording creates a single long source, regions have to be "split" from this source, using "start" as offset. Since MIDI uses absolute timestamps, offsetting this by accumulating buffer_position += (*ci)->samples; like Track::use_captured_audio_sources() does, is not correct. Furthermore, record_enabled() may be off when stopping recording, MIDI needs to be flushed regardless.
2020-01-29Allow to dis/engage rec-arm while loopingRobin Gareus
2020-01-29Fix loop recording alignmentRobin Gareus
DiskWriter::transport_looped() is called from the session when engine loops. This does not take local disk-reader run() latency offset into account. finish_capture() needs to be postponed until the disk-writer itself reaches the loop-position. This is achieved by postponing loop() and calling it once loop-length of samples has been captured. This works because engaging loop always seeks to the loop-position and first loop resets _capture_captured.
2020-01-28Micro optimization: query PI flags onceRobin Gareus
This also removes a Mixbus special case, explicit ->mixbus() tests are no longer required.
2020-01-28fix previous commit, and another instance of the same (incorrect ↵Paul Davis
constructor) issue
2020-01-28fix assert-crash caused by not constructing a StopTransport event correctlyPaul Davis
2020-01-27correct location of resolved note-offs after region is renderedPaul Davis
2020-01-27Fix sending MMC Start/Stop messagesRobin Gareus
Ardour 5.x slave check was incorrectly ported to A6's TMM: In Ardour 5 the comparison tested for *not* MTC: ``` if (!dynamic_cast<MTC_Slave*>(_slave)) { ..send MMC.. } ``` Other MMC messages (Record, Locate) are sent unconditionally.
2020-01-27Add new requirements from AudioEngine::stop to ::drop_backendRobin Gareus
This fixes an issue that after changing backends (::set_backend), the session-transport was in inconsistent state. If it was rolling, it continued to roll with "stop" being unavailable.
2020-01-27Fix building unit-testsRobin Gareus
2020-01-27Fix two more clang static analysis warningsRobin Gareus
2020-01-27Delete out-of-bounds metronome clicksRobin Gareus
2020-01-27Fix some clang-scan warningsRobin Gareus
2020-01-26Fix the ability to set Session Start&End Range on a new, empty sessionBen Loftis
set_session_extents had a bug; it wasn't calling locations->add() on the newly created location. The correct implementation was in set_session_range_location, but this was only called from one place. This function was removed, and set_session_extents will be used in its place. set_session_extents will create a session location if one no longer exists, so there is no need for set_session_range_location.
2020-01-26Fix Loop-length (no pre-roll on loop-iterations)Robin Gareus
2020-01-25remove debug outputPaul Davis
2020-01-25Tweaks to build/package scripts for new wafRobin Gareus
* Windows: delete waf installed .dll.a files * Windows: override waf's conf.env.LIBDIR = conf.env.BINDIR with explicit --libdir * Windows: fix asm (`x86_64-w64-mingw32-as` -D flag is for debug messages, -D defines are not available) * Mac: override waf adding -install_name (and -Wl,-compatibility_version -Wl,-current_version) by moving -dynamiclib from linkflags to ldflags * Mac: Allow libs with compat version number suffix (not needed anymore, but may help in the future)
2020-01-25Towards waf python 2+3 supportDavid Runge
2020-01-24Engine: debug-print alignmentRobin Gareus
2020-01-23tentative fix for stop-transport not working after a locate at loop endPaul Davis
2020-01-23add more debug outputPaul Davis
2020-01-23use Session::locate_initiated(), appropriatelyPaul Davis
2020-01-23add Session::locate_initiated()Paul Davis
This differs from ::locate_pending() by covering either phase of a locate - declick or refill
2020-01-23add TransportFSM::declicking_for_locate()Paul Davis
2020-01-23extend DEBUG_TRACE outputPaul Davis
2020-01-23NOOP: whitespace/indent fixes from emacsPaul Davis
2020-01-23MIDI-region specific naming logicPaul Davis
plus slight cleanup of Region::set_name(). Note that issues with ARDOUR::legalize_for_path() not excluding colons still remain
2020-01-23NOOP: remove blank linePaul Davis
2020-01-23remove no-longer used PostTransportWork bits and renumber the restPaul Davis
2020-01-23after the butler has finished work, by definition there is nothing left to doPaul Davis
2020-01-23variable not used without debug modePaul Davis
2020-01-23Only select all routes in a given group if the group is activeNikolaus Gullotta
2020-01-21do not clear any PostTransportWork flags in butler threadPaul Davis
doing this was causing the TFSM to get stuck in "WaitingForButler"
2020-01-21add a heuristic to avoid refilling playback buffers at transport stopPaul Davis
If we're within 1/6th of the size of the reserved buffer of the target sample, no need to refill
2020-01-21remove debug outputPaul Davis
2020-01-21Display LV2 plugin-name with errors/warningsRobin Gareus
2020-01-20Change tape-machine-mode to auto-input-does-talkback (libardour part)Ben Loftis
In prior versions: if Auto Input was enabled, the default behavior was to monitor the Input of all tracks when stopped; even if they aren't armed. Tape Machine Mode changed the behavior of Auto Input so that it doesn't always monitor the track inputs when transport is stopped. After some discussion on IRC, we determined that Tape mode is likely more practical for a DAW user, and therefore a better default. Rather than default an ambiguously-named preference "on", we decided to invert the behavior, rename it sensibly(?), and default it OFF.
2020-01-20fix API and use of Session::force_locate()Paul Davis
Because of the addition of LocateTransportDisposition, this call was unconditionally forcing a roll during startup
2020-01-18fix mistaken "do not roll" conclusion in TransportFSM::compute_should_roll()Paul Davis
2020-01-18remove fragile union designPaul Davis
Absurd to be memory-conscious about a couple of member variables in an object that represents user input
2020-01-18fix broken-ness caused by bad initialization of a StopTransport event in ↵Paul Davis
TransportFSM
2020-01-18rename DoTheRightThing to RollIfAppropriatePaul Davis
2020-01-18Session::request_locate() takes a tri-valued second argument for ↵Paul Davis
"roll-after-locate" This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it can be cnentralized and is less ambiguous
2020-01-18Fix MIDI capture alignmentRobin Gareus
This fixes Audio/MIDI alignment when recording normally. Loop and/or Punch-in recording is still not aligned properly (both audio and MIDI). _accumulated_capture_offset is initialized once, accumulated offsets (rec_nframes) are kept, even when ::check_record_status() is called multiple times.
2020-01-18Zero capture-offset regardless of data-typeRobin Gareus
_accumulated_capture_offset is only used for MIDI, however this is helpful when debugging. Previously audio kept accumulating the offset indefinitely.