Messaggi System Common e System Real Time

Slides:



Advertisements
Presentazioni simili
Rappresentazioni numeriche
Advertisements

INGRESSI E USCITE.
MULTIVIBRATORI BISTABILI
Informatica Generale Susanna Pelagatti
Informatica Generale Marzia Buscemi IMT Lucca
Convertitori D/A e A/D Enzo Gandolfi.
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
Esercitazione su SMF Lezione 14
Inserimento rapido e HyperScribe
Messaggi System Exclusive
Sistemi di numerazione
RTP MIDI – parte 2 Lezione 16
Network Musical Performance: RTP MIDI
Concetti fondamentali
Messaggi Control Change
Messaggi Channel Voice
Sincronizzazione Lezione 8
Hard disk.
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
UNIVERSITA’ DEGLI STUDI DI TRIESTE FACOLTA’ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA A.A / 2005 Tesi di Laurea Triennale SVILUPPO.
Tipologie di Controlli in Ambito Industriale
Sequential Function Chart (SFC)
Introduzione ai circuiti sequenziali
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
CONVERSIONE ANALOGICO-DIGITALE, A/D
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
ANALOGICO-DIGITALI (ADC) DIGITALE-ANALOGICI (DAC)
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 3 Codifica binaria.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Rappresentazione dellinformazione su calcolatore Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Flip-flop e Registri.
Introduzione ai PLC.
Conversione Analogico/Digitale
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Convertitore A/D e circuito S/H
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 3 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Cos’è una sequenza? Una sequenza è una successione finita di valori, dove ogni valore ha una durata prefissata e costante (T). I valori della sequenza.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Cassaforte Asincrona di Mealy
microcontrollori PIC by prof. Romei Michele
RAPPRESENTAZIONE DELL'INFORMAZIONE
Modulo 2 – U.D. 1 – Lez. 2 Ernesto Damiani – Sistemi di elaborazione dell'informazione.
Dispositivi MIDI in Java
Architettura del calcolatore
TC 8253 TIMER COUNTER Prof. Marco Solarino.
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
TCP/IP.
Unità centrale di processo
Linguaggi e Programmazione per l’Informatica Musicale
Rappresentazione delle durate Lezione 7 Programmazione per la Musica | Prof. Luca A. Ludovico.
Architettura di una CPU
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 4
Livello di trasporto Protocolli TCP e UDP.
Gestione dei dispositivi di I/O:
Titolo tesi: PROGETTAZIONE E SVILUPPO DI SCRIPTS PER IL MONITORAGGIO DI DEVICES MOBILI ATTRAVERSO L’UTILIZZO DEL SOFTWARE DEVICE-ANYWHERE™ DI MOBILE COMPLETE.
Informatica Generale Marzia Buscemi
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Comunicazione Seriale Prof. Antonino Mazzeo Corso di Laurea Specialistica in Ingegneria Informatica.
Messaggi System Common e System Real Time
Transcript della presentazione:

Messaggi System Common e System Real Time Lezione 9 Messaggi System Common e System Real Time Programmazione MIDI (Prof. Luca A. Ludovico)

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) 9. Messaggi System Common e System Real Time

