summaryrefslogtreecommitdiff
path: root/libs/ardour/delayline.cc
AgeCommit message (Collapse)Author
2017-11-23Fix typo in 318e7efbRobin Gareus
2017-11-22Release (debug) lock before emitting signalRobin Gareus
2017-11-04Change Delayline to use power-of-two size and bitmaskingRobin Gareus
2017-11-04[Re]-Implement Delayline flush.Robin Gareus
Also don't automatically flush the delayline at transport or monitor- changes anymore. With full-graph latency compensation, delaylines are before the disk-reader, aligning input (disk uses read-ahead to align). Flushing the delayline should only happen when input-monitoring is disengaged. It's best degated to the Route or object using the Delayline (potentially latency-aligned delayed flush).
2017-11-04Optimize Delaylines: block-process (not one sample at a time)Robin Gareus
This also tweaks fade behavior when the latency changes to prefer a x-fade when possible. This new variant does not support concurrent re-allocation and execution. Hence the auto-connect thread needs to take a lock before updating latencies (actually there's no need for an explicit update with built-in backends, so this case remains to be updated further)
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-09-29Delayline: report if set_delay() actually changed the delayRobin Gareus
2017-09-29Delayline naming -- for debug purposesRobin Gareus
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-06-29Fix multi-channel delaylines #7409 part 2/2Robin Gareus
2017-04-19Use XMLNode::set_property in ARDOUR::DelayLine classTim Mayberry
2016-12-03Remove Evoral::MIDIEventDavid Robillard
It is slightly questionable whether type specific methods like velocity() belong on Event at all, these may be better off as free functions. However the code currently uses them as methods in many places, and it seems like a step in the right direction, since, for example, we might some day have events that have a velocity but aren't stored as MIDI messages (e.g. if Ardour uses an internal musical model that is more expressive). In any case, the former inheritance and plethora of sloppy casts is definitely not the right thing.
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-04-24delayline: use boost::shared_arrayRobin Gareus
2014-06-15optimize midi delayline.Robin Gareus
2014-06-12delayline: properly hand-over the shared-pointer.Robin Gareus
2014-06-11add delayline implementaion (in prep for latency compensation)Robin Gareus