From 66b6a64040d1a01f3613d6c4219301cf818d8c7b Mon Sep 17 00:00:00 2001 From: Andres Date: Mon, 27 Jun 2016 01:23:48 -0300 Subject: [PATCH] Revision to a previous PR. midi sustain of sf2 player --- plugins/sf2_player/sf2_player.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/sf2_player/sf2_player.cpp b/plugins/sf2_player/sf2_player.cpp index b3c029e72..097399c62 100644 --- a/plugins/sf2_player/sf2_player.cpp +++ b/plugins/sf2_player/sf2_player.cpp @@ -576,11 +576,15 @@ void sf2Instrument::playNote( NotePlayHandle * _n, sampleFrame * ) m_playingNotes.append( _n ); m_playingNotesMutex.unlock(); } - else if( _n->isReleased() ) // note is released during this period + else if( _n->isReleased() && ! _n->instrumentTrack()->isSustainPedalPressed() ) // note is released during this period { SF2PluginData * pluginData = static_cast( _n->m_pluginData ); pluginData->offset = _n->framesBeforeRelease(); pluginData->isNew = false; + + m_playingNotesMutex.lock(); + m_playingNotes.append( _n ); + m_playingNotesMutex.unlock(); } }