Using Wio Terminal As A USB MIDI Device - Seeed Wiki
Maybe your like
This repo introduce how to use the Wio Terminal as a USB MIDI (Musical Instrument Digital Interface) Device, where it can be used to control musical instruments!
Installing Libraries
This example also requires an additional Arduino MIDI libraries:
-
Visit the Arduino MIDI Library repositories and download the entire repo to your local drive.
-
Now, the library can be installed to the Arduino IDE. Open the Arduino IDE, and click sketch -> Include Library -> Add .ZIP Library, and choose the Seeed_Arduino_LCD file that you've have just downloaded.

Obtaining Results
In this case, Wio Terminal is connected to my Macbook and use Audio MIDI Setup app that comes along with macOS to test. You can also see the serial data from the serial monitor in Arduino IDE. If you have a MIDI Device available, then use that instead for more realistic scenario!
Complete Code
For more fucntionality, please refer to the TinyUSB libraries.
#include<Arduino.h>#include<Adafruit_TinyUSB.h>#include<MIDI.h>// USB MIDI objectAdafruit_USBD_MIDI usb_midi;// Create a new instance of the Arduino MIDI Library,// and attach usb_midi as the transport.MIDI_CREATE_INSTANCE(Adafruit_USBD_MIDI, usb_midi, MIDI);// Variable that holds the current position in the sequence.uint32_t position =0;// Store example melody as an array of note valuesbyte note_sequence[]={74,78,81,86,90,93,98,102,57,61,66,69,73,78,81,85,88,92,97,100,97,92,88,85,81,78,74,69,66,62,57,62,66,69,74,78,81,86,90,93,97,102,97,93,90,85,81,78,73,68,64,61,56,61,64,68,74,78,81,86,90,93,98,102};voidsetup(){pinMode(LED_BUILTIN, OUTPUT);// Initialize MIDI, and listen to all MIDI channels// This will also call usb_midi's begin() MIDI.begin(MIDI_CHANNEL_OMNI);// Attach the handleNoteOn function to the MIDI Library. It will// be called whenever the Bluefruit receives MIDI Note On messages. MIDI.setHandleNoteOn(handleNoteOn);// Do the same for MIDI Note Off messages. MIDI.setHandleNoteOff(handleNoteOff); Serial.begin(115200);// wait until device mountedwhile(!USBDevice.mounted())delay(1);}voidloop(){staticuint32_t start_ms =0;if(millis()- start_ms >266){ start_ms +=266;// Setup variables for the current and previous// positions in the note sequence.int previous = position -1;// If we currently are at position 0, set the// previous position to the last note in the sequence.if(previous <0){ previous =sizeof(note_sequence)-1;}// Send Note On for current position at full velocity (127) on channel 1. MIDI.sendNoteOn(note_sequence[position],127,1);// Send Note Off for previous note. MIDI.sendNoteOff(note_sequence[previous],0,1);// Increment position position++;// If we are at the end of the sequence, start over.if(position >=sizeof(note_sequence)){ position =0;}}// read any new MIDI messages MIDI.read();}voidhandleNoteOn(byte channel, byte pitch, byte velocity){// Log when a note is pressed. Serial.printf("Note on: channel = %d, pitch = %d, velocity - %d", channel, pitch, velocity); Serial.println();}voidhandleNoteOff(byte channel, byte pitch, byte velocity){// Log when a note is released. Serial.printf("Note off: channel = %d, pitch = %d, velocity - %d", channel, pitch, velocity); Serial.println();}Tag » Arduino Midi Usb Library Download
-
MIDIUSB - Arduino Reference
-
USB-MIDI - Arduino Reference
-
USBMIDI - Arduino Reference
-
MIDIUSB Library For Arduino - GitHub
-
USB-MIDI - Arduino Library List
-
MIDI USB | Sound Examples - GitHub Pages
-
1 Arduino (Pro) Micro As A USB-MIDI Device - The MIDIUSB Library
-
Arduino MIDI Library Download
-
Download Arduino MIDI Library 4.3.1 - Softpedia
-
Arduino-libraries/MIDIUSB: Allows An Arduino Board With USB…
-
DIY USB Midi Controller With Arduino: A Beginner's Guide
-
Teensyduino: Using USB MIDI With Teensy On The Arduino IDE - PJRC
-
MIDI And Arduino
-
Arduino (Pro) Micro As A USB-MIDI Device (MIDIUSB Library)