From d3e736f7d35c036532f6a237304fdbcb06540aa6 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 7 Dec 2022 22:47:56 +0100 Subject: [PATCH] Consistent audio/MIDI monitor modes Now that both Audio And MIDI tracks support all three record modes. Monitoring should be consistent. When recording "Sound on Sound" does cue monitoring, while "layered" (opaque). and "non-layered" monitors only the input. Two differences remain: (1) when not recording MIDI tracks still monitor both Input and Disk (unless Non-layered is set), and a final special case is that MIDI tracks always monitor input as fallback. the latter ties in with (2) audio tracks can use hardware monitoring. --- libs/ardour/audio_track.cc | 3 ++- libs/ardour/midi_track.cc | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 9602c6e47c..f1a79c9570 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -193,7 +193,8 @@ MonitorState AudioTrack::get_input_monitoring_state (bool recording, bool talkback) const { if (Config->get_monitoring_model() == SoftwareMonitoring && (recording || talkback)) { - return MonitoringInput; + RecordMode rmode = _session.config.get_record_mode (); + return (rmode == RecSoundOnSound) ? MonitoringCue : MonitoringInput; } else { return MonitoringSilence; } diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index a6016d9279..5d9c0380bf 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -150,7 +150,7 @@ MonitorState MidiTrack::get_input_monitoring_state (bool recording, bool talkback) const { RecordMode rmode = _session.config.get_record_mode (); - if (rmode != RecNonLayered && (recording || talkback)) { + if (rmode == RecSoundOnSound && (recording || talkback)) { return MonitoringCue; } else if (rmode != RecNonLayered || recording || talkback) { return MonitoringInput;