4d81386f78
- 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
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
// Loopy MIDI Controller - Phase 1
|
|
// ESP32-S3 USB MIDI Foot Controller
|
|
|
|
#include <Arduino.h>
|
|
#include "midi_transport.h"
|
|
#include "led_stub.h"
|
|
#include "switch_stub.h"
|
|
#include "app_task.h"
|
|
|
|
DefaultLedStub led_driver;
|
|
DefaultSwitchStub switch_driver;
|
|
UsbMidiTransport midi_transport;
|
|
|
|
AppTask controller(&led_driver, &switch_driver, &midi_transport);
|
|
|
|
TaskHandle_t midi_task_handle = NULL;
|
|
|
|
void midi_task(void* parameter) {
|
|
Serial.println("[TASK] MIDI task started on core 0");
|
|
|
|
while (true) {
|
|
midi_transport.update();
|
|
vTaskDelay(1);
|
|
}
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
delay(1000);
|
|
|
|
Serial.println("=================================");
|
|
Serial.println(" Loopy MIDI Controller v0.1");
|
|
Serial.println(" Phase 1: USB MIDI");
|
|
Serial.println("=================================");
|
|
|
|
led_driver.begin();
|
|
switch_driver.begin();
|
|
|
|
midi_transport.begin();
|
|
controller.begin();
|
|
|
|
xTaskCreatePinnedToCore(
|
|
midi_task,
|
|
"midi_task",
|
|
4096,
|
|
NULL,
|
|
3,
|
|
&midi_task_handle,
|
|
0
|
|
);
|
|
|
|
Serial.println("=================================");
|
|
Serial.println(" All systems ready");
|
|
Serial.println(" Waiting for USB connection...");
|
|
Serial.println("=================================");
|
|
}
|
|
|
|
void loop() {
|
|
controller.update();
|
|
delay(10);
|
|
}
|