mirror of
https://github.com/firewalkwithm3/qmk_firmware.git
synced 2024-11-22 11:30:30 +08:00
Added bending to MIDI (#2740)
This is done via MI_BENDD and MI_BENDU. At the moment the value is
hardcoded and cannot be adjusted (future commit?) and is the max for the
`midi_send_pitchbend` function (up or down).
`MI_BENDD` and `MI_BENDU` both require `#define MIDI_ADVANCED`
MIDI pitch bend was already implemented in `protocol/midi.c`, I merely
added the keycodes to trigger them. :) (thanks to Jack, two years ago
in commit fb4fe52c
apparently)
This commit is contained in:
parent
a7fca47686
commit
3d3c093173
|
@ -222,6 +222,26 @@ bool process_midi(uint16_t keycode, keyrecord_t *record)
|
|||
dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
|
||||
}
|
||||
return false;
|
||||
case MI_BENDD:
|
||||
if (record->event.pressed) {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, -0x2000);
|
||||
}
|
||||
else {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
|
||||
}
|
||||
return false;
|
||||
case MI_BENDU:
|
||||
if (record->event.pressed) {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff);
|
||||
}
|
||||
else {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return true;
|
||||
|
|
|
@ -383,6 +383,9 @@ enum quantum_keycodes {
|
|||
MI_MOD, // modulation
|
||||
MI_MODSD, // decrease modulation speed
|
||||
MI_MODSU, // increase modulation speed
|
||||
|
||||
MI_BENDD, // Bend down
|
||||
MI_BENDU, // Bend up
|
||||
#endif // MIDI_ADVANCED
|
||||
|
||||
// Backlight functionality
|
||||
|
|
Loading…
Reference in a new issue