Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Fix invalid MIDI Program Change decoding (#5139)
  • Loading branch information
artur-twardowski committed Aug 25, 2019
commit ec32cb1f587a509304b89af29dab0a4a071a7a71
10 changes: 5 additions & 5 deletions src/core/midi/MidiAlsaSeq.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 ),
Expand All @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/core/midi/MidiClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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] );
Expand Down