Move all MIDI processing to Core 0
Move controller.update() inside midi_task on Core 0 to eliminate TinyUSB cross-core race condition. Previously: - Core 1 (loop()): usb_midi.writePacket() in controller.update() - Core 0 (midi_task): usb_midi.available()/readPacket() This race condition causes crashes on button press. Now: - Core 0 (midi_task): midi_transport.update() + controller.update() - Core 1 (loop()): led_driver.update() + serial commands only
This commit is contained in:
+1
-1
@@ -36,6 +36,7 @@ void midi_task(void* parameter) {
|
||||
while (true) {
|
||||
midi_transport.update();
|
||||
ble_midi_transport.update();
|
||||
controller.update();
|
||||
vTaskDelay(1);
|
||||
}
|
||||
}
|
||||
@@ -390,7 +391,6 @@ void setup() {
|
||||
|
||||
void loop() {
|
||||
led_driver.update();
|
||||
controller.update();
|
||||
|
||||
if (Serial.available()) {
|
||||
String cmd = Serial.readStringUntil('\n');
|
||||
|
||||
Reference in New Issue
Block a user