La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Messaggi System Exclusive Lezione 10 Programmazione MIDI (Prof. Luca A. Ludovico)

Presentazioni simili


Presentazione sul tema: "Messaggi System Exclusive Lezione 10 Programmazione MIDI (Prof. Luca A. Ludovico)"— Transcript della presentazione:

1 Messaggi System Exclusive Lezione 10 Programmazione MIDI (Prof. Luca A. Ludovico)

2 Categorie di funzioni MIDI Channel Voice Messages –Eventi MIDI essenziali per la performance musicale (es.: Note On, Note Off) Channel Mode Messages –Comunicano ai dispositivi il modo di inviare o ricevere informazioni (es.: spegnimento di tutte le note) System Common Messages –Messaggi comuni a tutti i dispositivi HW/SW della configurazione MIDI (es.: riferimento al MIDI Time Code, accordatura) System Real Time Messages –Messaggi in tempo reale (es.: start e stop) System Exclusive Messages –Impostazioni specifiche per il dispositivo (es.: trasferimento campioni) Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive

3 Messaggi System Exclusive Tutti i messaggi finora analizzati si rivolgono a un qualsiasi dispositivo MIDI compatibile I messaggi System Exclusive si utilizzano per inviare dati specifici a determinati dispositivi MIDI, per funzioni generalmente subordinate al produttore I messaggi sono detti System Exclusive perché tutti gli altri dispositivi risultano esclusi dalla comunicazione –Il dispositivo ricevente può processare il messaggio, se lo riconosce come indirizzato a se stesso; in caso contrario lo ignora Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive

4 Invio di un SysEx a un dispositivo specifico Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive SysEx per Roland SD-50

5 Struttura generale dei messaggi Tutti i messaggi SysEx iniziano e terminano in modo standard, tramite una coppia di messaggi SysEx – End of SysEx –Gli identificativi sono messaggi System Common –Non cè informazione di canale (identificativo del comando occupa i 7 bit, come per tutti i messaggi System Common) Tra linvio di questa coppia di byte di stato può essere spedito un qualsiasi numero di byte di dati (a 7 bit), da qualche unità a migliaia. –Attenzione: la sequenza (lunga?) non può essere interrotta Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive … MIDI Out o MIDI Thru MIDI InByte di stato Inizio SysEx F0 16 … Byte di stato Fine SysEx F7 16

6 Messaggi System Exclusive Alcuni parametri dei dispositivi MIDI non possono essere impostati e non sono identificabili tramite messaggi dello standard MIDI –perché sono specifici di un dispositivo o di una certa implementazione del dispositivo da parte di un determinato produttore –perché lo standard MIDI originario non aveva previsto di impostarli e/o identificarli tramite messaggi convenzionali In questi casi, la soluzione è adottare messaggi MIDI System Exclusive. Per rispondere alle due esigenze sopra esposte, esistono due categorie di SysEx. Piè di pagina: spazio libero per eventuale nome struttura o altro

7 Categorie di SysEx 1.SysEx del produttore 2.SysEx universali 1.In tempo reale 2.Non in tempo reale In entrambi i casi, i SysEx si usano per veicolare informazioni non incluse in altri messaggi MIDI. La prima categoria si rivolge a uno specifico dispositivo, mentre la seconda (potenzialmente) a tutti i dispositivi nel sistema. Piè di pagina: spazio libero per eventuale nome struttura o altro

8 Struttura dei messaggi SysEx del produttore I messaggi SysEx contengono 8 parti (nel caso di Roland 9 parti), ciascuna con un ruolo specifico Nel diagramma sotto riportato, il riquadro con angoli arrotondati non identifica (come di consueto) un singolo byte di dati, ma un insieme di byte di dati la cui numerosità è scritta allinterno Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 1 byte 1 o 3 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte 3 byte ? 1 byte 9 (8) ID produttore ID dispositivo ID modello Comando Invio Ricezione Indirizzo iniziale Valore dei dati Valore di somma di controllo Roland Parti

9 Esempio La parte 2 distingue un prodotto Korg da un prodotto Yamaha La parte 3 distingue il primo dispositivo Yamaha dal secondo dispositivo Yamaha nella catena (i valori di ID dispositivo possono essere impostati in fase di setup del sistema) La parte 4 distingue il Roland JV-1080 dal Roland D-50 La parte 8 esiste solo per i dispositivi Roland Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 1 byte 1 o 3 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte 3 byte ? 1 byte 9 (8) ID produttore ID dispositivo nella catena (Device ID) ID modello (Model ID) Comando Invio Ricezione Indirizzo iniziale Valore dei dati Valore di somma di controllo Roland Parti

