Fix invalid MIDI Program Change decoding (#5154)
This commit is contained in:
committed by
Hyunjin Song
parent
0db83c55a0
commit
a631c0c47e
@@ -563,7 +563,7 @@ void MidiAlsaSeq::run()
|
||||
|
||||
case SND_SEQ_EVENT_CONTROLLER:
|
||||
dest->processInEvent( MidiEvent(
|
||||
MidiControlChange,
|
||||
MidiControlChange,
|
||||
ev->data.control.channel,
|
||||
ev->data.control.param,
|
||||
ev->data.control.value, source ),
|
||||
@@ -572,11 +572,11 @@ void MidiAlsaSeq::run()
|
||||
|
||||
case SND_SEQ_EVENT_PGMCHANGE:
|
||||
dest->processInEvent( MidiEvent(
|
||||
MidiProgramChange,
|
||||
MidiProgramChange,
|
||||
ev->data.control.channel,
|
||||
ev->data.control.param,
|
||||
ev->data.control.value, source ),
|
||||
MidiTime() );
|
||||
ev->data.control.value, 0,
|
||||
source ),
|
||||
MidiTime() );
|
||||
break;
|
||||
|
||||
case SND_SEQ_EVENT_CHANPRESS:
|
||||
|
||||
@@ -222,12 +222,16 @@ void MidiClientRaw::parseData( const unsigned char c )
|
||||
case MidiNoteOff:
|
||||
case MidiNoteOn:
|
||||
case MidiKeyPressure:
|
||||
case MidiProgramChange:
|
||||
case MidiChannelPressure:
|
||||
m_midiParseData.m_midiEvent.setKey( m_midiParseData.m_buffer[0] - KeysPerOctave );
|
||||
m_midiParseData.m_midiEvent.setVelocity( m_midiParseData.m_buffer[1] );
|
||||
break;
|
||||
|
||||
case MidiProgramChange:
|
||||
m_midiParseData.m_midiEvent.setKey( m_midiParseData.m_buffer[0] );
|
||||
m_midiParseData.m_midiEvent.setVelocity( m_midiParseData.m_buffer[1] );
|
||||
break;
|
||||
|
||||
case MidiControlChange:
|
||||
m_midiParseData.m_midiEvent.setControllerNumber( m_midiParseData.m_buffer[0] );
|
||||
m_midiParseData.m_midiEvent.setControllerValue( m_midiParseData.m_buffer[1] );
|
||||
|
||||
Reference in New Issue
Block a user