Caratteristiche comuni Sono messaggi «system» e non «channel»: non è richiesta l’informazione di canale. I 4 bit meno significativi servono ad identificare lo specifico messaggio, anziché il canale Il Byte di stato inizia con 1111 Attenzione: in un certo senso anche per i messaggi System Exclusive Potenzialmente si tratta di 16 messaggi, ma in realtà sono 6 system common + 6 real-time Quattro combinazioni risultano indefinite Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Messaggi System Common Sezione 9.1 Messaggi System Common Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Messaggi System Common Pensati come messaggi di sistema e non in relazione a un canale specifico Complessivamente 6 messaggi, il cui Byte di stato ha struttura (1)111 0 xxx (manca informazione sul canale) Il numero di byte di dati è eterogeneo: 0, 1 o 2 a seconda dello specifico messaggio … MIDI Out o MIDI Thru Byte di stato 11110xxx2 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Versione MIDI di SMPTE Time Code (vedi lezione 8) MIDI Time Code (MTC) Versione MIDI di SMPTE Time Code (vedi lezione 8) Struttura del messaggio: 1 byte di stato (1)1110001 1 byte di dati, per rappresentare parte dell’indirizzo temporale e il time code usato MIDI Out o MIDI Thru I Byte di dati Indirizzo [0..127]10 Byte di stato MTC Quarter Frame 111100012 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Struttura del messaggio: Song Position Pointer Imposta la posizione di riproduzione di un brano, in risposta a comandi Start, Stop e Continue (vedi messaggi Real Time) Struttura del messaggio: 1 byte di stato (1)1110010 2 byte di dati, per rappresentare la posizione su 14 bit in termini di LSB e MSB MIDI Out o MIDI Thru II Byte di dati Posizione MSB [1..127]10 I Byte di dati Posizione LSB [0..127]10 Byte di stato 111100102 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Song Position Pointer Come si rappresenta la posizione? Tramite al più 214 = 16.384 valori, che corrispondono a.. ? Timing Clock: viene inviato 24 volte per ogni pulsazione  24 tick per pulsazione Nella logica SPP uno step corrisponde a 6 tick, quindi si hanno 24/6 = 4 step per pulsazione Facendo corrispondere convenzionalmente la pulsazione al valore ritmico di un quarto, ogni step SPP corrisponde a un sedicesimo Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Song Position Pointer pulsazione pulsazione pulsazione L’indicazione di tempo non è rilevante per il MIDI, che ragiona a numero di pulsazioni e step In MIDI ha senso parlare di «n-esimo step della m-esima pulsazione», non di «n-esima figura ritmica della m-esima battuta» (ad esempio terzo ottavo di battuta 5) Si può comunque passare dalla seconda definizione alla prima, a patto di conoscere l’indicazione di tempo (ad esempio il terzo ottavo di battuta 5 nel tempo di 6/8) step step step step step Durata della battuta in 2/2, 4/4, ecc. Durata della battuta in 3/4, 6/8, ecc. Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Esempi Esempi Osservazione 2 byte di dati, ossia 14 bit corrispondono a un massimo di 16.384 valori da un sedicesimo in un brano, pari a 4.096 pulsazioni da un quarto In un tempo di 4/4 sono 1024 battute, in 3/4 sono circa 1635 battute Osservazione Le song MIDI vengono convenzionalmente fatte iniziare sul beat numerato 0. Dunque, se il valore ricevuto per la Song Position è 8, il dispositivo punta al primo sedicesimo del terzo quarto. Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Esercizio [5 min] Come fare in modo che un sequencer (o un altro dispositivo MIDI) punti a battuta 33, inizio della seconda pulsazione in un brano in 4/4? Risultato: SPP deve puntare allo step 516. Infatti: 32 x 4 x 4 + (numero di step in 32 battute) 4 = (numero di step della prima pulsaz.) 516 (1)1110010 (0)0000100 (0)0000100 SPP LSB MSB Non si conta il primo sedicesimo della seconda pulsazione perché la numerazione parte da 0. Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Struttura del messaggio: Song Select Carica nella memoria di un sequencer (e dei dispositivi collegati) il brano dal numero selezionato, a partire da un set di song MIDI. Struttura del messaggio: 1 byte di stato (1)1110011 1 byte di dati, per rappresentare il numero del brano. Quindi un set può comprendere fino a 128 song MIDI Out o MIDI Thru I Byte di dati Numero del brano [0..127]10 Byte di stato Song Select 111100112 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Struttura del messaggio: Tune Request Il dispositivo ricevente avvia una procedura di auto-accordatura per calibrare i propri oscillatori Tipico dei moduli sonori con circuiti elettrici analogici Struttura del messaggio: 1 byte di stato (1)1110110 MIDI Out o MIDI Thru Byte di stato Tune Request 111101102 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

