This work is licensed under CC BY-SA 4.0.
Helpers for some MIDI stuff common to my usb_midi_clocker and Microlidian projects.
- Handle MIDI clock and timing, helper functions/macros to find the current MIDI time/position
- Optionally (define #USE_UCLOCK) use uClock for accurate & solid timing
- Supports Teensy 4.0/4.1 and RP2040 platforms
- Functions to find the name of a MIDI note number (eg C5, D#3, etc)
- Keys and scales, with quantising and chord-building
- mymenu widgets for:
- displaying/adjusting BPM
- showing track position
- switching clock sources between Internal/External/None.
- adjusting root key, scale, chords and inversions
- parameters library uses features of this for the 1v/oct tracking quantisation etc
- Defines for GM drum note numbers
- For RP2040 boards, set up MIDI USB with TinyUSB
- vortigont/LinkedList library
- (if using USE_UCLOCK mode) midiliab/uClock library (version 2.0.0 or above)
- add -DUSE_TINYUSB
- define -DUSB_MIDI_VID=0x1337 vendor ID
- define -DUSB_MIDI_PID=0xBEEF product ID
- define -DUSB_MIDI_MANUFACTURER=""TyrellCorp"" manufacturer string
- define -DUSB_MIDI_PRODUCT=""FunkyDevice"" product string
- define -DUSE_DINMIDI
- define -DMIDI_SERIAL_SPIO
- define -DMIDI_SERIAL_OUT_PIN=D6 or whatever pin you're using for output
- a class to make it simple to track which notes are held by an input or output
chord inversions- fix envelopes
- 'hold' stage doesnt work properly when inverted