1 #include "process_midi.h"
3 bool midi_activated = false;
4 uint8_t midi_starting_note = 0x0C;
7 bool process_midi(uint16_t keycode, keyrecord_t *record) {
8 if (keycode == MI_ON && record->event.pressed) {
16 if (keycode == MI_OFF && record->event.pressed) {
17 midi_activated = false;
18 midi_send_cc(&midi_device, 0, 0x7B, 0);
23 if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) {
24 if (record->event.pressed) {
25 midi_starting_note++; // Change key
26 midi_send_cc(&midi_device, 0, 0x7B, 0);
30 if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) {
31 if (record->event.pressed) {
32 midi_starting_note--; // Change key
33 midi_send_cc(&midi_device, 0, 0x7B, 0);
37 if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
38 midi_offset++; // Change scale
39 midi_send_cc(&midi_device, 0, 0x7B, 0);
42 if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
43 midi_offset--; // Change scale
44 midi_send_cc(&midi_device, 0, 0x7B, 0);
48 // uint8_t note = (midi_starting_note + SCALE[record->event.key.col + midi_offset])+12*(MATRIX_ROWS - record->event.key.row);
50 // uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+12*(MATRIX_ROWS - record->event.key.row);
52 uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+5*(MATRIX_ROWS - record->event.key.row);
54 // uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+7*(MATRIX_ROWS - record->event.key.row);
56 if (record->event.pressed) {
57 // midi_send_noteon(&midi_device, record->event.key.row, midi_starting_note + SCALE[record->event.key.col], 127);
58 midi_send_noteon(&midi_device, 0, note, 127);
60 // midi_send_noteoff(&midi_device, record->event.key.row, midi_starting_note + SCALE[record->event.key.col], 127);
61 midi_send_noteoff(&midi_device, 0, note, 127);
64 if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through