From 283c7ba09add0c0a361c22ff38897fe8c0d50332 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Fri, 16 Jun 2023 03:21:36 +0300 Subject: adlmidi_midiplay.cpp: Fixed the channel allocation logic --- src/adlmidi_midiplay.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 22b1cc1..8d17eeb 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -1356,13 +1356,18 @@ int64_t MIDIplay::calculateChipChannelGoodness(size_t c, const MIDIchannel::Note allocType = ADLMIDI_ChanAlloc_SameInst; break; - case Synth::VOLUME_HMI: - case Synth::VOLUME_HMI_OLD: - allocType = ADLMIDI_ChanAlloc_AnyReleased; // HMI doesn't care about the same instrument - break; - default: - allocType = ADLMIDI_ChanAlloc_OffDelay; + switch(synth.m_volumeScale) + { + case Synth::VOLUME_HMI: + case Synth::VOLUME_HMI_OLD: + allocType = ADLMIDI_ChanAlloc_AnyReleased; // HMI doesn't care about the same instrument + break; + + default: + allocType = ADLMIDI_ChanAlloc_OffDelay; + break; + } break; } } -- cgit v1.2.3