fix midi tx fifo overflow cause data corruption

rename
This commit is contained in:
hathach
2021-04-02 13:26:55 +07:00
parent 949ff791e0
commit 080b14b292
6 changed files with 127 additions and 49 deletions

View File

@@ -132,7 +132,7 @@ void midi_task(void)
// regardless of these being used or not. Therefore incoming traffic should be read
// (possibly just discarded) to avoid the sender blocking in IO
uint8_t packet[4];
while(tud_midi_available()) tud_midi_receive(packet);
while ( tud_midi_available() ) tud_midi_packet_read(packet);
// send note every 1000 ms
if (board_millis() - start_ms < 286) return; // not enough time
@@ -146,10 +146,12 @@ void midi_task(void)
if (previous < 0) previous = sizeof(note_sequence) - 1;
// Send Note On for current position at full velocity (127) on channel 1.
tud_midi_write24(cable_num, 0x90 | channel, note_sequence[note_pos], 127);
uint8_t note_on[3] = { 0x90 | channel, note_sequence[note_pos], 127 };
tud_midi_write(cable_num, note_on, 3);
// Send Note Off for previous note.
tud_midi_write24(cable_num, 0x80 | channel, note_sequence[previous], 0);
uint8_t note_off[3] = { 0x80 | channel, note_sequence[previous], 0};
tud_midi_write(cable_num, note_off, 3);
// Increment position
note_pos++;