MIDI - Musical Instrument Digital Interface! L interfaccia MIDI! Il protocollo MIDI! Il sequencer 1
Che cosa è il MIDI?! Protocollo per lo scambio d'informazioni in formato digitale fra diverse apparecchiature per applicazioni musicali! Implementa una rappresentazione a livello simbolico della musica! Definisce! hardware! regole per la trasmissione e la ricezione! semantica! sintassi! Ossia! che circuito deve avere l'interfaccia! quale deve essere la velocità con la quale viaggiano i bit! quali e quanti byte servono per effettuare istruzioni riconoscibili 2
Protocollo MIDI, MIDI file e General MIDI! il protocollo MIDI serve per la trasmissione di messaggi MIDI tra dispositivi differenti! lo Standard MIDI file è un formato che consente la memorizzazione dei messaggi MIDI su supporti permanenti! il General MIDI precisa il significato di alcuni messaggi MIDI (ad es. consente di specificare in maniera univoca un timbro musicale) 3
Come nasce il MIDI! Limitazioni dei primi sintetizzatori (monofonici e con pochi timbri)! Integrazione di più sintetizzatori per produrre suoni più ricchi! Problema della comunicazione! altezza e ampiezza di una nota! sincronizzazione MASTER SLAVE Synth1 Audio out Synth2 Audio out 4
Cronologia! Inizio anni 80: necessità di uno standard per la comunicazione tra i sintetizzatorim di marche diverse! problemi di cavi, differenze di volt,...! AES - primo tentativo: protocollo USI (Universal Synthesizer Interface), 1981! modifiche e integrazioni con la partecipazione dei maggiori produttori di strumenti elettronici! 1983: MIDI 1.0! 1991: General MIDI, per fornire al mercato di massa un approccio predefinito alla configurazione MIDI! 1999: General MIDI Level 2! 1999: Downloadable Sounds (DLS), per standardizzare il formato dei timbri scaricabili da rete! Si utilizza il formato RIFF! Per il mercato dei videogiochi 5
Due concetti del MIDI! Interfaccia MIDI:! hardware necessario per la comunicazione tra strumenti! Protocollo di comunicazione MIDI:! insieme di regole per interpretare univocamente tutti i messaggi! Il MIDI permette di collegare DISPOSITIVI elettronici al fine di trasmettere INFORMAZIONI di natura musicale 6
Dispositivi MIDI! Generatori di dati midi:! Master keyboard, computer, workstation, controller, etc.! I generatori di suono:! Expander e sintetizzatori, batterie elettroniche, computer, etc.! Le interfacce:! Sincronizzatori, midibox, patchbay, etc. 7
Dispositivi MIDI! La workstation all'interno è divisa in due sezioni distinte: una di controllo, che comprende la tastiera, i comandi e la parte elettronica per l'elaborazione in entrata ed uscita dei dati midi, ed una di generazione di suono. I modelli più evoluti possono svolgere funzioni di sequencer.! La masterkeyboard è in grado di svolgere tutte le funzioni di controllo MIDI più o meno complesse, la caratteristica che la distingue dal sintetizzatore è l'assenza della sezione di generatore di suono.! Il computer si è affiancato alle apparecchiature midi e con i software ed hardware presenti in commercio è in grado di svolgere le funzioni MIDI più complesse.! L'expander o modulo sonoro è composto dalla sola sezione di generazione di suono di un sintetizzatore.! Le interfaccie sono dispositivi di ausilio ad un sistema MIDI:! Sincronizzatori à servono a fare partire e camminare allineate diverse apparecchiature MIDI. Un sincronizzatore molto utile è quello che si usa per far andare a tempo un registratore analogico a nastro con varie apparecchiature MIDI.! Midibox à utili per filtrare, miscelare e collegare varie fonti MIDI. Troviamo tra le più importanti: Merge, Patch Bay, Thru 8
MIDI Box e Patch Bay! Midibox à utili per filtrare, miscelare e collegare varie fonti MIDI.! Thru Box: lo stesso ingresso su tutte le uscite! Patch Bay: molti ingressi, molte uscite: routing, merging! MIDI processor 9
Interfaccia MIDI 1/2! Interfaccia seriale asincrona! Dati come sequenza di bit! Occorrono convertitori parallelo/ seriale (ACIA o UART)! L invio dei dati dipende dal momento in cui un dispositivo inizia a trasmettere! Velocità: 31.250 bit/sec! Un byte (10 bit = 8 + bit di start + bit di stop) 320 msec! Connettori di tipo DIN a 5 pin! L avvolgimenti è proprio del MIDI! non si possono usare cavi DIN standard! Lunghezza massima: 6.6 m! oltre intervengono problemi di dispersione) + 5 V 1 4 5 2 3 schermatura dati MIDI 10
Interfaccia MIDI 2/2! Porte fisiche (connettori)! MIDI In: riceve segnali dall esterno! MIDI Out: trasmette dati MIDI all esterno! MIDI Thru: trasmette all esterno la copia esatta dei dati ricevuti al MIDI In! Patch bay consente di effettuare un routing, scegliendo tra più configurazioni ingresso/uscita! Permette di assegnare un solo ingresso a più uscite e più uscite ad un ingresso (merging) IN OUT THRU IN OUT THRU IN OUT THRU 11
Schema riassuntivo V cc µp Dati Comandi Interrupt ACIA o UART Tx Rx Opto isolatore 5 2 4 5 4 byte FIFO bit ACIA Asynchronous Communication Interface Adapter UART Universal Asynchronous Receiver/Transmitter 12
Sistema MIDI! Editor (sequencer): programmi per brani musicali come sequenze di eventi complessi! Expander: generatori di suono (sintetizzatori, campionatori, )! Controller: generatori di messaggi MIDI (tastiere, MIDI-sax, MIDI-guitar, drum-pads, ) 13
Schemi di connessione MIDI I) Synth1 MIDI out MIDI in Synth2 II) MIDI out MIDI thru MIDI out MIDI in MIDI in MIDI Expander Master Keyboard Sequencer MIDI in Drum machine 14
Informazioni MIDI! Comunicazione attraverso messaggi! I messaggi non rappresentano una forma d onda! solo informazioni di controllo! Note! Note on, Note off, key-number, key-velocity! Canali! Al massimo 16! Patch! Controlli! Informazioni di tempo
Il protocollo MIDI: canali! Canali! Strade per la comunicazione! Ad ogni canale può essere associato un particolare timbro! Indirizzano i messaggi agli expander! Il MIDI ha 16 canali per la comunicazione! I device possono rispondere a 1 o più canali! Due esempi d utilizzo di tutti 16 i canali! Manuel De Falla, Quintetto (El Amor Brujo: Danza ritual del fuego): 3 diverse assegnazioni di timbri ai canali 16
Il protocollo MIDI (cont.)! Tracce! Flusso autonomo di dati MIDI! analogia: partitura per un esecutore! Esempio: in un brano per 2 pianoforti, ogni traccia è uno strumento, pur mantenendo lo stesso timbro! Può essere associata ad un canale, per poter modificare un timbro! Riorchestrazione, modificando il timbro associato ad un canale 17
Patch! I messaggi MIDI possono indirizzare sino a 128 timbri (patch) diversi! Si possono utilizzare diversi bank di 128 patch l uno! Alcune patch General MIDI: 0 Grand piano; 4 Rhodes piano; 6 Harpsichord; 11 Vibraphone; 12 Marimba; 13 Xylophone; 21 Accordion; 22 Harmonica; 23 Tango accordion; 24 Acoustic guitar (nylon); 25 Acoustic guitar (steel); 26 Electric guitar (jazz); 32 Acoustic bass; 33 Electric bass (finger); 40 Violin; 41 Viola; 42 Cello; 46 Orchestral harp; 47 Timpani; 48 String ensemble 1; 56 Trumpet; 57 Trombone; 71 Clarinet; 73 Flute; 79 Ocarina; 80 Square Lead; 81 Sawtooth Lead; 94 Halo Pad; 104 Sitar; 105 Banjo; 118 Synth drum; 119 Reverse cymbal; 120 Guitar fret noise; 121 Breath noise; 122 Sea shore; 123 Bird tweet; 124 Telephone ring; 125 Helicopter; 126 Applause; 127 Gunshot 18
Tracce, canali e patch - MIDI -
Temporizzazione! I messaggi MIDI includono l informazione temporale (timestamp)! Ogni dispositivo MIDI è dotato di un clock con unità di misura (timebase) particolare:! PPQ (parti per quarto) o ticks! Relativa: dipende dalla durata di un quarto! Il numero di quarti (semiminime) al minuto è indicato con BPM (beats per minute): tra 40 e 240! Valori tipici: 24, 96, 480 (tutti multipli di 24), sino a 4096 20
Esempio! 120 BPM, Timebase = 24 ticks! 120 BPM = 2 beat/sec, cioè 0,5 sec per 1 beat! 24 ticks in un beat, cioè in 0,5 sec! 0,5 / 24 = 0,020833 sec = circa 21 msec! Quindi 1 tick dura circa 21 msec 21
Sincronizzazione MIDI! MIDI Clock:! Il device master tiene il tempo con il suo clock (internal sync): produce un clock message ogni 24 PPQ! Devices slave con external sync: usano il clock message che arriva dal master 22
MIDI Timecode Quarter Frame! MIDI Time Code! Per coordinare dispositivi MIDI con produzioni audio/video! Traduzione in tempo assoluto! Fondamentale in ambiente multimediale! Il timecode (SMPTE) hh:mm:ss:ff! Si usa in televisione e video produzione! è un codice speciale inviato (o registrato) insieme con i segnali video e audio! risoluzione di circa 1 2 ms, sufficiente per sincronizzare audio con video, ma non per sincronizzare audio multitraccia. 23
Struttura generale di un messaggio MIDI! Parole di 10 bit (8 + start + stop)! Status Byte primo bit =1, identifica:! il tipo di messaggio (di canale o di sistema)! il canale interessato (nei channel message)! Il messaggio di sistema! ne esistono solo 11, quindi bastano i 4 bit meno significativi dello Status Byte! 1 o 2 Data byte: il messaggio! La velocità di trasmissione è 31250 bit/sec. 24
Messaggi MIDI: livello logico! Il flusso di dati MIDI può essere diviso in! byte che contengono dati (data bytes)! byte che specificano il significato di tali dati (status byte).! I diversi tipi di messaggi (status byte) si possono dividere in! system message sono indirizzati a tutti i canali e vengono quindi recepiti da tutti i dispositivi collegati! channel message sono messaggi indirizzati ad un particolare canale, che vengono recepiti solo dai dispositivi che hanno quel particolare canale d ascolto attivato.! Status byte: 1xxxyyyy! xxx indica il tipo di messaggio! yyyy indica il canale di destinazione (2 4 =16)! Data byte: 0xxxxxxx! xxxxxxx contiente il valore del parametro (2 7 =127) 25
La tassonomia dei messaggi Messaggi che riguardano un solo canale Channel Message Message Type System Message Messaggi che non riguardano un canale Channel Channel System System System Voice Mode Common Real Time Exclusive Message Message Message Message Message Che cosa deve suonare uno strumento Come si comporta uno strumento all arrivo del voice message Indirizzati a tutti i device nel sistema Codice di sincronizzazione tra i device Indirizzati a uno specifico device nel sistema 26
Channel Message: Status byte! primi 4 bit: codice di identificazione del messaggio! (tra 1000 e 1110)! secondi 4 bit: identificazione del canale Sempre 1 negli status byte MSB 6 5 4 3 2 1 0 Message type 1 0 0 0 Uno dei Note off 1 0 0 1 sedici canali: 4 bit Note on 1 0 1 0 (0..15) Aftertouch 27
Channel Message: Data Bytes! 1 o più byte! Iniziano con 0: 0xxx xxxx! 128 valori a disposizione 28
Channel Voice Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive Message descrivono che cosa deve suonare uno strumento (eventi musicali) 29
Note On - Note Off! Si invia per attivare una nota! tasto di una tastiera! pad di una batteria elettronica! 2 data bytes! numero nota (Do centrale = 60) 0NNN NNNN! velocity: forza con cui si pigia un tasto (ampiezza dell output, eventualmente timbro) 0VVV VVVV Note Off! Si invia per disattivare una nota! 2 data bytes! numero della nota 0NNN NNNN! velocity: applicata al rilascio 0VVV VVVV 30
Le note (key) (128) C C# D D# E F F# G G# A A# B Ottava 0 1 2 3 4 5 6 7 8 9 10 11-1 12 13 14 15 16 17 18 19 20 21 22 23 0 24 25 26 27 28 29 30 31 32 33 34 35 1 36 37 38 39 40 41 42 43 44 45 46 47 2 48 49 50 51 52 53 54 55 56 57 58 59 3 60 61 62 63 64 65 66 67 68 69 70 71 4 72 73 74 75 76 77 78 79 80 81 82 83 5 84 85 86 87 88 89 90 91 92 93 94 95 6 96 97 98 99 100 101 102 103 104 105 106 107 7 108 109 110 111 112 113 114 115 116 117 118 119 8 120 121 122 123 124 125 126 127 9 31
Codifica abbreviata! Poiché la velocity è poco significativa per il NoteOff! NoteOff = NoteOn con velocity = 0! non si ripete lo status byte del NotaOn:! 144 47 50 144 47 0 144 47 50 47 0! 144 = 1001-0000 (NoteOn Canale 1)! Si risparmia una media di 33% di traffico sulla rete 32
Aftertouch (Polyphonic Key Pressure)! Solo per device che rilevano cambi di pressione! Simula strumenti con afflusso continuo di energia! Status Byte 1010nnnn! 2 data Bytes:! numero della nota 0NNN NNNN! valore di pressione 0VVV VVVV! Riguarda una sola nota! 33
Aftertouch (Channel Pressure)! Solo per device che rilevano cambi di pressione! Non si specifica il numero di nota: modifiche timbriche su tutto il canale! Status Byte: 1101nnnn! 1 data byte: valore di pressione 0VVV VVVV! Effetti diversi a seconda del device usato 34
Pitch Bend! Sulla tastiera: Pitch Wheel! variazione frequenziale intorno alla frequenza del tasto premuto! corrisponde al vibrato! Status Byte: 1110nnnn! 2 data byte: variazione (14 bit) 35
Program Change! Per sintetizzatori multi-timbrici! Status byte: 1110nnnn! 1 data byte: Program Number 0PPP PPPP! Si seleziona il timbro associato al canale nnnn! In una unità di effetti può indicare un particolare effetto (ad esempio, un chorus) da attivare sul canale nnnn 36
Control Change! Controller: pedale, ruota, leva, bocchino! Status Byte: 1011nnnn! 2 data byte:! Il primo specifica il controller! Il secondo il valore che deve assumere! Controller continui: funzione di controllo! controller 7: volume generale dello strumento! controller 10: panning stereofonico di un suono! Controller a switch (valore ON/OFF)! 64 (DAMPER PEDAL): pedale sostegno (ON/OFF)! 123 (ALL NOTES OFF): spegne tutti i NoteOn attivi 37
Riassunto Voice Messages 38
MIDI Message Formats Key Up Key Down Polyphonic Aftertouch Control Change Program Change Channel Aftertouch Pitch Bend System Exclusive 8 ch key# vel 9 ch key# vel A ch key# press B ch ctrl# value C ch index# D ch press E ch lo 7 hi 7 F 0 F E DATA 39
Channel Mode Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive Message descrivono il modo in cui un generatore di suoni interpreta i comandi NoteOn/NoteOff che riceve monofonia/polifonia, singolo canale/tutti i canali 40
I modi! Configurazioni sulla base delle quali i dispositivi MIDI interpretano le informazioni relative ai canali! Modalità con cui trattare il messaggio! Un expander può generare più suoni in contemporanea (voci) e con più timbri! numero di voci possibili = grado di polifonia! voci di strumenti diversi = grado di politimbrica 41
OMNI ON/OFF! OFF: il device risponde ai messaggi appartenenti al singolo canale prescelto! ON: il device risponde ai messaggi appartenenti a tutti i canali 42
POLY/MONO! il device risponde monofonicamente o polifonicamente ai singoli canali MIDI! MONO: suona una nota singola per canale! POLY: suona più note per canale (numero limitato dalle limitazioni HW) 43
Combinazioni di modi! OMNI ON + POLY (usato in fase di test del sistema)! OMNI ON + MONO (non usato)! OMNI OFF + POLY (un canale con il massimo grado di polifonia permesso dall HW)! OMNI OFF + MONO! Modo multi : pensato per gli strumenti multitimbrici! Ogni patch riceve i dati di un singolo canale (da cui il nome omni off)! In origine la risposta delle patch era monofonica (da cui mono), ora il modo multi è polifonico 44
System Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message System Exclusive Message si riferiscono a tutti i device non includono quindi un numero di canale sono utili per la sincronizzazione di più device 45
Esempio di messaggi di sistema! Status byte: 1111 xxxx! Poiché sono diretti a tutti i sistemi su tutti i canali, il secondo nibble non specifica il canale, ma i diversi messaggi di sistema! Esempio:! Più device con sequencer interno (pad + tastiera) memorizzano sequenze di dati MIDI! MIDI song memorizzata a pezzi su due device! batteria memorizza la parte di batteria della song! tastiera memorizza la parte armonica e melodica! Si definiscono master & slave device! es. master batteria; slave tastiera! START sulla batteria, anche tastiera parte 46
System Common Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message messaggi comuni a tutto il sistema System Exclusive Message 47
Song Position Pointer! status byte: 1111 0010! 2 data byte: 0LLL LLLL 0MMM MMMM! 14 bit per indicare i beats dall inizio della song 214 posizioni diverse! Indica il punto interno alla Song dove posizionare il puntatore! Registrazione o riproduzione iniziano da qual punto Song Select! status: 1111 0011! data: 0SSS SSSS! seleziona una di 128 song possibili che un device può avere memorizzate! il messaggio cambia la song corrente 48
System Real Time Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message messaggi di sincronizzazione tra i device System Exclusive Message 49
Sincronismo tra i moduli! MIDI Clock è sincronizza l intero sistema! Viene generato dal master 24 volte per beat! Controlla l avanzamento degli slave! Status Byte: 11110000! Nessun Data Byte! Start/Continue/Stop dal master! Start (11111010) tutti i dispositivi si alla locazione iniziale della song corrente! Stop (11111100) blocca l operazione in corso (play o rec)! Continue (11111011) riprende l operazione sospesa con stop! Active Sensing! (11111111) mantiene attiva la connessione tra master e slave! Inviato ogni 300 ms! Se non viene ricevuto nessun byte (neppure l Active Sensing) la comunicazione viene interrotta! System Reset! Riporta tutti i dispositivi ai valori predefiniti 50
System Exclusive Messages Message Type Channel Message System Message Channel Voice Message Channel Mode Message System Common Message System Real Time Message messaggi esclusivi per device speciali System Exclusive Message 51
Messaggi esclusivi dei costruttori! Espedienti per comunicare qualsiasi cosa! Di solito rivolti ai device di qualche particolare costruttore! Struttura! Status byte: 1111 0000! ID byte: 0DDD DDDD (codice del costruttore)! data bytes: quanti ne occorrono! EOX byte: 1111 0111 (status byte finale) 52
General MIDI! General MIDI mode:! regola a priori la corrispondenza canali, patch timbri (preset)! es. canale 4: melodia, canale 10: percussioni! Presets per Program change! es. 2 per piano elettrico 53
Altri standard! Limitazione di GM: max 128 strumenti e controller! Roland GS (General Standard)! messaggio Bank Select (aumenta i preset)! controllo di effetti audio e parametri del suono! Yamaha XG! strumenti, effetti, drum kit estesi! scalabilità: approssimazione di messaggi non interpretati correttamente 54
Standard MIDI File (SMF)! Nasce nel 1988! Formato per memorizzare sequenze MIDI (song)! Riconosciuto da tutti i programmi musicali! sequencer! programmi per la stampa di partiture! Contiene informazioni necessarie per l esecuzione 55
Lo Standard MIDI File (SMF)! Motivazioni! Assente nel protocollo MIDI il concetto di tempo! La gestione del tempo è affidata all esecutore o al sequencer, i quali Generano i messaggi in ben precisi istanti! Lo Standard MIDI File (SMF)! Formato di memorizzazione e di scambio di brani musicali! Sequenza di messaggi MIDI intercalati da informazioni sul ritardo di emissione! Contiene informazioni necessarie per l esecuzione! Riconosciuto da tutti i programmi musicali! sequencer! programmi per la stampa di partiture 56
Esempio Assunzione: una semiminima vale 1 sec (cioè 100 centesimi) L informazione tempo non è del protocollo MIDI Informazione aggiuntiva dell intervallo tra un messaggio e il successivo: il MIDI file Messaggio Bytes Tempo NoteOn0 90 4A 30 0 NoteOn1 91 40 30 0 NoteOff1 91 40 00 50 NoteOff0 90 4A 00 75 NoteOn1 91 41 30 100 NoteOff1 91 41 00 150 NoteOn0 90 48 30 150 NoteOff0 90 48 00 175 NoteOn0 90 47 30 200 NoteOn1 91 43 30 200 NoteOff1 91 43 00 225 NoteOff0 90 47 00 250 NoteOn1 91 41 30 250 NoteOff1 91 41 00 275 NoteOn0 90 47 30 300 NoteOn1 91 43 30 57
Il tempo! Ogni evento MIDI è preceduto da un numero (timestamp) che rappresenta l intervallo di tempo (d-time) che separa un evento dal precedente. Può essere espresso in:! Tick: nel file viene anche specificata la durata DUR (in µs) di un quarto! tempo: DUR = 60.000.000 / BPM! divisione: numero di tick in un quarto,! es. 96 con BPM=120: è 500.000/96 5208 µs! Secondo SMPTE: nel file viene anche specificato il numero di frame/secondo 58
Struttura di un MIDI file! Organizzazione in chunk! due campi iniziali di 4 byte! ID = tipo di chunk tipo lunghezza dati! dimensioni del chunk 4 bytes 4 bytes N bytes! data byte! Due tipi di chunk! header chunk: 14 byte posto all inizio del file! contiene le informazioni del formato, del numero di tracce e della temporizzazione.! track chunk! contiene gli eventi Midi relative ad una singola traccia,! riferimento temporale (δ-time), che esprime il tempo trascorso tra ogni singolo evento, seguito da relativo messaggio 59
Tre tipi di SMF:! Tipo 0 - una sola traccia! General Header: identificazione del file, divisione, tempo metronomico, tempo musicale, chiave,...! Grande compatibilità! Tipo 1 - più tracce simultanee (<= 256)! Il tempo solo sulla prima condiziona tutte le tracce! Intestazione generale (General Header) + intestazioni di traccia! Tipo 2 - più tracce in cascata (<=256)! Scarsa compatibilità utilizzato nelle drum machine! Il tempo su tutte le tracce! Intestazione generale (General Header) + intestazioni di traccia 60
Il Sequencer 61
Interfaccia: Mixer! Muting! Recording! Soloing! Modifiche esecuzione! Key+ Vel+ Time+! Porta! Panning (stereo) 62
Interfaccia: Event List! Tick! Tempo! MeasureBeatTick 63
Interfaccia: Piano Roll 64
Editing! Editing di base! Registrazione! Real time! Step by step! Tempo e quantizzazione 65
Confronto Audio vs. MIDI! Un musicista suona 4 semiminime a un tempo di 60 beat/min (4 sec):! Sintetizzatore MIDI! 16 porzioni di informazione:! 4 inizi, 4 fini, 4 altezze, 4 ampiezze! 3 byte per informazione = 48 byte! Registratore digitale con microfono (stereo)! Fc = 44.1 khz! 44100 x 2 canali x 4 secondi = 352.800 camp.! campioni a 16 bit: 705.600 byte 66
Vantaggio della registrazione MIDI! Sequencer multitraccia MIDI a 48 tracce! costa poche decine di dollari! gestisce 4000 byte/sec! Registratore multitraccia digitale a 48 tracce! costa (decine di) migliaia di dollari! gestisce 4,6 Mb/sec! Rapporto 1 / 1000 sia per costo che per capacità 67
Vantaggio della registrazione digitale! Può registrare qualsiasi suono che un microfono può catturare (inclusa la voce)! Descrive il segnale in tutte le sue sfumature (modulazioni, forma d onda, ), mentre il MIDI è limitato a poche informazioni di controllo! Portabilità della registrazione: cambiando il sintetizzatore, il suono di una registrazione MIDI può cambiare totalmente 68
Schema riassuntivo dei messaggi MIDI Messaggi MIDI Status byte Data byte(s) Channel message System message Channel voice Channel mode System common System Real Time System Exclusive Note-on Note-off Key aftertouch Channel aftertouch Control change Pitch bend Local/remote keyboard control All notes off Reset all controllers Mode select Song position pointer Song select Tune request End system exclusive Quarter frame Midi clock Start Stop Continue Active sensing System reset Program change Bank select
Vantaggi del MIDI! Non è necessario memorizzare i segnali sonori, soltanto i dati gestuali! (I dati MIDI NON sono campioni audio)! Il musicista può cambiare alcuni aspetti dell esecuzione dopo la registrazione! La registrazione non ha distorsione, fruscio,, nonostante tutte le possibili manipolazioni 70
Limiti del MIDI! Baud rate 31250 bit/sec, in 1 sec 500 note: pezzi complessi con molti strumenti richiedono velocità più elevate! Numero limitato di canali, nessun indirizzamento dei device, difficoltà a configurare grandi reti MIDI! ridotto range dei valori (0 -- 127)! Dipendenza dai dati MIDI: arbitrarietà delle patch (ora General MIDI)! Rappresentazione della musica focalizzata per musica pop per tastiera 71