Konvertera en räddade leksak till en MIDI-controller (14 / 17 steg)
Steg 14: Lägga till MIDI-funktioner
MIDI i korthet
MIDI kan vara ett komplicerat och oerhört kraftfull protokoll, och som sådan, det finns många typer av meddelanden du kan skicka från din Teensy. Om du så vill, och vill ta din MIDI-leksak till nästa nivå, föreslår jag att först lära sig mer om vad du kan skicka från din Teensy från denna bra sida från PJRC om att använda MIDI på en Teensy.
För att hålla det enkelt, men vi bara kommer att fokusera på två specifika typer av meddelanden i detta Instructable: Obs på och notera off. Det finns ingen riktigt mysterium på dessa meddelanden, de gör exakt vad man förvänta sig att; de säga enheten handkontrollen ansluten till att den ska börja eller sluta spela en specifik Musiknoteringen. Du kan läsa om andra typer av meddelanden, som control förändringar (CC) och sysex meddelanden för att mer avancerade effekter, men vi ska bara hålla det enkelt för nu.
Med hjälp av Arduino skiss
Arduino skiss bifogas detta steg bör ser bekant, som det baseras tungt på den skiss som används i steg 11. All debouncing kod är fortfarande på plats, men ett par nya variabler har lagts till:
midiNotes [] array = array av MIDI-not nummer som ska associeras med stiften som anges i matrisen knappar []. Till exempel om koden ser att du är att trycka på eller släppa knapparna [5], skickas lämplig MIDI-meddelanden att slå på och av MIDI-anteckningen i midiNotes [5].
kanal = alla MIDI-meddelanden måste varit skickas på en viss kanal. Detta gör mer än en enhet kan anslutas till en MIDI-kedja och interagera med sequencers och syntar.
Glöm inte att ändra din Teensy USB!
Din Teensy är kan skicka MIDI-meddelanden endast när den är konfigurerad för att vara en MIDI-enhet! Det gör bara att gå till den Verktyg > USB typ menyn och välj "MIDI". Nackdelen med detta är att du i MIDI-läget kan inte skicka eller ta emot seriella meddelanden. Det är därför vi gjorde alla det felsökning i föregående steg - du bör redan listat ut om alla dina pins fungerar, vi lägger bara till fungerande systemet i det här steget!