diff --git a/src/effects/NoiseReduction.cpp b/src/effects/NoiseReduction.cpp index 3b769bcdb67c36a46c8cade6bb3f175b753e1db6..d490f263e03b85e59a27fef81dde6b18a067ab70 100644 --- a/src/effects/NoiseReduction.cpp +++ b/src/effects/NoiseReduction.cpp @@ -741,14 +741,18 @@ bool EffectNoiseReduction::Worker::Process( if (!TrackSpectrumTransformer::Process( Processor, pChannel, mHistoryLen, start, len)) return false; - tempList->Add(mOutputTrack); - assert(mOutputTrack->IsLeader() == pChannel->IsLeader()); - mOutputTrack.reset(); + if (mOutputTrack) { + tempList->Add(mOutputTrack); + assert(mOutputTrack->IsLeader() == pChannel->IsLeader()); + mOutputTrack.reset(); + } ++mProgressTrackCount; } - auto iter = TrackList::Channels(*tempList->Leaders().begin()).begin(); - for (const auto pChannel : TrackList::Channels(track)) - pChannel->ClearAndPaste(t0, t0 + tLen, *iter++, true, false); + if (tempList->Size()) { + auto iter = TrackList::Channels(*tempList->Leaders().begin()).begin(); + for (const auto pChannel : TrackList::Channels(track)) + pChannel->ClearAndPaste(t0, t0 + tLen, *iter++, true, false); + } } }