summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-06-24 01:22:17 +0200
committerRobin Gareus <robin@gareus.org>2017-06-24 01:22:17 +0200
commit64a091ea4b082ea4589cf43548ee1b14917dcdf4 (patch)
tree8d732a8edc632eabf33b9ae5936b81b8979880e9 /libs/ardour
parent92fb6325e325bc9be8970496e7c23c95d94dd39b (diff)
Fix metronome + capture alignment for Mixbus
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/diskstream.cc9
-rw-r--r--libs/ardour/session_click.cc5
2 files changed, 14 insertions, 0 deletions
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 */