summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
AgeCommit message (Collapse)Author
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
2019-12-29recomment a DEBUG_TRACE statement that generates too much output with -D ↵Paul Davis
transport
2019-12-27fix JACK transport syncPaul Davis
key change: to sync with JACK always locate jack-position PLUS buffer-sized-rounded-worst_latency_preroll() ahead
2019-12-27remove unused memberPaul Davis
Note: there is no global state for "the" transport master, since we have several at all times now
2019-12-27variable renamePaul Davis
2019-12-27improve parseability of a commentPaul Davis
2019-12-10revert to single buffer for disk playback, and 5.x-style overwritePaul Davis
Also address issues with MIDI and also atomicity of _pending_overwrite
2019-12-05remove mistakenly left in session event enumPaul Davis
2019-12-05changes to use overwrite-buffers when loop is disabled or loop range changedPaul Davis
2019-11-23tweak comment textPaul Davis
2019-11-232nd part of fix for autoloop event removal when loop bounds are changed ↵Paul Davis
while looping
2019-11-15improve behavior when synced to JACK transportPaul Davis
Heuristic and actions when a locate is needed are different for JACK transport than TC
2019-11-14Fix cycle-end position when not rollingRobin Gareus
When stopped start_sample == end_sample. This fixes accidental automation lookup, as well as plugin time/position information.
2019-11-03Fix timecode generation after split-cyclesRobin Gareus
2019-11-02use new API to make locate happenPaul Davis
2019-11-02remove unused parameter from Session::set_play_loop() APIPaul Davis
2019-11-02refactor SessionEvent and DiskIO so that we pass around ↵Paul Davis
boost::shared_ptr<Track> rather than Route (this the raw pointers used inside SessionEvent)
2019-11-01remove seamless looping as an option (it's now the only kind of looping we ↵Paul Davis
support)
2019-11-01cut down on DEBUG::Transport noisePaul Davis
2019-10-28provide 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-09-22improve debug outputPaul Davis
2019-09-20rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of ↵Paul Davis
Redundancy Department)
2019-09-19replace boost::msm - based FSM for transport with one written in "plain C++"Paul Davis
Still need to use boost::intrusive to managed qeued/deferred containers
2019-09-17add finite state machine to control/manage transport statePaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-18NO-OP: Use API to set/test state-of-the-stateRobin Gareus
2019-03-14Unused skeleton of the transport state-machineRobin Gareus
Simple test/example code. Eventually this is to replace Session::process_event() and Session::realtime_*() methods are to become transition actions.
2019-03-03debug trace output tweaksPaul Davis
2019-03-03remove debug outputPaul Davis
2019-03-03remove conditional surrounding wait-for-master-to-catch-us logicPaul Davis
2019-02-26enhanced debug trace outputPaul Davis
2019-02-26reorder call to ::track_transport_master() so that delta is computed correctlyPaul Davis
2019-02-06Fix rolling backwardsRobin Gareus
When speed is -1, start_sample >= end_sample and _transport_sample needs to be decremented. Session::process_with_events() did this correctly, this change makes Session::process_without_events() behave identically.
2019-01-25new approach to handling Transport Masters when engine is restartedPaul Davis
Trust that ::reset() works for all transport masters, and call it when engine is stopped. This way the transport masters are ready to be called again as soon as the engine restarts.
2018-09-22use abs() instead of fabs() on integersPaul Davis
2018-09-22Revert "MSVC complains because we're using 'fabs()' to compare 2 x integers"Paul Davis
You can't remove an abs() conversion and keep the same semantics. This reverts commit d89b8cc0ad01eaf59dc605939628003dfa89899d.
2018-09-22MSVC complains because we're using 'fabs()' to compare 2 x integersJohn Emmas
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-07-09Remove unused CubicInterpolation from sessionRobin Gareus
2018-07-09Remove unused AutoLoopDeclick, PendingLoopDeclickRobin Gareus
The flags were set, but not used. They also won't be needed anymore.
2018-07-09Remove global declick APIRobin Gareus
De-click will be per disk-reader, latency compensated and buffer-size independent. Cue-monitoring should not be affected by de-click.
2017-10-31Fix samples-moved (and invalid use of not initialized CubicInterpolation)Robin Gareus
2017-10-12Fix pre-roll cycle-splitRobin Gareus
previously this worked as long as the cycle was only needed to be split once.
2017-10-02use new CubicInterpolation APIPaul Davis
2017-09-30Fix thinko in 8139becb -- route split cycleRobin Gareus
Individual Routes cannot split the process-cycle in no_roll(); roll() by themselves. Each of the calls will flush output buffers (and offset port-buffers). If a route feeds another route the inputs of the other route will only see partial data.
2017-09-29Remove unused punch+preroll APIRobin Gareus
This API was not used, also superseded by record w/preroll.
2017-09-29Ongoing work on latency compensationRobin Gareus
The general goal is to align transport-sample to be the audible frame and use that as "anchor" for all processing. transport_sample cannot become negative (00:00:00:00 is the first audible frame). Internally transport pre-rolls (read-ahead) before the transport starts to move. This allows inputs and disk to prefill the pipeline. When starting to roll, the session counts down a global "remaning preroll" counter, which is the worst-latency from in-to-out. Each route in turn will start processing at its own output-latency. Route::process_output_buffers() - which does the actual processing incl disk i/o - begins by offsetting the "current sample" by the route's process-latency and decrements the offset for each latent processor. At the end of the function the output will be aligned and match transport-sample - downstream-playback-latency (if any). PS. This commit is a first step only: transport looping & vari-speed have not yet been implemented/updated.
2017-09-18remove debug outputPaul Davis
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18sort of no-op ... remove debug output ... just basically put it in git so ↵Paul Davis
that i can fetch it on another machine