10 Identificazione del produttore Qualsiasi azienda lo desideri può ottenere un ID univoco per messaggi SysEx, assegnato dal MIDI Manufacturers Association (MMA) Lelenco completo è disponibile alla pagina Esempio: i byte della parte 2 in esadecimale valgono –41 16 per Roland (1 byte) –42 16 per Korg (1 byte) – A 16 per Nvidia (3 byte) Piè di pagina: spazio libero per eventuale nome struttura o altro

11 Identificazione dellid del dispositivo e del modello Dedicando 1 byte di dati a ciascuna delle informazioni, teoricamente si possono indirizzare solo 128 dispositivi nella catena, e 128 modelli per produttore. Esistono però dei valori standard: –Ad esempio, Roland di default assegna a tutti i dispositivi Device ID = –Ad esempio, Roland di default assegna ai propri synth con standard GS un Model ID = Piè di pagina: spazio libero per eventuale nome struttura o altro

12 Patch change in un synth GS di Roland Messaggio (in esadecimale, raggruppato in parti) F F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 41ID del produttore Roland Parte 3: 10ID del dispositivo nella catena Parte 4: 42ID del modello: generico synth GS Parte 5: 12ID del comando Send o Dump; 12 per linvio, 11 per la richiesta Parte 6: Indirizzamento del parametro Parte 7: 08 01Dati da inviare: patch change Parte 8: 26Somma di controllo Roland. Algoritmo: Sommare tutti i valori delle parti 6 e 7, convertite in base 10, Effettuare la divisione intera per 128 e sottrarre il resto ottenuto da 128 Nellesempio: = 90; 90 / 128 = 0 con resto 90; 128 – 90 = = Parte 9: F7Status byte di fine SysEx Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 1 byte 1 o 3 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte 3 byte ? 1 byte ID produttore ID dispositivo ID modello Comando Invio Ricezione Indirizzo iniziale Valore dei dati Valore di somma di controllo Roland

13 Tipo di riverbero in un Roland JV-1080 Messaggio (in esadecimale, raggruppato in parti) F A F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 41ID del produttore Roland Parte 3: 10ID del dispositivo nella catena Parte 4: 6AID del modello JV-1080 Parte 5: 12ID del comando Send o Dump; 12 per linvio, 11 per la richiesta Parte 6: Indirizzamento del parametro di riverbero Parte 7: 28 06Rispettivamente tipo di riverbero (28 -> delay) e valore da impostare Parte 8: 51Somma di controllo Roland. Algoritmo: Sommare tutti i valori delle parti 6 e 7, convertite in base 10, Effettuare la divisione intera per 128 e sottrarre il resto ottenuto da 128 Nellesempio: = 47; 47 / 128 = 0 con resto 47; 128 – 47 = = Parte 9: F7Status byte di fine SysEx Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 1 byte 1 o 3 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte 3 byte ? 1 byte ID produttore ID dispositivo ID modello Comando Invio Ricezione Indirizzo iniziale Valore dei dati Valore di somma di controllo Roland

14 SysEx universali Comuni a tutti i produttori, quindi non riservati ad alcun produttore specifico e utilizzabili da qualsiasi dispositivo MIDI adeguato Sono comunque SysEx in quanto delimitati allinizio e alla fine da byte F0 (Start SysEx) e F7 (End SysEx) Utilizzati per estensioni allo standard MIDI Lelenco completo è disponibile allindirizzo: Piè di pagina: spazio libero per eventuale nome struttura o altro

15 Esempi duso di SysEx universali Abilitare/disabilitare la modalità GM (General MIDI) nei moduli sonori compatibili Impostare il volume master dei dispositivi multitimbrici –Per il volume dei singoli canali, esiste il messaggio Control Change 7 Comunicare lo schema di connessione con altri dispositivi Scambiare dati relativi a forme donda di audio digitale tra campionatori Piè di pagina: spazio libero per eventuale nome struttura o altro

16 Struttura dei messaggi SysEx universali Non è più necessario nella parte 2 identificare il produttore; il primo byte di dati si imposta a 7E per i messaggi non real-time e a 7F per i messaggi real-time Sub-ID 1 definisce la categoria della funzione SysEx, mentre Sub-ID 2 aggiunge precisione a tale funzione; il valore da impostare si trova nella parte successiva (parte 6) Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 1 byte 1 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte ? Non real-time o real-time ID dispositivo o ID canale Sub-ID 1Sub-ID 2Valore dei dati Parti

17 Valori per Sub-ID 1 (in esadecimale) Non in real-time –01 Sample dump header –02 Sample data packet –03 Sample dump request –04 MTC for cueing purpose –05 Sample dump extensions –06 General information –07 File dump –08 MIDI tuning standard –09 General MIDI –7B End of File –7C Wait –7D Cancel –7E NAK (ricezione errata) –7F ACK (ricezione corretta) In real-time –01 MTC full message –02 MIDI Show Control –03 Notation Information –04 Device control –05 Real-time MTC cueing –06 MMC (MIDI Machine Control) commands –07 MMC responses –08 MIDI tuning standard Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive

