diff options
author | Robin Gareus <robin@gareus.org> | 2020-04-23 05:19:01 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-04-23 05:23:31 +0200 |
commit | 54bc1018d51eedab16da6b2148a145b445af0b03 (patch) | |
tree | 221efb3d851cd4ee25d44048be875576508fe070 /libs/ardour/session_transport.cc | |
parent | 6fbcf837793ec9a8347fd2d12823b9e56587ffc0 (diff) |
Fix MIDI auditioning
The Auditioner is not part of the session route-list and the
auditioner route's I/O latency is never updated.
Session::process_audition() does not handle pre-roll either,
so it need to be zeroed, otherwise Route::roll skips samples.
This has lead to initial samples being skipped, IFF the
auditioner's output-port had non-zero latency.
Since private port-latencies are usually only set for routes
in the route-list, and _remaining_latency_preroll is reset
at transport-stop, this *usually* worked...
Last but not least, MIDI notes need to be resolved when seeking.
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r-- | libs/ardour/session_transport.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index b2364054fa..8bba6757d2 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -695,6 +695,7 @@ Session::butler_completed_transport_work () if (ptw & PostTransportAudition) { if (auditioner && auditioner->auditioning()) { + _remaining_latency_preroll = 0; process_function = &Session::process_audition; } else { process_function = &Session::process_with_events; |