|
|
@@ -336,8 +336,8 @@ void MPEInstrument::noteOff (int midiChannel, |
|
|
|
note->keyState = (note->keyState == MPENote::keyDownAndSustained) ? MPENote::sustained : MPENote::off;
|
|
|
|
note->noteOffVelocity = midiNoteOffVelocity;
|
|
|
|
|
|
|
|
// If no more notes are playing on this channel, reset the dimension values
|
|
|
|
if (getLastNotePlayedPtr (midiChannel) == nullptr)
|
|
|
|
// If no more notes are playing on this channel in mpe mode, reset the dimension values
|
|
|
|
if (! legacyMode.isEnabled && getLastNotePlayedPtr (midiChannel) == nullptr)
|
|
|
|
{
|
|
|
|
pressureDimension.lastValueReceivedOnChannel[midiChannel - 1] = MPEValue::minValue();
|
|
|
|
pitchbendDimension.lastValueReceivedOnChannel[midiChannel - 1] = MPEValue::centreValue();
|
|
|
@@ -395,7 +395,7 @@ void MPEInstrument::polyAftertouch (int midiChannel, int midiNoteNumber, MPEValu |
|
|
|
|
|
|
|
MPEValue MPEInstrument::getInitialValueForNewNote (int midiChannel, MPEDimension& dimension) const
|
|
|
|
{
|
|
|
|
if (getLastNotePlayedPtr (midiChannel) != nullptr)
|
|
|
|
if (! legacyMode.isEnabled && getLastNotePlayedPtr (midiChannel) != nullptr)
|
|
|
|
return &dimension == &pressureDimension ? MPEValue::minValue() : MPEValue::centreValue();
|
|
|
|
|
|
|
|
return dimension.lastValueReceivedOnChannel[midiChannel - 1];
|
|
|
|