18 Esempio: modalità General Midi On su dispositivi XG Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Messaggio (in esadecimale, raggruppato in parti) F0 16 7E 16 7F F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 7ESysEx non Real-Time universale Parte 3: 7FRisposta del dispositivo su tutti i canali, ossia nessun filtraggio Parte 4: 09General MIDI Parte 5: 01Abilitato (in alternativa: 00 Disabilitato) Parte 6: ---Si noti lassenza di una Parte 6 Parte 7: F7Status byte di fine SysEx 1 byte 1 byte MIDI Out o MIDI Thru MIDI In Byte di stato Inizio SysEx Byte di stato Fine SysEx byte ? Non real-time o real-time ID dispositivo o ID canale Sub-ID 1Sub-ID 2Valore dei dati Parti

19 Registrazione messaggi SysEx Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Dove? Tipicamente in un sequencer Perchè? Due finalità: 1.Salvare tutti i dati del setup corrente per ripristinare in un secondo momento lo stato del/i dispositivo/i (bulk dump) 2.Memorizzare codici per istruire lo strumento a cambiare uno dei propri parametri durante lesecuzione Esempio: frequenza di taglio di un filtro, decay di un riverbero, ecc.

20 Esempio di bulk tuning dump (richiesta) Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Richiesta da parte di un dispositivo sorgente a un dispositivo destinatario di inviare le informazioni sul tuning (accordatura fine) Bulk tuning dump request: F0 16 7E tt F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 7E SysEx non Real-Time universale Parte 3: ID del dispositivo destinatario Parte 4: 08Sub-ID#1 MIDI Tuning Parte 5: 00Sub-ID#2 bulk dump request Parte 6: tt Numero del programma di tuning [0..127] Parte 7: F7 Status byte di fine SysEx Il dispositivo destinatario risponde come mostrato nella slide successiva

21 Esempio di bulk tuning dump (risposta) Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Il messaggio di risposta include valori di frequenza espressi su 3 byte inviati ordinatamente per ciascuno dei 128 pitch MIDI Bulk tuning dump reply: F0 16 7E tt tn [xx yy zz] chksum F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 7E SysEx non Real-Time universale Parte 3: ID del dispositivo destinatario Parte 4: 08Sub-ID#1 MIDI Tuning Parte 5: 01Sub-ID#2 bulk dump reply Parte 6: tt Numero del programma di tuning [0..127] tn16 caratteri ASCII per definire il nome dellaccordatura [xx yy zz]dati sulla frequenza di ogni singola nota (ripetuti 128 volte) chksumsomma di controllo Parte 7: F7 Status byte di fine SysEx

22 Esempio: comandi MMC Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive MIDI Machine Control: protocollo per mettere in comunicazione dispositivi di registrazione basati su SMPTE con sequencer MIDI (vedi lezione 8) Formato standard: F0 16 7F command F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 7F SysEx Real-Time universale Parte 3: ID del dispositivo destinatario Parte 4: 06General Information Parte 5: - Parte 6: commandVedi slide successiva Parte 7: F7 Status byte di fine SysEx

23 Esempio: comandi MMC Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive 01 Stop 02 Play 03 Deferred Play 04 Fast Forward 05 Rewind 06 Record Strobe (Punch In) 07 Record Exit (Punch out) 08 Record Ready (Record Pause) 09 Pause 0A Eject 0B Chase 0D MMC Reset 40 Write 44 Locate/Go to 47 Shuttle

24 Esempio di Goto in MMC Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Il messaggio serve a posizionare la riproduzione/registrazione in un punto specifico, codificato in SMPTE F0 16 7F hr mn sc fr ff F7 16 Parte 1: F0Status byte di inizio SysEx Parte 2: 7F SysEx Real-Time universale Parte 3: ID del dispositivo destinatario Parte 4: 06Sub-ID#1 General Information Parte 5: - Parte 6: 44 Comando LOCATE 06Numero di byte seguenti 01Sottocomando TARGET hr ore, da 0 a 23 (in base 10) mn minuti, da 0 a 59 (in base 10) sc secondi, da 0 a 59 (in base 10) fr fotogrammi, da 0 a 29 (in base 10) ff sottoframe o frazioni di fotogramma, da 0 a 99 (in base 10) Parte 7: F7 Status byte di fine SysEx

25 Approfondimenti Programmazione MIDI (Prof. Luca A. Ludovico) 10. Messaggi System Exclusive Libreria di messaggi SysEx del produttore compilata da utenti Uso di SysEx universali per il micro-tuning (accordatura degli strumenti per scale differenti da quelle del sistema temperato) Tutorial sui SysEx SysEx relativi al MIDI Machine Control


Scaricare ppt "Messaggi System Exclusive Lezione 10 Programmazione MIDI (Prof. Luca A. Ludovico)"

Presentazioni simili


Annunci Google