diff --git a/libs/sst/sst-voicemanager b/libs/sst/sst-voicemanager index 5f741a43..66cfeb88 160000 --- a/libs/sst/sst-voicemanager +++ b/libs/sst/sst-voicemanager @@ -1 +1 @@ -Subproject commit 5f741a43ec30e7393088a7d342ca5568419012ac +Subproject commit 66cfeb887f46094f3d5d10af334689e470b93556 diff --git a/src/engine/engine_voice_responder.cpp b/src/engine/engine_voice_responder.cpp index bcd29320..eeada914 100644 --- a/src/engine/engine_voice_responder.cpp +++ b/src/engine/engine_voice_responder.cpp @@ -236,6 +236,8 @@ void Engine::VoiceManagerResponder::setPolyphonicAftertouch(voice::Voice *v, int void Engine::VoiceManagerResponder::terminateVoice(voice::Voice *v) { + SCLOG_IF(voiceResponder, "terminateVoice " << v << " " << (int)v->key); + ; if (!v->isVoicePlaying) return; if (v->isGated) diff --git a/src/engine/group.cpp b/src/engine/group.cpp index e8c9b6af..5756dd17 100644 --- a/src/engine/group.cpp +++ b/src/engine/group.cpp @@ -624,10 +624,16 @@ void Group::resetPolyAndPlaymode(engine::Engine &e) } else { + auto pgrp = (uint64_t)this; + SCLOG_IF(voiceResponder, "Setting up poly group " << pgrp); + + e.voiceManager.setPlaymode(pgrp, Engine::voiceManager_t::PlayMode::POLY_VOICES, + outputInfo.vmPlayModeFeaturesInt); assert(outputInfo.vmPlayModeInt == (uint32_t)Engine::voiceManager_t::PlayMode::POLY_VOICES); if (!outputInfo.hasIndependentPolyLimit) { // TODO we really want a 'clear' + e.voiceManager.setPolyphonyGroupVoiceLimit((uint64_t)this, maxVoices); } else {