diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index 436506c857..f5733cd6a4 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -56,6 +56,7 @@ #include "ardour/send.h" #include "ardour/session.h" #include "ardour/source_factory.h" +#include "ardour/track.h" #include "ardour/utils.h" #include "ardour/session_playlists.h" #include "ardour/route.h" @@ -566,7 +567,7 @@ AudioDiskstream::process (framepos_t transport_frame, pframes_t nframes, bool ca collect_playback = true; } - if (collect_playback) { + if ((_track->monitoring() & MonitorDisk) || collect_playback) { /* we're doing playback */ diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index b22b28d277..64e83ddb0d 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -403,16 +403,15 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram _input->process_input (_meter, start_frame, end_frame, nframes); } - if ((_monitoring & MonitorInput) || - (!(_monitoring & MonitorDisk) && - (diskstream->record_enabled() && !can_record && !_session.config.get_auto_input()))) { + if ((_monitoring & MonitorInput) || (!(_monitoring & MonitorDisk) && + (diskstream->record_enabled() && + !can_record && + !_session.config.get_auto_input()))) { /* not actually recording, but we want to hear the input material anyway, at least potentially (depending on monitoring options) */ - cerr << name() << " do the passthru thing with monitoring = " << enum_2_string (_monitoring) << endl; - passthru (start_frame, end_frame, nframes, false); } else if ((b = diskstream->playback_buffer(0)) != 0) {