Teensy MIDI


Teensy MIDI

In een paar simpele stappen kun je je Teensy MIDI laten versturen om deze makkelijk te ontvangen in Max, SuperCollider of een DAW.

Gedetailleerde uitleg van USB MIDI op Teensy's vind je hier

Stap 1

Zorg dat je de onder Tools->USB Mode de modus Serial + MIDI selecteerd. Als je nu je code opnieuw compileert zal de Arduino IDE je Teensy zich laten gedragen als een MIDI device en ook de mogelijkheid voor SeriΓ«le communicatie open laten.

Stap 2

Nu kan je gebruik maken van de volgende functies om MIDI te sturen naar je computer: usbMIDI.sendNoteOn(note, velocity, channel); usbMIDI.sendNoteOff(note, velocity, channel); usbMIDI.sendControlChange(control, value, channel);

Voor meer functies zie hier

Stap 3

Wil je MIDI ontvangen op je Teensy, dan kan je nu gebruik maken van callback functies. Dat zijn functies die worden uitgevoerd als er iets specifieks gebeurt. Dit kan bijvoorbeeld zijn dat je een functie uitvoert wanneer er een MIDI noot wordt ontvangen op je Teensy.

usbMIDI.setHandleNoteOn(myNoteOn) usbMIDI.setHandleNoteOff(myNoteOff)

In dit geval behoor je zelf een void myNoteOn() { ... } functie te maken. Om dit te laten werken moet je ook nog iedere loop() de functie usbMIDI.read() aanroepen. Dit verteld je Teensy dat deze moet kijken of er geen nieuwe MIDI berichten binnen zijn gekomen.

Stap 4 (optioneel)

Je kan je Teensy MIDI device ook een ingebouwde MIDI naam geven. Je moet hiervoor een nieuw bestandje aanmaken naast je standaard Arduino Sketch. Dit kan je doen door op het pijltje rechtboven te klikken en dan op New Tab te drukken.

Nu kan je een nieuw bestand aanmaken. Noem deze name.c en vul deze met de volgende code:

// To give your project a unique name, this code must be
// placed into a .c file (its own tab).  It can not be in
// a .cpp file or your main sketch (the .ino file).

#include "usb_names.h"

// Edit these lines to create your own name.  The length must
// match the number of characters in your custom name.

#define MIDI_NAME   {'M','y',' ','M','I','D','I'}
#define MIDI_NAME_LEN  7

// Do not change this part.  This exact format is required by USB.

struct usb_string_descriptor_struct usb_string_product_name = {
        2 + MIDI_NAME_LEN * 2,
        3,
        MIDI_NAME
};

Nu kan je zelf een naam invullen na MIDI_NAME. Let wel op dat je daarna het aantal letters van je nieuwe MIDI_NAME update na MIDI_NAME_LEN Zie hiervoor ook Examples->Teensy->USB_MIDI->MIDI_name