I messaggi MIDI si possono dividere in due macro-categorie:
- Channel Messages (che si applicano a canali specifici, come poi vedremo)
- System Messages (che invece non sono canalizzati e che sono diretti indistintamente a tutte le macchine collegate al network)
Da un punto di vista protocollare i messaggi MIDI sono composti da uno Status byte, la cui stringa comincia per 1 (1xxx-xxxx) seguito da 1 o 2 Data bytes, riconoscibili dalla stringa che inizia invece con 0 (0xxx-xxxx), il numero dei Data bytes cambia a seconda del tipo di messaggio
I Channel Message si dividono poi a loro volta in:
- Channel Voice Messages (che veicolano dati di note, timbri, controllers, sliders e tutte le informazioni più strettamente “musicali” dell’esecuzione): Note On, Note Off, Channel Pressure, Poly Pressure, Control Change, Program Change, Pitch Bend
- Channel Mode Messages (messaggi che controllano il funzionamento delle voci del generatore sonoro), una particolare famiglia di control changes: 121 Reset all controllers, 122 Local on-off, 123 All notes off, 124-127 Omni on-off/Poly-Mono mode
System Messages, che non hanno canale e sono ricevuti da tutti gli strumenti del network, si dividono a loro volta in:
- System Common (comuni a tutto il network): Song Position Pointer, Song Select, Tune request, End of Exclusive
- System Real-time (caratterizzati dalla presenza del solo status bytes), utilizzati per la sincronizzazione tra sequencers e drum machines: MIDI Clock, Start/Stop, Active Sensing, System Reset
- System Exclusive classe di messaggi destinati a veicolare la trasmissione dei dati delle patch di un sintetizzatore o di quant’altro riguarda strettamente l’architettura dello strumento trasmittente (esteso poi ad includere MIDI Time Code, MIDI sample dump, MIDI Machine Control, MIDI Show Control)
|
|