Concetti fondamentali
Lezione 2
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
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Connettore jack DIN a 5-pin
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.
Questa configurazione può portare segnali in un’unica direzione, quindi per garantire comunicazione bidirezionale è necessario un secondo cavo.
Specifiche elettriche MIDI-DIN: connettori std
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Connessione di porte MIDI con UART
Lo UART o Universal Asynchronous Receiver-Transmitter (ricevitore-trasmettitore 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/electrispec.php
Specifiche elettriche MIDI-DIN: porta joystick
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Joystick/MIDI Adapter Diagram
Tratto da: http://www.midi.org/techspecs/electrispec.php
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
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
MIDI In, Out e Thru
Porta MIDI
Porte MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Cakewalk UM-3G USB MIDI Interface
Micro R&D Pyramid MIDI
Daisy chaining
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Master Slave 1 Slave 2
MIDI In MIDI InMIDI Out MIDI Thru
• 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
...
Slave n
MIDI Thru
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
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
MIDI In MIDI InMIDI Out
MIDI Thru
MIDI In
MIDI In
MIDI Thru
MIDI Thru
MIDI Expander/Thru box
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
MIDI Expander Yamaha YME8
Gerarchia MIDI
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
• 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
Broadcasting
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Broadcasting
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Broadcasting e daisy chaining
Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali
Computer o Sequencer
Synth AChannel 1
Synth BChannel 2
TastieraChannel 4
MIDI Thru MIDI In MIDI In MIDI InMIDI Thru MIDI Thru
Channel 1: Synth AChannel 2: Synth BChannel 4: TastieraChannel 10: Ritmica
Drum MachineChannel 10
MIDI In
MIDI Out
SESSIONE DIMOSTRATIVACollegamento di tastiera e sintetizzatore
Programmazione MIDI (Prof. Luca A. Ludovico)5. Messaggi Control Change
Top Related