MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

22
MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Transcript of MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Page 1: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

MIDI e computer

Lezione 17

Programmazione MIDI (Prof. Luca A. Ludovico)

Page 2: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Argomenti principali:– Interfacce MIDI per i computer– Implementazione MIDI nelle schede audio– Sintesi FM, Wavetable e SoundFont– Scenari di connessioni MIDI per integrare il computer con gli altri dispositivi

MIDI e Computer

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 3: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Negli studi MIDI moderni, un computer è quasi sempre presente

• Utilità– Disponibilità di risorse di calcolo e di memoria– Versatilità: possibilità di lanciare software dall’uso più disparato

• Sequencing• Emulazione di dispositivi• ...

– Possibilità di collegamento

MIDI e computer

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 4: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Servono a connettere l’elaboratore ai dispositivi MIDI esterni e viceversa– Bidirezionalità della trasmissione?

• Ne esistono principalmente di 4 tipi:– PCI (Peripheral Component Interconnect)– Parallela– Seriale– USB (Universal Serial Bus)

• Ogni tipo ha il suo connettore; possibilità di convertire un’interfaccia in un’altra tramite un adattatore– Attenzione alla temporizzazione e alla sincronizzazione

Interfacce MIDI

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 5: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Ogni interfaccia presenta un ingresso e un’uscita singoli o multipli, ossia una o più porte MIDI

• Ogni porta supporta 16 canali MIDI, quindi un interfaccia multiporta estende il numero di canali gestibili– Esempio: interfaccia MIDI a 8 porte supporta fino a 128 canali

• Quale interfaccia adottare? Dipende…– Dispositivi pre-esistenti– Compatibilità con apparecchiature passate e nuovi standard– Costi ed esigenze

I/O su interfacce MIDI

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 6: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Schede audio PC-compatibili spesso avevano una porta femmina a 15 pin per connettere il joystick

• Connessione utilizzabile anche per il MIDI, tramite cavo adattatore con:– un jack a 15 pin maschio a un’estremità– due jack DIN maschi a 5 pin all’altra estremità (MIDI In e MIDI Out)

• Connessione presente su dispositivi consumer, ad esempio sulle schede Creative Sound Blaster

• Svantaggio: un’unica porta MIDI

Porta giochi

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 7: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Porta giochi: cavo adattatore

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 8: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Porta giochi: schema elettrico

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 9: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Interfacce esterne, raramente usate per il MIDI in quanto i costruttori hanno preferito fin dalle origini la porta joystick

• Tecnologie soppiantate sia nel mondo Mac che nel mondo PC da nuovi protocolli, quali USB o FireWire

• Transfer rate– Seriale a 9 pin: dipende dal chip UART (Universal Asynchronous Receiver/Transmitter). Intervallo: [60 ... 768000] bps– Parallela in modalità Enhanced (EPP): 16 Mbps

Porta seriale e parallela

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 10: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Interfacce seriali e parallele

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 11: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Interfaccia esterna “universale”, disponibile sia su sistemi Mac che PC

• Possibilità (teorica) di collegare fino a 127 dispositivi in catena

• Vantaggi:– Indipendenza dalla piattaforma– Approccio plug-and-play– Collegamento di più dispositivi alla stessa porta

Porta USB (Universal Serial Bus)

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 12: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Sia USB che FireWire presentano transfer rate decisamente sovradimensionati per il MIDI

• Confronto:– MIDI: 31.25 Kbps– USB 1.1: 12 Mbps– USB 2.0: 480 Mbps– FireWire 800: 786.432 Mbps

• Possibili problemi:– Temporizzazione con frequenze di clock differenti

Es.: USB legge con granularità 1 ms– Possibilità di collegamento di dispositivi in cascata, che rallentano la trasmissione e occupano la banda teoricamente disponibile

Protocolli e transfer rate

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 13: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Alcuni protocolli hanno transfer rate sufficiente per supportare più di una porta MIDI

M-AUDIO MIDISPORT 4 x 4Interfaccia MIDI esterna per PC e Mac, via USB, con 4 MIDI In, 4 MIDI Out

Interfacce multi-porta

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 14: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Esistono numerosi software che emulano dispositivi fisici MIDI compatibili

• Per collegare dispositivi virtuali, è possibile fare uso di cavi MIDI virtuali, che trasmettono dati MIDI tra applicazioni software differenti

• Esempio: LoopBe1http://www.nerds.de/en/loopbe1.html

Mette in comunicazione il MIDI Out di un’appli-cazione con in MIDI In di un’altra

Porte MIDI virtuali e strumenti virtuali

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 15: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

• Tipicamente le schede audio con sintetizzatore integrato non sono adeguate alla produzione di suono di qualità professionale

• Qual è la funzione dell’elaboratore? La riproduzione del MIDI non è l’unico scopo, vedi ad es. il sequencing

• Il MIDI nelle schede audio: argomenti correlati– Banco di timbri GM integrato– Wavetable– SoundFont

Schede audio con sintetizzatore integrato

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 16: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Banco di timbri GM

• 128 timbri relativi a un insieme ordinato di strumenti standard

• Garantisce compatibilità, ma con poca varietà timbrica e qualità della sintesi povera

• Si ottiene tramite chip integrato, che può sfruttare più tecniche:– Sintesi FM– Lettura di campioni da Wavetable

In alternativa, alcuni software implementano strumenti GM virtuali (ad es. QuickTime)

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 17: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Wavetable

• Principali sorgenti di suoni per schede audio con sintetizzatore integrato

• Processo simile alla riproduzione di campioni: usano brevi registrazioni di audio digitale come materiale di base per produrre i suoni. Il sintetizzatore integrato non legge semplicemente tali campioni, ma li processa modificando parametri del suono ad es. con opportuni filtri

• Chip di memoria ed espandibilità– Es.: Sound Blaster Live espandibile fino a 64 MB

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 18: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

SoundFont

• Tecnologia sviluppata da Creative Labs ed Emu Systems come wavetable standard

• Possibilità di aggiungere timbri a una scheda audio (purchè SoundFont compatibile); esistono però anche sintetizzatori software compatibili

• Similitudine con i True Type Font per i testi

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 19: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Esempio pratico di utilizzo

• MuseScore: software multipiattaforma e free per l’editing digitale della partitura– Link: http://musescore.org/

• Funzioni di sintesi basate su SoundFont. Il programma propone una libreria GM standard. Confronto:– TimGM6mb.sf2 (5.7 MB)– Acoustic grand piano - Yamaha Disklavier Pro (132 MB)

http://freepats.zenvoid.org/sf2/acoustic_grand_piano_ydp_20080910.sf2

• Come cambiare la libreria in MuseScore: Mostra → Sintetizzatore

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 20: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Risorse online per i SoundFont

• Strumenti software per creare SoundFont:Creative Vienna SoundFont Studio

• Esempi di collezioni scaricabili:– http://soundfonts.homemusician.net/– http://www.hammersound.net/

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 21: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Confronto Wavetable vs. SoundFont

• In entrambi i casi, è possibile ampliare il banco di timbri originario della scheda per:– aumentarne il numero– migliorarne la qualità

• In entrambi i casi, i banchi occupano memoria

• A differenza delle wavetable, i SoundFont non sono caricati nella memoria della scheda audio ma in RAM– Espandibilità del banco limitata solo dalle risorse hw della

macchina

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer

Page 22: MIDI e computer Lezione 17 Programmazione MIDI (Prof. Luca A. Ludovico)

Uscite di una scheda audio

Programmazione MIDI (Prof. Luca A. Ludovico)17. MIDI e computer