Fix USB MIDI, add LED startup animation, improve logging
- Use ArduinoUSBMIDI library for proper USB MIDI device recognition - Add LED startup colour cycle (red, green, blue, yellow, magenta, cyan, white) - Add comprehensive console logging for all MIDI in/out and switch events - Log unmapped MIDI messages
This commit is contained in:
+10
-18
@@ -7,24 +7,20 @@
|
||||
#include "switch_stub.h"
|
||||
#include "app_task.h"
|
||||
|
||||
// Hardware instances
|
||||
DefaultLedStub led_driver;
|
||||
DefaultSwitchStub switch_driver;
|
||||
UsbMidiTransport midi_transport;
|
||||
|
||||
// Controller task
|
||||
AppTask controller(&led_driver, &switch_driver, &midi_transport);
|
||||
|
||||
// FreeRTOS task handles
|
||||
TaskHandle_t midi_task_handle = NULL;
|
||||
|
||||
// MIDI processing task (runs on core 0)
|
||||
void midi_task(void* parameter) {
|
||||
Serial.println("[TASK] MIDI task started on core 0");
|
||||
|
||||
while (true) {
|
||||
midi_transport.update();
|
||||
vTaskDelay(1); // Yield to other tasks
|
||||
vTaskDelay(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,22 +28,17 @@ void setup() {
|
||||
Serial.begin(115200);
|
||||
delay(1000);
|
||||
|
||||
Serial.println("=============================");
|
||||
Serial.println("Loopy MIDI Controller v0.1");
|
||||
Serial.println("Phase 1: USB MIDI");
|
||||
Serial.println("=============================");
|
||||
Serial.println("=================================");
|
||||
Serial.println(" Loopy MIDI Controller v0.1");
|
||||
Serial.println(" Phase 1: USB MIDI");
|
||||
Serial.println("=================================");
|
||||
|
||||
// Initialize hardware stubs
|
||||
led_driver.begin();
|
||||
switch_driver.begin();
|
||||
|
||||
// Initialize MIDI transport
|
||||
midi_transport.begin();
|
||||
|
||||
// Initialize controller
|
||||
controller.begin();
|
||||
|
||||
// Create MIDI task on core 0 (high priority)
|
||||
xTaskCreatePinnedToCore(
|
||||
midi_task,
|
||||
"midi_task",
|
||||
@@ -58,12 +49,13 @@ void setup() {
|
||||
0
|
||||
);
|
||||
|
||||
Serial.println("[INIT] All systems ready");
|
||||
Serial.println("=============================");
|
||||
Serial.println("=================================");
|
||||
Serial.println(" All systems ready");
|
||||
Serial.println(" Waiting for USB connection...");
|
||||
Serial.println("=================================");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Controller task runs on core 1 (main Arduino loop)
|
||||
controller.update();
|
||||
delay(10); // 10ms loop period
|
||||
delay(10);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user