diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc index c5faeed74d..a3a382177a 100644 --- a/libs/ardour/auditioner.cc +++ b/libs/ardour/auditioner.cc @@ -33,6 +33,7 @@ #include "ardour/data_type.h" #include "ardour/delivery.h" #include "ardour/disk_reader.h" +#include "ardour/disk_writer.h" #include "ardour/midi_playlist.h" #include "ardour/midi_region.h" #include "ardour/plugin_insert.h" @@ -75,6 +76,8 @@ Auditioner::init () return -1; } + _disk_writer->unset_flag (DiskIOProcessor::Recordable); + use_new_playlist (DataType::MIDI); if (!audition_synth_info) { diff --git a/libs/ardour/disk_writer.cc b/libs/ardour/disk_writer.cc index 46e42d6109..69a1883457 100644 --- a/libs/ardour/disk_writer.cc +++ b/libs/ardour/disk_writer.cc @@ -1103,6 +1103,10 @@ DiskWriter::use_new_write_source (DataType dt, uint32_t n) { _accumulated_capture_offset = 0; + if (!recordable()) { + return 1; + } + if (dt == DataType::MIDI) { _midi_write_source.reset(); @@ -1123,10 +1127,6 @@ DiskWriter::use_new_write_source (DataType dt, uint32_t n) } else { boost::shared_ptr c = channels.reader(); - if (!recordable()) { - return 1; - } - if (n >= c->size()) { error << string_compose (_("AudioDiskstream: channel %1 out of range"), n) << endmsg; return -1;