Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

18
Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Transcript of Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Page 1: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Concetti fondamentali

Lezione 2

Programmazione MIDI (Prof. Luca A. Ludovico)

Page 2: 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

Page 3: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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.

Page 4: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 5: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 6: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 7: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 8: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Jack MIDI in configurazione standard

Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali

MIDI In, Out e Thru

Porta MIDI

Page 9: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Porte MIDI

Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali

Cakewalk UM-3G USB MIDI Interface

Micro R&D Pyramid MIDI

Page 10: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 11: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 12: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 13: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

MIDI Expander/Thru box

Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali

MIDI Expander Yamaha YME8

Page 14: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 15: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Broadcasting

Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali

Page 16: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

Broadcasting

Programmazione MIDI (Prof. Luca A. Ludovico)2. Concetti fondamentali

Page 17: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

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

Page 18: Concetti fondamentali Lezione 2 Programmazione MIDI (Prof. Luca A. Ludovico)

SESSIONE DIMOSTRATIVACollegamento di tastiera e sintetizzatore

Programmazione MIDI (Prof. Luca A. Ludovico)5. Messaggi Control Change