Elementi di informatica musicale Conservatorio G. Tartini a.a. 2001-2002 Musical Instrument Digital Interface (MIDI) Ing. Antonio Rodà Musical Instrument Digital Interface Segnali di controllo vs. segnale audio Trasmette i messaggi di controllo necessari a generare la musica, non il segnale audio vero e proprio I messaggi di controllo includono indicazioni come suona la nota x, seleziona il timbro y, oppure cambia il parametro z Nel MIDI esistono vari tipi di messaggi. Una sequenza di messaggi nota definisce una melodia, mentre altri tipi di messaggi permettono di controllare alcuni parametri del suono. Il timbro del suono, però, non è esplicitamente codificato nel MIDI. La scelta della tecnica di sintesi e dei parametri di sintesi da utilizzare sono demandati al dispositivo ricevente. Ciò significa che gli stessi messaggi MIDI inviati a due diversi sintetizzatori produrranno risultati sonori differenti. 1
Potenzialità del MIDI 1/2 Separa il dispositivo di input (es. una tastiera musicale) da quello per la generazione del suono (es. un sintetizzatore o un campionatore) non è più necessario avere una tastiera per ogni sintetizzatore, ma un unica tastiera può controllare contemporaneamente più sintetizzatori. Un sintetizzatore può essere controllato da più dispositivi di input (es. breath controller, drum pad, chitarra MIDI, ecc.) Anche un microfono può diventare un dispositivo di input se collegato ad un convertitore pitch-to-midi. Potenzialità del MIDI 2/2 Software per l elaborazione della musica (editing di partiture, composizione di brani musicali, performance interattiva) possono essere eseguiti su un computer e poi trasmettere i risultati ad un sintetizzatore esterno. Viceversa, la musica può essere creata su un sintetizzatore esterno e poi essere trasmessa su computer per le fasi di editing e di memorizzazione. I messaggi MIDI possono essere utilizzati anche per controllare dispositivi generatori di effetti audio (riverbero, delay, ecc.) oppure mixer audio. E possibile sincronizzare sintetizzatori con altri media, permettendo così la riproduzione simultanea di audio e video. Permette lo scambio di partiture, sequenze musicali, campioni audio tra dispositivi costruiti da aziende differenti. 2
MIDI Hardware L hardware MIDI implementa un protocollo per la trasmissione di segnali binari. La velocità di trasmissione è 31,250 Kbit/sec. Su un dispositivo i messaggi vengono ricevuti e trasmessi attraverso una porta MIDI. La configurazione base prevede tre connettori: IN, OUT e THRU. Ogni connettore è composto da un DIN Jack a 5 pin. Canali MIDI Il protocollo MIDI consente di inviare messaggi su uno dei sedici canali disponibili I differenti canali non sono delle connessioni fisicamente distinte. Un canale MIDI può essere pensato come un indirizzo elettronico, che specifica il destinatario (o i destinatari) di un certo pacchetto di informazioni Per superare il limite dei sedici canali, sono stati implementati dispositivi ed interfacce MIDI in grado di supportare una gestione multiporta. Utilizzando dei messaggi non standard questi dispositivi sono in grado di indirizzare i messaggi su porte MIDI differenti, permettendo la gestione di un numero molto elevato di canali. 3
Messaggi MIDI Il flusso di dati MIDI può essere diviso in byte che contengono dati (data bytes) e byte che specificano il significato di tali dati (status byte). Ogni messaggio, quindi, è composto da uno status byte e da uno o più data bytes, a seconda del tipo di status 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. I channel message sono a loro volta classificabili in Channel Voice e Channel Mode. I Channel Voice trasmettono le informazioni relative alle note da suonare e ai parametri del suono Messaggi MIDI 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) 4
Voice Message 1/2 Note-on: corrisponde all azione di premere un tasto sulla tastiera. Poiché ci sono 128 valori disponibili, il MIDI può coprire quasi 11 ottave. Il key number 60 corrisponde al DO centrale della tastiera, quello che, a seconda dei costruttori di tastiere viene indicato con C3, C4 o C5. Normalmente esso corrisponde al DO sotto il pentagramma della chiave di violino La key velocity indica con quanta forza un tasto è stato premuto: normalmente una velocity alta è associata ad una sonorità forte, mentre una velocity bassa è associata al piano. E importante notare che questi concetti sono legati all intensità del suono e non solo al suo volume. Questo comporta che nei sintetizzatori più evoluti i valori di key-velocity non influenzano solo il volume (più o meno alto), ma vengono anche utilzzati per controllare lo spettro del suono, ad esempio agendo sulla frequenza di taglio dei filtri Note-off: corrisponde all azione di rilasciare un tasto sulla tastiera Voice Message 2/2 Key aftertouch: corrisponde alla pressione di un dito sulla tastiera dopo che il tasto è stato premuto Channel aftertouch: trasmette la pressione media applicata su tutti i tasti premuti Control change: informa il dispositivo ricevente che la posizione di un continuous controller (cursori, leve, potenziometri, pedali, ecc.) sta cambiando Pitch bend: viene associato a cambiamenti nella frequenza fondamentale del suono (pitch). Il range di variazione dipende dai settaggi interni al sintetizzatore, ma normalmente è di +-1 tono. Program change: consente di cambiare il programma (patch) di un determinato canale MIDI. Consente, in un sintetizzatore, di passare ad esempio da un timbro di piano ad uno di organo Bank select: consente di passare da un gruppo (bank) di patch all altro. Questo comando è utile nel caso il sintetizzatore o il multieffetto possieda più di 128 programmi. 5
Un esempio La sequenza: 10010000 01000000 00010010 corrisponde all abbassamento del tasto 64 (MI centrale) con key-velocity 18 Schema riassuntivo dei messaggi MIDI Messaggi MIDI Status byte Data byte(s) Channel message message Channel voice Channel mode common Real Time Exclusive Note-on Note-off Key aftertouch Channel aftertouch Control change Pitch bend Program change Bank select 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 reset 6
Sincronizzazione Midi Clock - Serve per sincronizzare più dispositivi MIDI (es. due sequencer). Equivale al direttore d orchestra che batte il tempo ai musicisti. Nel MIDI vengono inviati 24 messaggi di clock ogni quarto. MIDI Timecode - Serve per sincronizzare dispositivi MIDI con altri media (es. sincronizzazione audio-video). In questo caso è necessario un riferimento assoluto in ore, minuti, secondi: SMPTE timecode generator. Nel 1987 è stato introdotto il MIDI Timecode (MTC), che serve a convertire segnali SMPTE in messaggi MIDI. Si noti che con MTC si riesce ad ottenere una risoluzione di circa 1-2ms, sufficiente per sincronizzare audio con video, ma non per sincronizzare audio multitraccia. 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. stabilisce una corrispondenza tra program change e timbri musicali) 7