~ruther/qmk_firmware

2bcac45650563822f20a2336a9fc4d95b2cc4e3e — 3araht 4 years ago c8cff14
Fix for MIDI sustain effect issue (#10361)

1 files changed, 6 insertions(+), 4 deletions(-)

M quantum/process_keycode/process_midi.c
M quantum/process_keycode/process_midi.c => quantum/process_keycode/process_midi.c +6 -4
@@ 68,10 68,12 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
            uint8_t tone     = keycode - MIDI_TONE_MIN;
            uint8_t velocity = compute_velocity(midi_config.velocity);
            if (record->event.pressed) {
                uint8_t note = midi_compute_note(keycode);
                midi_send_noteon(&midi_device, channel, note, velocity);
                dprintf("midi noteon channel:%d note:%d velocity:%d\n", channel, note, velocity);
                tone_status[tone] = note;
                if (tone_status[tone] == MIDI_INVALID_NOTE) {
                    uint8_t note = midi_compute_note(keycode);
                    midi_send_noteon(&midi_device, channel, note, velocity);
                    dprintf("midi noteon channel:%d note:%d velocity:%d\n", channel, note, velocity);
                    tone_status[tone] = note;
                }
            } else {
                uint8_t note = tone_status[tone];
                if (note != MIDI_INVALID_NOTE) {