diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index d4c095d738..e8eea740b1 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -414,12 +414,19 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, bool const auto_input = _session.config.get_auto_input (); bool const software_monitor = Config->get_monitoring_model() == SoftwareMonitoring; bool const tape_machine_mode = Config->get_tape_machine_mode (); + bool no_meter = false; - if (!software_monitor && tape_machine_mode && !track_rec) { - _meter->reset(); - _input->process_input (boost::shared_ptr(), start_frame, end_frame, nframes); + if (_monitoring & MonitorDisk && !track_rec) { + no_meter=true; + } + else if (!software_monitor && tape_machine_mode && !track_rec) { + no_meter=true; } else if (!software_monitor && !tape_machine_mode && !track_rec && !auto_input) { + no_meter=true; + } + + if (no_meter) { _meter->reset(); _input->process_input (boost::shared_ptr(), start_frame, end_frame, nframes); } else {