System Exclusive (SysEx) & End of Exclusive (EOX) Coppia di messaggi per iniziare/concludere un messaggio System Exclusive (si veda la prossima lezione) Struttura del messaggio SysEx: 1 byte di stato (1)1110000, seguito da n byte di dati che rappresentano il vero e proprio messaggio System Exclusive Struttura del messaggio End of Exclusive: 1 byte di stato (1)1110111 Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Parte fissa | Flag System Common | Parte variabile (1)1110000 SysEx Riassunto Parte fissa | Flag System Common | Parte variabile (1)1110000 SysEx (1)1110001 MIDI Time Code Quarter Frame (1)1110010 Song Position Pointer (1)1110011 Song Select (1)1110100 Reserved (1)1110101 Reserved (1)1110110 Tune Request (1)1110111 End of Exclusive Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Messaggi SYSTEM REAL TIME Sezione 9.2 Messaggi SYSTEM REAL TIME Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Vengono inviati con stringenti requisiti temporali Messaggi Real Time Controllano in tempo reale tutti i dispositivi del sistema, e sono indipendenti dal canale. Si usano per sincronizzare i dispositivi basati sul clock (es. sequencer e batterie elettroniche) Vengono inviati con stringenti requisiti temporali Messaggi snelli, costituiti da un unico byte (byte di stato) Possono interpolarsi ai byte di altri messaggi (vedi prossima slide) Complessivamente 6 messaggi, il cui Byte di stato ha struttura (1)111 1 xxx (manca informazione sul canale) Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Interpolazione di messaggi Esempio: interpolazione messaggi generici (ad es. Note On e Note On, o Note Off e Control Change) Il mittente lo sa, ma il destinatario non li può ricostruire Esempio: interpolazione di un messaggio generico con un Real Time Il mittente lo sa, il destinatario lo riconosce ed estrapola ? ? ? ? Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Segnale di sincronizzazione basato sul tempo (BPM) (MIDI) Timing Clock Segnale di sincronizzazione basato sul tempo (BPM) Invio di 24 tick per pulsazione (vedi lezione 8), che si comportano come impulsi Sincronizzazione tramite il solo byte di stato, posto a (1)1111000 MIDI Out o MIDI Thru Byte di stato Timing Clock 111110002 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Controllano una sequenza MIDI in uno o più slave. Start, Stop e Continue Controllano una sequenza MIDI in uno o più slave. Start: portarsi a Song Position 0 (inizio della sequenza) Stop: fermare la riproduzione mettendola in pausa Continue: riprendere la riproduzione dal punto di interruzione Un eventuale messaggio SPP permetterà di riposizionare il punto di riproduzione MIDI Out o MIDI Thru Byte di stato Start: 111110102 Continue: 111110112 Stop: 111111002 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Esercizio [10 min] Si voglia caricare da un set la song numerata 12, mandarla in esecuzione dall’inizio, metterla in pausa, riavviarne la riproduzione dal punto corrente, portarsi all’inizio del terzo quarto di battuta 1 ed eseguirla da quel punto. Si mostri la sequenza di messaggi MIDI richiesti. Song select (1)1110011 (0)0001100 Start (1)1111010 Stop (1)1111100 Continue (1)1111011 Song Position Pointer (1)1110010 (0)0001000 (0)0000000 Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Active Sensing Abilita la funzionalità di Active Sensing sui dispositivi riceventi, che da quel momento si attendono almeno un messaggio MIDI ogni 300 ms Se alla porta MIDI ricevente non viene spedito alcun evento per 270 ms, il mittente sa di dover mandare un nuovo messaggio Active Sensing Se il destinatario non riceve nulla, considera chiusa tale porta di connessione e invia un comando All Notes Off al modulo sonoro Si tratta di una caratteristica opzionale dei dispositivi, non sempre implementata MIDI Out o MIDI Thru Byte di stato Active Sensing 111111102 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Viene ricevuto da tutti i dispositivi, su tutti i canali System Reset Riporta tutti i parametri di un dispositivo MIDI ai valori preimpostati (valori di fabbrica, o valori all’istante di accensione) Viene ricevuto da tutti i dispositivi, su tutti i canali MIDI Out o MIDI Thru Byte di stato System Reset 111111112 MIDI In Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Parte fissa | Flag System Common | Parte variabile Riassunto Parte fissa | Flag System Common | Parte variabile (1)1111000 Timing Clock (1)1111001 Reserved (1)1111010 Start (1)1111011 Continue (1)1111100 Stop (1)1111101 Reserved (1)1111110 Active Sensing (1)1111111 System Reset Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Conclusioni Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

Considerazione generale sui messaggi MIDI Come riconoscere l’ID di un messaggio MIDI? Il riferimento iniziale è dato in generale dal II, III e IV bit più significativo dello Status byte. A seconda di tali valori (e di conseguenza della famiglia di messaggi), l’ID dello specifico messaggio è codificato: esclusivamente in tali bit per tutti i messaggi Channel Voice, ad eccezione dei Control Change nel I Byte di dati per tutti i messaggi Control Change (parte dei Channel Voice e tutti i Channel Mode) Status byte: 1011cccc ove cccc identifica il canale tramite il V, VI, VII e VIII bit dello Status Byte per i messaggi System Common, Real Time e System Exclusive Status byte: 1111xxxx ove xxxx identifica il messaggio Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time

I 3 bit identificativi del messaggio (1) 000 cccc Note Off (1) 001 cccc Note On (1) 010 cccc Polyphonic Key Pressure (Aftertouch) (1) 011 cccc Control Change (1) 100 cccc Program Change (1) 101 cccc Channel Pressure (After-touch) (1) 110 cccc Pitch Wheel Change (1) 111 xxxx System Common messages System Real Time messages System Exclusive messages Programmazione MIDI (Prof. Luca A. Ludovico) 9. Messaggi System Common e System Real Time