Browse Source

Fix issue where sustain value would be reset after note off in legacy mode

tags/2021-05-28
Aga Janowicz ed 5 years ago
parent
commit
9d9d26c85a
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp

+ 3
- 3
modules/juce_audio_basics/mpe/juce_MPEInstrument.cpp View File

@@ -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];


Loading…
Cancel
Save