From b1dbf0112e975ca5f6771bc85aadd4d7528b7a72 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Sun, 9 Aug 2020 15:28:01 +0200 Subject: [PATCH 1/2] Ignore released voices in search of selfmask candidate --- src/sfizz/Synth.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 6081ba2b..65c91993 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -877,7 +877,7 @@ void sfz::Synth::noteOnDispatch(int delay, int noteNumber, float velocity) noexc } if (region->notePolyphony) { - if (voice->getTriggerNumber() == noteNumber && voice->getTriggerType() == Voice::TriggerType::NoteOn) { + if (voice->getTriggerNumber() == noteNumber && voice->getTriggerType() == Voice::TriggerType::NoteOn && !voice->releasedOrFree()) { notePolyphonyCounter += 1; switch (region->selfMask) { case SfzSelfMask::mask: From fa646b1e73ba612bb56a4c1ea67e1a20431ca220 Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Sun, 9 Aug 2020 20:14:16 +0200 Subject: [PATCH 2/2] Change the check order --- src/sfizz/Synth.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 65c91993..47fc507d 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -877,7 +877,9 @@ void sfz::Synth::noteOnDispatch(int delay, int noteNumber, float velocity) noexc } if (region->notePolyphony) { - if (voice->getTriggerNumber() == noteNumber && voice->getTriggerType() == Voice::TriggerType::NoteOn && !voice->releasedOrFree()) { + if (!voice->releasedOrFree() + && voice->getTriggerNumber() == noteNumber + && voice->getTriggerType() == Voice::TriggerType::NoteOn) { notePolyphonyCounter += 1; switch (region->selfMask) { case SfzSelfMask::mask: