Lezione 2 Concetti fondamentali Programmazione MIDI (Prof. Luca A. Ludovico) Acronimo • MIDI = Musical Instrument Digital Interface • Interfaccia digitale per strumenti musicali • Dispositivi hardware MIDI • Sequencer ed altri software MIDI • Formato General MIDI e standard MIDI file Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Il connettore MIDI Le applicazioni standard usano solo 3 connettori: il filo di messa a terra e una coppia di conduttori bilanciati che portano un segnale da +5V. Connettore jack DIN a 5-pin Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Questa configurazione può portare segnali in un’unica direzione, quindi per garantire comunicazione bidirezionale è necessario un secondo cavo. Specifiche elettriche MIDI-DIN: connettori std Connessione di porte MIDI con UART Lo UART o Universal Asynchronous Receiver-Transmitter (ricevitoretrasmettitore asincrono universale) è un dispositivo hardware che converte flussi di bit di dati da un formato parallelo a un formato seriale asincrono o viceversa. Tratto da: http://www.midi.org/techspecs/electri spec.php Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Specifiche elettriche MIDI-DIN: porta joystick Joystick/MIDI Adapter Diagram Tratto da: http://www.midi.org/techspecs/electrispec.php Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Protocollo di trasmissione: seriale vs parallela • La trasmissione seriale è una modalità di comunicazione tra dispositivi digitali nella quale le informazioni sono comunicate una di seguito all'altra e giungono sequenzialmente al ricevente nello stesso ordine in cui le ha trasmesse il mittente. – Modalità sincrona: 2 fili (uno per i dati, uno per il clock) + terra – Modalità asincrona: il trasmettitore ed il ricevitore si sincronizzano usando i dati stessi, ma meno efficiente perché richiede l’invio di bit di partenza, di parità e tempo di stop • Nella trasmissione parallela vengono utilizzati più conduttori per trasmettere simultaneamente informazioni. Per trasmettere n bit il cavo è formato da almeno n conduttori separati. Nella realtà il cavo sarà dotato quasi sicuramente di un cavo aggiuntivo per la massa e anche di altri cavi di controllo come quello di clock. Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Perché MIDI è seriale? • Nonostante la maggior complessità architetturale e gestionale rispetto alla trasmissione parallela, la modalità seriale è una delle più diffuse in ambito informatico perché: – richiede un minor numero di fili con conseguente riduzione dei costi – è più tollerante rispetto alle interferenze e agli errori di trasmissione • Velocità di trasmissione MIDI: 31250 bps = ca. 3906 Byte/s – Audio digitale: 44100 x 16 bits x 2 = 1141200 bps = 176400 Byte/s • Velocità adeguata? Contando i bit di ridondanza (2 per 8 bit di dati), si hanno 3125 pacchetti MIDI al secondo – Non si tratta esattamente di note e nemmeno di messaggi, che richiedono più pacchetti – Attenzione: è comunque seriale! Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Jack MIDI in configurazione standard Porta MIDI MIDI In, Out e Thru Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Porte MIDI Cakewalk UM-3G USB MIDI Interface Micro R&D Pyramid MIDI Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Daisy chaining ... MIDI Out MIDI In Master MIDI Thru Slave 1 MIDI In MIDI Thru Slave 2 Slave n • Un dispositivo si definisce master quando controlla uno o più dispositivi slave – Esempio in figura: un controller di tipo tastiera pilota più sintetizzatori • Attenzione: uso di MIDI In, Out e Thru Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Limiti del daisy chaining • Ritardi dovuti alla lunghezza dei cavi • Ritardi dovuti alla circuiteria • Fenomeni di ingolfamento – MIDI data clog o MIDI choking • Esempio • Soluzione: MIDI Thru box Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali MIDI Expander/Thru box MIDI In MIDI Thru MIDI Thru MIDI Out MIDI In MIDI In MIDI Thru MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali MIDI Expander/Thru box MIDI Expander Yamaha YME8 Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Gerarchia MIDI • Porta MIDI o bus MIDI (unione di In, Out e Thru) – Non necessariamente tutte presenti, e presenti con questa cardinalità: dipende dal dispositivo! • Canali MIDI: 16 canali per porta, numerati da 1 a 16 • Dispositivi multi-uscita e multi-porta – Multi-uscita: replicano i 16 canali MIDI su ciascuna uscita n uscite > 16 canali disponibili (replicati n volte) – Multi-porta: presentano porte MIDI indipendenti n uscite > n x 16 canali disponibili indipendenti • Esempi: – – Cakewalk UM-3G USB MIDI Interface > multiporta (3 porte) MIDI Expander/Thru box > multiporta (2 porte) e multiuscita (4 uscite per porta) Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Broadcasting Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Broadcasting Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali Broadcasting e daisy chaining Sequencer Channel 1: Synth A Channel 2: Synth B Channel 4: Tastiera Channel 10: Ritmica MIDI Out MIDI In MIDI Thru Drum Machine Channel 10 Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali MIDI In MIDI Thru Synth A Channel 1 MIDI In MIDI Thru Synth B Channel 2 MIDI In Tastiera con funz. di sintesi Channel 4 Broadcasting e daisy chaining Sequencer Channel 1: Synth A e B Channel 2: Channel 4: Tastiera Channel 10: Ritmica MIDI Out MIDI In MIDI Thru Drum Machine Channel 10 Programmazione MIDI (Prof. Luca A. Ludovico) 2. Concetti fondamentali MIDI In MIDI Thru Synth A Channel 1 MIDI In MIDI Thru Synth B Channel 1 MIDI In Tastiera con funz. di sintesi Channel 4 Collegamento di tastiera e sintetizzatore SESSIONE DIMOSTRATIVA Programmazione MIDI (Prof. Luca A. Ludovico) 5. Messaggi Control Change