summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
AgeCommit message (Collapse)Author
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
2017-09-18remove tests for locate_pending() before deciding whether to increment ↵Paul Davis
transport position
2017-09-18more verbose debug output for slave debuggingPaul Davis
2017-09-18verbose debug output for slave debuggingPaul Davis
2017-09-18additional DEBUG_TRACE output for slave/diskreaderPaul Davis
2017-09-18reset DiskReader "no disk output" flag in a couple of exceptional casesPaul Davis
2017-09-18remove debug outputPaul Davis
2017-09-18when calculating average slave/master delta, use absolute value.Paul Davis
We're interested in average distance between slave/master, the direction is irrelevant and using sign as direction causes the computed average to be absurd
2017-09-18remove all code related to "silent roll" concept. some debug output addedPaul Davis
2017-09-18remove Track::hidden(); replace with Stripable::is_private_route()Paul Davis
2017-09-18framework for silent-roll-while-slave-syncingPaul Davis
2017-09-18when DiskReader checks to see if a locate is in progress, it must be atomic ↵Paul Davis
with respect to all DiskReaders
2017-09-18do not change Session::_transport_frame is a locate is pendingPaul Davis
2017-09-18since Session::fail_roll() just calls ::no_roll() make that more explicit ↵Paul Davis
when there's actually no failure
2017-09-18remove InputConfigurationChange from session events, since it is a no-op in ↵Paul Davis
this development branch
2017-09-18remove all remaining vestiges of per-track varispeed from libardourPaul Davis
2017-09-18addd more DEBUG_TRACE for DiskIO; set DiskIOProcess::_need_butler more ↵Paul Davis
appropriately; other minor adjustments
2017-07-16Consistent Automation evaluation:Robin Gareus
Rule #89: The *owner* of each automation-control is responsible to evaluate automation of automated automation-controls (and emit Changed() signals to notify the GUI and slaved controls). This can happen during run(), when the Processor evaluates automation (eg. PluginInsert does that), but needs to regardless, every cycle. Emit Changed signal for GainControl This follow the same concept as PluginInsert: The Changed signal is called on demand when evaluating automation.
2017-07-04Fix session-event queue (multiple writer, single reader)Robin Gareus
The reading is done in rt-process thread, but multiple UIs (surfaces, GUI) can produce events to be queued.
2017-04-30Fix vari-speed and non-locked slave modesRobin Gareus
A transport-speed-change is no reason to skip processing. Prior to this change cannot_process() silently skipped in the process cycle of the speed-change (which may have been every process-cycle), without moving the transport or doing any processing.
2017-01-19Rework preroll-rec API:Robin Gareus
* rename: indicate that recording happens after preroll, punch-in * move API into libardour: rec+roll (no separate setup, seek, roll APIs)
2017-01-18Implement record with prerollRobin Gareus
2017-01-17Implement Count-In (before recording), fixed BPM, up to 2 barsRobin Gareus
2017-01-02allow Lua session scripts to inject [immediate] RT-eventsRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-02-23Implement Lua session-scriptsRobin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-09-15only apply transport declicking if requested to do so (default is to do so)Paul Davis
2015-04-30session: add signal to indicate batch updatesRobin Gareus
…to tell the UI to not redraw.
2015-04-29delegate signal emission to dedicated thread.Robin Gareus
This works around abysmal performance (~.15ms) of boost::function and boost::bind (in PBD::Signal). The overall load is probably higher but the realtime thread remains unaffected.
2015-04-27click-less processor re-ordering.Robin Gareus
2015-04-26clickless meter-point changesRobin Gareus
2015-04-24send LTC during process_with_events()Robin Gareus
fixes #6277 This indicates a deeper problem though. Even removing a punch-range never clears out the events. and ession::process_with_events() does not use process_without_events() until re-start.
2015-01-29stop transport when process_routes fails, even when using the parallel graph ↵Paul Davis
execution model
2014-12-10remove ugly and unnecessary debugging outputPaul Davis
2014-12-09more DEBUG::Butler output, formatting corrections, and a warning on cerr if ↵Paul Davis
capture/playback buffers are too full/empty
2014-11-18Fix potential use of uninitialized value.David Robillard