Arduino, sensorer och MIDI- (2 / 16 steg)
Steg 2: MIDI-protokoll
MIDI-meddelanden är består av två komponenter: kommandon och data-byte. Kommandobyte berättar det MIDI-instrumentet vilken typ av meddelande skickas och då MIDI-kanalen och den efterföljande data byte lagrar faktiska data. Till exempel: ett kommandobyte kan tala ett MIDI-instrument att det har information om en anmärkning och följande databyte ska beskriva vilka Obs och hur högt. Ett kommandobyte kunde också berätta ett MIDI-instrument som det går för att skicka information om pitchbend och följande databyte skulle beskriva hur mycket pitchbend. Ett kommandobyte och data-byte efter det utgör en "MIDI-meddelande".
En byte är en datatyp (andra datatyper som vi har sett hittills är int, booleskaoch lång). Byte lagra positiva heltal mellan 0 och 255. MIDI-meddelanden består av en serie av byte, och de kan avkodas utifrån deras värde att förstå vad de menar.
Här är en lista över vanliga kommandot byte i decimal (basen tio) form:
Obs Off = 128
Not On = 144
Pitchbend = 224
Kommandot byte är alltid större än 127 och data-byte är alltid mellan 0 och 127, i själva verket, det är hur ett MIDI-instrument kan avgöra skillnaden mellan ett kommandobyte och en databyte. Här är hur vi skulle skicka ett MIDI-meddelande att vända på mitten C med hög volym:
144, 60, 127
Det första numret, 144, är kommandobyte, det säger det MIDI-instrumentet att MIDI-meddelandet är en anteckning på meddelande. Andra nummer, 60, är en databyte. Första databyte i en anmärkning på MIDI-meddelandet är "not" - denna anteckning på kommando stänger på MIDI-not 60 (mitten C, kan du hitta en lista av not/MIDI konverteringar
). Det senaste numret är också en databyte, den andra data byten i en anmärkning på MIDI-meddelandet är "hastighet", som används för att styra volymen på en anteckning. Eftersom data-byte mellan 0 och 127, är 127 max volym för en anteckning.
Varje MIDI-not börjar med en anteckning på budskap och slutar med en anteckning av meddelande. Vissa slagredskap kommer att låta som de har stängt av om du håller dem under en lång tid, men de brukar faktiskt vara avstängd tills du skicka en kommentar av meddelande. Det är viktigt att komma ihåg att stänga en anteckning av innan du försöker slå på den igen för att undvika inkonsekventa resultat. Det finns två sätt att stänga en MIDI-not, detta först använder en anmärkning av kommandot:
128, 60, 0
Detta kommando kommer att stänga Obs 60, det börjar med kommandobyte för anteckning, uppsättningar Obs = 60 och hastighet = 0 (velocity inte är oftast mycket påtaglig för notering av, oavsett antal du vill plocka är fina). Du kan också stänga en Obs bort genom att skicka en anteckning på meddelande med hastighet = 0:
144, 60, 0
Detta är en allt vanligare strategi i MIDI (från min erfarenhet) så det är hur vi ska ta itu med Note Off i denna klass.
Om du vill veta mer om MIDI-protokoll, binär och bits, kolla in denna artikel och denna tabell.