Consider the max of the sister voices

This commit is contained in:
Paul Ferrand 2020-05-07 18:45:59 +02:00
parent 298ec7fc0c
commit 2fcd231062

View file

@ -528,13 +528,13 @@ sfz::Voice* sfz::Synth::findFreeVoice() noexcept
break;
}
float sumEnvelope = ref->getAverageEnvelope();
float maxEnvelope = ref->getAverageEnvelope();
while (idx < voiceViewArray.size() && sisterVoices(ref, voiceViewArray[idx])) {
sumEnvelope += voiceViewArray[idx]->getAverageEnvelope();
maxEnvelope = max(maxEnvelope, voiceViewArray[idx]->getAverageEnvelope());
idx++;
}
if (sumEnvelope < envThreshold) {
if (maxEnvelope < envThreshold) {
returnedVoice = ref;
// std::cout << "Killing " << idx - refIdx << " voices" << '\n';
for (unsigned j = refIdx; j < idx; j++)