From 08fdb982629e81b5f89740f7db6eaf13801c8edc Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 8 Nov 2019 17:08:47 +0100 Subject: [PATCH] Fix loop/pre-roll Pre-roll to fill buffers only needs to be done once when starting to play or when locating. Seamless looping just continues. Every processor takes the loop position into account locally. --- libs/ardour/session_transport.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 5baa39a0f8..6b0d81172b 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -248,7 +248,9 @@ Session::do_locate (samplepos_t target_sample, bool with_roll, bool with_flush, // thread(s?) can restart. g_atomic_int_inc (&_seek_counter); _last_roll_or_reversal_location = target_sample; - _remaining_latency_preroll = worst_latency_preroll (); + if (!for_loop_end) { + _remaining_latency_preroll = worst_latency_preroll (); + } timecode_time(_transport_sample, transmitting_timecode_time); // XXX here? /* do "stopped" stuff if: