summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session.h
AgeCommit message (Collapse)Author
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-08-02Add method to conveniently retrieve a sorted routelistRobin Gareus
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.
2018-06-21remove Session::controllable_by_descriptor() and move code into GenericMIDI ↵Paul Davis
code (the only user). This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string parsing every time, but this is not likely to be a notable cost.
2018-02-11SoloSelection: libardour part.Ben Loftis
2018-02-03Make sure that 'libardour-config,h' only gets #included when building with ↵John Emmas
waf (as it only gets generated when building with waf) When building with MSVC this was getting #included in a few places which had the effect of making my session files get generated in a very old format.
2017-12-24remove unused lineLen Ovens
2017-10-30Parallel execution of cycle-start/endRobin Gareus
2017-10-29Move vari-speed into backend (resample ports)Robin Gareus
Previously Ardour used a /local/ per track vari-speed mechanism. Now that the disk-reader is a latency-compensated processor, the speed of each disk-reader would need to be maintained locally, offset by each disk-reader's output latency. Furthermore each disk-reader may produce a different number of samples, depending on its global alignment. This commit introduces port-data resampling directly at the engine-level: Up/down-sample all input ports at the beginning, and down/up-sample output port-data using the inverse ratio at the end of the session's process cycle. The session itself is unaware of the speed-change, and only needs to handle transport speeds {-1, 0, +1}. This also allows for aligned cue-monitoring and vari-speed recording, and also pitch-shifts synthesized MIDI along.
2017-10-04Fix various edge-cases with session-archivesRobin Gareus
* prevent duplicate names when pulling-in external sources * drop "origin" after including external sources * don't include unused playlists (they may reference sources that are not included) * likewise exclude unused regions
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-03API change: expose session-archive compression-levelRobin Gareus
2017-09-29Remove unused punch+preroll APIRobin Gareus
This API was not used, also superseded by record w/preroll.
2017-09-29Aux-Send Latency compensation, part 2 & code-consolidationRobin Gareus
2017-09-29Properly aligned export (Stem + Session)Robin Gareus
Delay ports being exported by their playback latency.
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-29NO-OP: WhitespaceRobin Gareus
2017-09-29No more disk-reader roll-delayRobin Gareus
It was not working in sdio/6.0-pre anyway and with upcoming changes to latency compensation the concept of per disk[stream/reader] will go away.
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-09-19Various updates and fixes for Latency CompensationRobin Gareus
* centralize signal_latency_at_***_position to processors * update initial-delay/roll-delay when processor order changes * consolidate signal-latency calculation: use the same method for processor-changes and session's post_playback_latency. * include relative output-delay in roll-delay * fix capture processor position & optimize stem-export latency (roll-delay fixes pending Route:roll() update)
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-18fix for loading older sessions, where the rest for "is-track" was ↵Paul Davis
"has-diskstream", rather than "has-playlist"
2017-09-18reinstate "restart seek" behaviour but use a new Session::_seek_counter ↵Paul Davis
member variable for this
2017-09-18remove all code related to "silent roll" concept. some debug output addedPaul 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-18locating no longer interrupts process()Paul Davis
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-09-18remove Diskstream from Track and derivatives; get ardour to actually startupPaul Davis
2017-09-18remove Session::track_by_diskstream_id()Paul Davis
2017-08-22Remove cruftRobin Gareus
2017-08-20Let the user add a template description on saving session templatesJohannes Mueller
2017-08-18Expose Lua bindings to create/delete VCAsRobin Gareus
2017-08-17Check major session file format version.Robin Gareus
Don't allow to load sessions created with a newer version of Ardour with an old one (no forward compatibility).
2017-08-16The Auditioner is not in the Session's RouteListRobin Gareus
Remove various checks, add assert() for now (perhaps some old sessions?) This fixes an off-by one issue when adding tracks (presentation info order in add_routes_inner)
2017-08-16Separate "add master bus" (and add Lua bindings)Robin Gareus
This is in preparation for "advanced session setup" allow a SessionSetup Lua script to create the master-bus.
2017-08-01Fix LTC encoder removalRobin Gareus
Fixed a crash if an x-run or graph-reorder happens after the LTC encoder has been destroyed (possible at session-close or after disabling the encoder). This also fixes duplicate callbacks in case the encoder was re-enabled times in an active session.
2017-06-25Create a deep-copy of MIDI sources when saving snapshotsRobin Gareus
2017-06-25Extend API to allow calling new_midi_source_path() with source_lock heldRobin Gareus
This is in preparation for cloning MIDI-sources during snapshot save.
2017-06-17Add Lua bindings to query all stripablesRobin Gareus
2017-06-17Fix stripable order for new strips & master-orderRobin Gareus
2017-06-17Add method to ensure Stripable sort constrains (for UI use)Robin Gareus
2017-06-17Use Stripable::Sorter in libsRobin Gareus
2017-06-03Add a scratch buffer for automation.Robin Gareus
Useful as temporary buffer: This allows a controllable to get a master's automation-curve and combine it with its own (gain, trim, send) automation buffer.
2017-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-05-05Move special-cased FP8 mute-state into libardourRobin Gareus
2017-05-04Lua bindings for "end-is-free" (automatic session-end location marker)Robin Gareus