MIDI signaler utvecklades ursprungligen som ett sätt att kommunicera mellan två elektroniska instrument, såsom keyboards och syntar . Med tiden har de protokoll anpassas och utvecklas för att arbeta med de interna syntar inom hemdatorer och personlig elektronik . MIDI- signaler innehåller inga ljuddata egna . De sänder bara instruktioner till hårdvara , vilket sedan genererar ljudsignaler baserat på dessa instruktioner . Statustecken eller Bytes Command
Varje MIDI sänds innehåller minst ett byte , även om två byte är vanligare och fler bytes används ibland . Den första av de två eller flera byte i en MIDI signal kallas kommandobyten eller statusbyte . Varje byte innehåller en serie av åtta bitar data . Den statusbitgruppen är unik bland andra byte i signalen i att hans innehåller en instruktion i den sjunde biten i dess serie . Andra bytes i en MIDI- signal inte har en instruktion som finns i deras sjunde bit . Den sjunde bit instruerar oftast en anteckning på en viss kanal för att slå på eller av , men andra anvisningar kan ingå liksom . Dessa inkluderar en " aftertouch " inställningen , som simulerar tangenttryck , liksom förändringar i tonhöjd och kontroll av anteckningen .
MIDI kanaler
MIDI-enheter fungerar 16 ljudkanaler . Var och en av dessa kanaler är konfigurerad för att spela en viss röst . Till exempel kan en kanal spela en syntetiserad gitarr sound medan en annan spelar ett pianoljud och ännu en spelar slagverk . De flesta MIDI-enheter visar dessa kanaler numrerade i följd från 1 till 16 , även om informationen i MIDI statusbitgruppen visas i hexadecimal , eller basen sexton format . Hexadecimala tal representeras av siffrorna 0 till 9 och bokstäverna A till F , så det hexadecimala talet 0 som faktiskt representerar den första MIDI-kanal eller kanal ett . Hexadecimalt tal 1 representerar den andra MIDI-kanal och så vidare , med A till F representerar kanalerna 11 till 16 .
Kommandon och kanaler
Varje kommando byte innehåller två typer av data . Betecknande nog innehåller en halv av bitgruppen MIDI kommandot. Den andra hälften av byte innehåller kanaldata relevanta för det kommandot . Dessa data visas via två hexadecimala värden , med det första värdet dikterar kommandot och det andra värdet bestämma kanal . Till exempel skulle ett hexadecimalt värde 9A skicka anteckningen - på kommando till den elfte MIDI-kanal på enheten .