Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-02-24 | Zero x-run count after session-load and engine restart | Robin Gareus | |
2020-02-21 | avoid double-locate call when locating-while-stopped | Paul Davis | |
Session::locate() used TransportFSM::stopped() to determine if realtime stop was required. But this would return false, since the motion state at that time is WaitingForLocate. So invert the test and use !TransportFSM::rolling | |||
2020-02-20 | change transport API, session API, transportFSM API to move reverse ↵ | Paul Davis | |
management and motion state (partially) into TFSM | |||
2020-02-19 | remove "destination_sample" from API for Session::set_transport_speed() | Paul Davis | |
This was a leftover from changes made for Tracks Live, related to the concept of an auto-return preference. We don't use this anywhere in Ardour or Mixbus, and the concept should eventually be removed entirely. | |||
2020-01-28 | fix previous commit, and another instance of the same (incorrect ↵ | Paul Davis | |
constructor) issue | |||
2020-01-28 | fix assert-crash caused by not constructing a StopTransport event correctly | Paul Davis | |
2020-01-27 | Fix sending MMC Start/Stop messages | Robin 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-26 | Fix Loop-length (no pre-roll on loop-iterations) | Robin Gareus | |
2020-01-25 | remove debug output | Paul Davis | |
2020-01-23 | add more debug output | Paul Davis | |
2020-01-23 | use Session::locate_initiated(), appropriately | Paul Davis | |
2020-01-23 | add Session::locate_initiated() | Paul Davis | |
This differs from ::locate_pending() by covering either phase of a locate - declick or refill | |||
2020-01-23 | after the butler has finished work, by definition there is nothing left to do | Paul Davis | |
2020-01-23 | variable not used without debug mode | Paul Davis | |
2020-01-21 | do not clear any PostTransportWork flags in butler thread | Paul Davis | |
doing this was causing the TFSM to get stuck in "WaitingForButler" | |||
2020-01-20 | fix 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-18 | rename DoTheRightThing to RollIfAppropriate | Paul Davis | |
2020-01-18 | Session::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 | |||
2019-12-29 | add EMIT_SIGNAL comment | Paul Davis | |
2019-12-29 | add Session::transport_stopped_or_stopping() | Paul Davis | |
Session::TransportStateChanged notifies about transport stop before the stop is complete (i.e. at the start of the declick). Various other objects (notably control surfaces) connect to this signal and use it to modify their displayed state. We need a method that can tell them we are stopped (or stopping) even though we are not "fully" stopped yet. This is that method | |||
2019-12-27 | fix JACK transport sync | Paul Davis | |
key change: to sync with JACK always locate jack-position PLUS buffer-sized-rounded-worst_latency_preroll() ahead | |||
2019-12-27 | add new Session method to return the worst_latency_preroll() value rounded ↵ | Paul Davis | |
up to the nearest buffer size | |||
2019-12-11 | use process lock to lock out process() during playback buffer resizing | Paul Davis | |
2019-12-10 | revert to single buffer for disk playback, and 5.x-style overwrite | Paul Davis | |
Also address issues with MIDI and also atomicity of _pending_overwrite | |||
2019-12-07 | fix behavior when pressing l to loop (not in loop-is-mode) and the required ↵ | Paul Davis | |
stop-during locate cancels looping | |||
2019-12-06 | Clear TransportAbort flag after stop | Robin Gareus | |
This fixes an issue with unresponsive transport controls after an abort (e.g. post-export). | |||
2019-12-05 | changes to use overwrite-buffers when loop is disabled or loop range changed | Paul Davis | |
2019-11-23 | fix incorrect removal of autoloop event when loop bounds are changed while ↵ | Paul Davis | |
looping | |||
2019-11-22 | redesign of declicking and fades around loop boundaries | Paul Davis | |
2019-11-18 | Latency compensation is independent of transport-logic | Robin Gareus | |
This also fixes a concurrency issue when when non-realtime-stop and graph-reorder or other rt-latency changes coincide. | |||
2019-11-15 | NO-OP: move brace | Paul Davis | |
2019-11-15 | when synced to JACK transport, transport requests go there first. | Paul Davis | |
2019-11-15 | fix behavior of Session::maybe_stop() when synced to JACK Transport | Paul Davis | |
2019-11-15 | make comment more accurate | Paul Davis | |
2019-11-15 | consolidate Session::locate() and Session::do_locate() | Paul Davis | |
The first no longer needs to handle requests by passing them to JACK transport | |||
2019-11-15 | eliminate hacky design for being able to deliver the correct time as JACK ↵ | Paul Davis | |
timebase master | |||
2019-11-08 | Fix loop/pre-roll | Robin 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-06 | fix 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-04 | fix a bad transition in the transportFSM. | Paul Davis | |
2019-11-02 | don't locate when enabling loop if loop-is-mode | Paul Davis | |
2019-11-02 | remove unused parameter from Session::set_play_loop() API | Paul Davis | |
2019-11-01 | don't send TFSM event LocateDone after a locate-for-loop-end | Paul Davis | |
See comment for explanation | |||
2019-11-01 | remove seamless looping as an option (it's now the only kind of looping we ↵ | Paul Davis | |
support) | |||
2019-10-29 | missing part of working looping | Paul Davis | |
2019-10-29 | get looping to work again | Paul Davis | |
2019-10-28 | provide a mechanism to decide if Session::update_latency_compensation() is ↵ | Paul Davis | |
being called as part of a callback from the backend. If it is, do not call AudioEngine::update_latencies() to avoid JACK1-style deadlock | |||
2019-10-27 | make transport work after rewind/ffwd are used | Paul Davis | |
2019-10-26 | Fix latency compensation race-condition | Robin Gareus | |
Remove need for explicit `initialize_latencies` call that used to be called from GUI-thread post_engine_init(), as well as Session::engine_running(). Further reduce calls, `graph_reordered` implies a latency-update and fix ordering issue. update_latency_compensation() must be called *after* resort_routes(). | |||
2019-09-25 | goodbye Profile->...trx | Paul Davis | |
2019-09-25 | goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build | Paul Davis | |