From 64a091ea4b082ea4589cf43548ee1b14917dcdf4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 24 Jun 2017 01:22:17 +0200 Subject: [PATCH] Fix metronome + capture alignment for Mixbus --- libs/ardour/diskstream.cc | 9 +++++++++ libs/ardour/session_click.cc | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/libs/ardour/diskstream.cc b/libs/ardour/diskstream.cc index f5f62996d3..24339ec8cc 100644 --- a/libs/ardour/diskstream.cc +++ b/libs/ardour/diskstream.cc @@ -266,6 +266,15 @@ Diskstream::set_capture_offset () switch (_alignment_style) { case ExistingMaterial: _capture_offset = _io->latency(); +#ifdef MIXBUS + /* add additional latency, delayline inside the channelstrip + master-bus + * in MB the master-bus has no input-ports, so its latency does not propagate + */ + if (_session.master_out()) { + _capture_offset += _session.master_out()->signal_latency(); + } +#endif + break; case CaptureTime: diff --git a/libs/ardour/session_click.cc b/libs/ardour/session_click.cc index fc1f9c5e1d..fae442f6c5 100644 --- a/libs/ardour/session_click.cc +++ b/libs/ardour/session_click.cc @@ -80,6 +80,11 @@ Session::click (framepos_t start, framecnt_t nframes) } start -= _worst_track_latency; +#ifdef MIXBUS + if (_master_out) { + start -= _master_out->signal_latency (); // delay signal by mixbus' internal latency + } +#endif /* start could be negative at this point */ const framepos_t end = start + nframes; /* correct start, potentially */