From ffe7fcd3b0a49158ef1160e38162f7e413c8c1f4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 29 Jan 2020 05:35:36 +0100 Subject: [PATCH] Allow to dis/engage rec-arm while looping --- libs/ardour/disk_writer.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libs/ardour/disk_writer.cc b/libs/ardour/disk_writer.cc index cddfe7b09b..aafdcc5dcd 100644 --- a/libs/ardour/disk_writer.cc +++ b/libs/ardour/disk_writer.cc @@ -463,6 +463,17 @@ DiskWriter::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp */ _capture_captured = start_sample - loop_start; _capture_start_sample = loop_start; + if (_capture_captured > 0) { + /* when enabling record while already looping, + * zero fill region back to loop-start. + */ + for (chan = c->begin(), n = 0; chan != c->end(); ++chan, ++n) { + ChannelInfo* chaninfo (*chan); + for (samplecnt_t s = 0; s < _capture_captured; ++s) { + chaninfo->wbuf->write_one (0); // TODO: optimize + } + } + } } if (_midi_write_source) {