JS Tutorials
Library - Processor Compatability
https://learn.adafruit.com/using-webusb-with-arduino-and-tinyusb/library-board-and-tinyusb-selection
https://learn.adafruit.com/using-webusb-with-arduino-and-tinyusb/compatible-microcontrollers
Midi USB Supports
AVR core > 1.6.8
SAMcore > 1.6.4
SAMDcore > 1.6.1
For any microController w/ native usb capabailities
9ATMega32u4 & ARM Boards
leonardo, micro, zero
Tiny USB Supports
nRF52_arduino
ArduinoCore_SAMD
expressif : ESP32-S2
STM: STM32
SAMD: SAMD 11, 21, 51
Board - Library Compatability
Pro Trinket
Pro Micro
Circuit Playground Express
ATSAMD21
https://learn.adafruit.com/adafruit-circuit-playground-express/circuitpython-hid-keyboard-and-mouse
Circuit Playground
ATMega32u4
?noncompat w/tinyUsb?
Arduino Zero(42$)/ Genuino
SAMD21
Arduino Pro Mini
atmega 328 needs usb-serial adapter
SEEDuino Xiao
SAMD21 small $5
Teensy Boards
Natively Support USB
most arduino boards are atmega328 or atmega32u4
atmega32u4
supports midiusb as it is native usb, as do all avr chips.
SAMD 21
atmels mcu's boards will always provide keyboard and mice emulation.
uses 32 bit ARM core m0+
midi
// https://github.com/georgemandis/circuit-playground-midi-multi-tool
// https://www.arduino.cc/en/Tutorial/LibraryExamples/EEPROMRead // https://www.arduino.cc/en/Tutorial/LibraryExamples/EEPROMIteration //
// https://www.midimountain.com/midi/midi_status.htm
// Name (status byte) 2nd byte (data 1) 3rd byte (data2) // Note on/Off(1/16) Number (0-127) Note Velocity (0-127)
// https://www.midimountain.com/midi/midi_control_mode.html
If not exists -> write vars into eeprom
pull vars from eeprom
use vars as write channle, mode, note
on recieve midi -> midi recieved callback()
insert into eeprom
midi usb - 1) send back whatever was given (chn, action/note, velocity, etc..) <- 2) store each seperately in eeprom 3) automate this n times. sufian - video chat david - wp features
General Midi Spec
NoteOnMsg
Status Byte - KeyBend, Pitch, Noteof, Drums : 10010000
first bit is..
first 4bits are: note on command : 1001
last 4 bits are: ch.1 : 0000
Data Byte - Note Key #, #'s35-81=drums, 56=cowbell : 01111101 = 60(c3)
Data Byte - Velocity = 01111111 or 00000000
connect to device
choose 1 of 4 buttons
choose type toggle trigger mommentum
choose midi ch, cmd
(ch,cc,val)
Assign
Channel
abreviations: ch
values 1-16
Message
abreviations: cc
values 0-127
Type
Types
Mommentum
switch on ( 1, 121, 0 ) -> Start on Downpress
switch off (1, 121, 1 ) -> Cut on Release
Toggle
switch on ( 1, 125, 0 ) -> Starts on Downpress & kept on Release
switch off (1, 125, 1 ) -> Starts on Downpress & kept on Release
Trigger
Fires Midi on ( 1, 128, 1 ) -> Same message every time
for the very reason that keys do no take commands from ableton in order for remapping to work, neither do my boxes. It is purely an internal schema that is created in-app.
Ableton Midi Mappings
Live
You might want to create your own custom MIDI mappings in the following situations:
Your controller doesn't have an included Control Surfaces. Specially written scripts which allow controllers to interface with Live. They enable tactile control of Live through pre-defined parameters.
Or you want to override some parameters.