Stap 6: Fundamentele opmerking op, noot af met Arduino
Deze code stuurt MIDI-berichten Arduino met behulp van digitale pin 1 Let erop op en noteer uit commando's.
Zoals ik heb uitgelegd in stap 3, zijn de MIDI-opdrachten voor opmerking over en opmerking af als volgt:
noteON = 10010000 = 144
noteOFF = 10000000 = 128
Beide opdrachten worden gevolgd door twee meer bytes te maken van een volledige MIDI-bericht, de eerste opmerking is en de tweede is snelheid (voor meer info over wat "note" en "snelheid" gemiddelde Bekijk mijn inleidende MIDI instructable). Opmerking en snelheid kunnen variëren van 0 tot 127. In dit voorbeeld gebruikte ik notities variërend van 50 tot 69 (D3 tot A4):
voor (int Opmerking = 50; Opmerking < 70; opmerking ++) {}
en ik de snelheid ingesteld op 100:
int snelheid = 100;
Dus als de functie MIDImessage() wordt aangeroepen in de loop van de arduino schets, stuurt het de drie bytes:
Serial.write(command);
Serial.write(MIDInote);
Serial.write(MIDIvelocity);
Als de "command" in de MIDImessage() functie noteON is zal dan de notitie beginnen, als het noteOFF die de opmerking stopt.
De onderstaande code speelt de noten D3-A4 in een lus, blijkt op een MIDI-noot voor 300ms dan wachten 200ms voordat u op de volgende noot. Ik schreef een MaxMSP patch (u kunt de runtimeversie gratis downloaden) waarin de inkomende MIDI berichten en deze vervolgens gekoppeld hieronder. Hier is een voorbeeld video:
<pre>/* MIDI On/Off Messages By Amanda Ghassaei July 2012