summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
AgeCommit message (Collapse)Author
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-07-30Fix "session dirty" flicker during session-setup.Robin Gareus
Loading a session includes setting the sync-source, this is queued to happen during process(), which may or may not be while Session::Loading is still set. This change only catches the common case: internal transport, no slave.
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-02-11SoloSelection: libardour part.Ben Loftis
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-29Quick hack to test engine vari-speed (1/2)Robin Gareus
2017-10-02tracks no longer need to be notified about speed changesPaul Davis
2017-09-30Align punch in/out recording with latency-compensationRobin Gareus
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-29Remove code related to capture-offset.Robin 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-09-18remove locate debugging outputPaul Davis
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-18reinstate "restart seek" behaviour but use a new Session::_seek_counter ↵Paul Davis
member variable for this
2017-09-18no more locate-restart based on mismatch transport_frame and locate targetPaul Davis
2017-09-18reset DiskReader "no disk output" flag in a couple of exceptional casesPaul Davis
2017-09-18remove Track::hidden(); replace with Stripable::is_private_route()Paul Davis
2017-09-18debug instrumentation for locate timePaul Davis
2017-09-18restart non-RT locate if a new request has been processed by RT context ↵Paul Davis
since we started
2017-09-18adjust debug trace output messagePaul 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-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-07-22NO-OP: consistent [internal] API name for AutomatablesRobin Gareus
2017-07-22NO-OP: Consistent API nameRobin Gareus
2017-07-21More non-rt calls to VCA - fixes VCA automation writingRobin Gareus
This calls for a unified API to invoke Automatable methods ::transport_located() and ::transport_stopped() on Stripables, rather than indirectly calling it via Route::non_realtime_locate(), Route::nonrealtime_handle_transport_stopped()
2017-07-21Fix VCA Automation: end write passRobin Gareus
2017-06-22Remove LocaleGuards from ARDOUR::Session transport related methodsTim Mayberry
ARDOUR::AutomationList is no longer using LocaleGuards as float <=> string conversion is using PBD::to_string/string_to so the reason for adding these guards as per comment no longer applies.
2017-06-10Emit Session::Located only if _engine.transport_frame() is up to dateJohannes Mueller
If _engine.transport_frame() is not up to date, we emit Located in Session::backend_sync_callback() because that's when audible_frame() is up to date. We don't want to emit it twice, because then, the playhead jumps back and forth. * mouse click in the ruler -> jump to requested location * mouse release -> jump to old location (because audible_frame has to catch up) * backend_sync_callback() called -> jump to new location
2017-03-30Fix count-in for non 4/4 time signaturesRobin Gareus
2017-02-13Prepare record with count-in actionRobin Gareus
2017-01-23at transport stop, clear all existing automation watches (touch)Paul Davis
2017-01-19Add alternative preroll record mode:Robin Gareus
* Start recording at preroll, trim region to skip preroll at rec-stop * Keep old punch-in rec-at-preroll API for tape-tracks (later)
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-10Fix MTC slave implicit return on transport-stopRobin Gareus
MTC returns not-locked (no flywheel) when the signal is lost, in which case Session::follow_slave() jumps to no_roll and ignores the slave-position. The MTC slave does explicitly request a transport-locate and transport-stop. Yet, Session::realtime_stop() honors _requested_return_frame for whatever reason
2016-11-25RAII to postpone processor changes/graph recalculationRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
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-05-25fix timecode update after locate.Robin Gareus
Various session rt-events set "_send_timecode_update" to true, but at the same time queue post-transport-work. The timecode-update is generated, but due to pending transport work session->silent() is true and the timecode was never sent.
2016-05-07a few strategic LocaleGuards..Robin Gareus
..to prevent switching forth and back during individual ::state(), ::set_state() when loading/saving the session or locating.
2015-12-15explicitly disallow looping with external-syncRobin Gareus
amend 939808a7
2015-12-13Fix ff->stop->play not at speed 1.0 on Mackie Control and some key bindings.Len Ovens
2015-10-18disable auto-return with external sync #6577Robin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.