initial commit
This commit is contained in:
commit
b44ce7bd77
2716 files changed
+559005
No files matched your search
@@ -0,0 +1,49 @@
|
||||
# MIDI Test
|
||||
|
||||
A USB MIDI device that continuously plays a fixed melody, useful for verifying USB MIDI enumeration and streaming.
|
||||
|
||||
## What it does
|
||||
|
||||
- Sends a repeating sequence of note-on / note-off messages (cable 0, channel 1) about every 286 ms.
|
||||
- Drains any incoming MIDI packets (read and discarded) so the host sender never blocks on a full input port.
|
||||
- Blinks the board LED to indicate USB state (not mounted / mounted / suspended).
|
||||
|
||||
## USB Descriptors
|
||||
|
||||
| Interface | Class driver |
|
||||
|-----------|--------------|
|
||||
| 0–1 | MIDI (Audio Control + MIDI Streaming) |
|
||||
|
||||
## Configuration
|
||||
|
||||
Notable `tusb_config.h` settings:
|
||||
|
||||
```c
|
||||
#define CFG_TUD_MIDI 1
|
||||
#define CFG_TUD_MIDI_RX_BUFSIZE (TUD_OPT_HIGH_SPEED ? 512 : 64)
|
||||
#define CFG_TUD_MIDI_TX_BUFSIZE (TUD_OPT_HIGH_SPEED ? 512 : 64)
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
CMake:
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake -DBOARD=raspberry_pi_pico ..
|
||||
cmake --build .
|
||||
```
|
||||
|
||||
Make:
|
||||
|
||||
```bash
|
||||
make BOARD=raspberry_pi_pico all
|
||||
```
|
||||
|
||||
## FreeRTOS variant
|
||||
|
||||
A FreeRTOS build is in `examples/device/midi_test_freertos` — identical MIDI melody playback, with the device, MIDI, and LED-blink work split across FreeRTOS tasks.
|
||||
|
||||
## Try it
|
||||
|
||||
The device shows up as a MIDI port. On Linux, list ports with `aseqdump -l`, then watch the incoming stream with `aseqdump -p <client:port>` (you should see a steady run of note on/off events), or route the port into a synth such as FluidSynth/qsynth to hear the melody.
|
||||
Reference in new issue
Block a user