summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/track.h
AgeCommit message (Collapse)Author
2019-12-11Fix loading plugin state from sessionsRobin Gareus
While loading a session XML state, set_state must use `Stateful::loading_state_version`. When later copying processor state, `Stateful::current_state_version` is correct.
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-11-22redesign of declicking and fades around loop boundariesPaul Davis
2019-11-02add a MidiStateTracker to DiskReader and use to handle transport stop note ↵Paul Davis
resolving
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-02-21Remove unused API, unused variableRobin Gareus
2019-02-08NO-OP: clarify internal API, prepare for overwrite queueRobin Gareus
2019-02-06Prepare Disk-reader for bi-directional micro-locatesRobin Gareus
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-07-09Prepare API for per disk-reader de-clickRobin Gareus
2018-07-09move rt-stop to routeRobin Gareus
currently this is only used to resolve midi events for plugins (this is conceptually not correct, note offs should be resolved by the disk-reader only), but it calls into all processors now (incl disk-reader if present), which is handy (e.g. flush delaylins)
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-31Move Loop Location to ProcessorsRobin Gareus
The processors will becomes responsible to know about loop-positions and map latency-compensated start_sample, end_sample into the loop-range as needed.
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-10-02tracks no longer need to be notified about speed changesPaul Davis
2017-09-30First part of consolidating ::roll(), ::no_roll()Robin Gareus
This moves common code (get and fill buffers) into ::passthru() and renames ::passthru() to ::run_route(). passthru_silence() is no longer used (it was only needed A5 style Track::no_roll_unlocked for no-roll + disk-monitoring)
2017-09-30Towards fixing no_roll()Robin Gareus
Currently ::roll() may actually be a ::no_roll() under some circumstances. This can also happen during count-in: transport_stopped () == transport_rolling() and during latency-preroll: Global session-transport speed != 0, some tracks already roll, read data from disk and feed latent plugins. but other non-latent tracks or busses don't roll and still have to behave like the switch from no_roll() to roll() has not yet happened. This changes the game WRT to monitoring as well, previously, Route:roll() called Route::no_roll_unlocked () for conditions outlined above. Now Track::no_roll_unlocked is called and in some cases wrongly clears the buffers before the signal hits the disk-writer. (more work is needed related to 61f8e53b) On the upside this also fixes an issue with MidiTrack::no_roll not keeping a lock while pushing data into the step-edit-ringbuffer. This is also a step towards consolidating all entry points: ::roll(), ::no_roll(), ::silent_roll() in the Route class.
2017-09-29Remove unused mechanismRobin Gareus
2017-09-29Remove code related to capture-offset.Robin Gareus
2017-09-19attempt to fix roll delay logic by moving it into DiskReader (the only place ↵Paul Davis
it matters)
2017-09-18consolidate roll methods into Route::roll()Paul Davis
We want Track to shrink, and logic consolidation is always good. Route already knew about disk_reader and disk_writer, now it knows about _monitoring_control too
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-18remove all code related to "silent roll" concept. some debug output addedPaul Davis
2017-09-18move disk_{writer,reader} into Route to allow for simple, sensible ↵Paul Davis
implementation of DiskIOPoint
2017-09-18add Track::use_default_new_playlist()Paul Davis
2017-09-18remove Track::hidden(); replace with Stripable::is_private_route()Paul Davis
2017-09-18mechanism to allow Track (or other Route-derived type) to add its own ↵Paul Davis
processors at the right time
2017-09-18tweaks to disk io point mechanismsPaul Davis
2017-09-18initial (incomplete) framework for DiskIOPoint manipulationPaul Davis
2017-09-18update disk writer input latency at transport stopPaul Davis
2017-09-18the return of MIDI recording, plus refactor to move post-capture playlist ↵Paul Davis
manipulations into Track
2017-09-18alignment choice now owned by Track, as a proxy for DiskWriterPaul Davis
DiskWriter is a processor and as such has no Input object. This means that the "Automatic" setting must be handled by the Track, which does have an Input object to check for port connections to physical or non-physical sources
2017-09-18remove all remaining vestiges of per-track varispeed from libardourPaul Davis
2017-09-18get diskreader working, and remove per-track varispeed API and mechanismPaul Davis
2017-09-18nothing to do anymore at the Track level when input config changesPaul Davis
2017-09-18remove Diskstream from Track and derivatives; get ardour to actually startupPaul Davis
2017-09-18mega-commit to save state of first "it compilesand links" state for ↵Paul Davis
separated disk i/o changes. THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-08-18Remove old destructive API (non layered is a dynamic mode) 2/2Robin Gareus
2017-04-19Use macro from pbd/enum_convert.h to define to_string/_to for Track enumTim Mayberry
2016-12-17Hide/remove per-track record-mode in favor of global setting.Robin Gareus
2016-05-31use new record safe control in libardourPaul Davis
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
and used. The controls now own their own state, rather than proxy for state in their owners. Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-04-13yet more documentation..Robin Gareus
2016-04-12some strategic documentationRobin Gareus
Prevent class descriptions inheriting the doc from PBD:Stateful by adding some specific doc.
2016-04-12NO-OP; document some more parameters.Robin Gareus
Since headers only provide the declaration, function parameters need to be documented.
2016-02-01clean up mess in Route/Track controllables caused by not understanding the ↵Paul Davis
significance of ParameterDescriptor
2016-01-31make Track::set_monitoring() use a GroupControlDisposition; expose an ↵Paul Davis
AutomationControl for track monitoring choice
2016-01-22first compiling, mostly working version of group controls changesPaul Davis
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls