Esercitazione su SMF Lezione 14

Slides:



Advertisements
Presentazioni simili
Una calcolatrice del XV° secolo
Advertisements

Numeri a 100 Electronic flashcard. 1 uno ritorno.
Ruoli e competenze del medico-dirigente dell’INAIL alla luce della attuale normativa ANMI Hotel Milani - Roma g.salatin.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Presente e futuro della religiosità nel nord est DIFFERENZE TRA GENERAZIONI figli e padri italo de sandre 1ids.
Valutazione d’Istituto A.S. 2008/2009
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Studio del moto di una palla che rimbalza
Lezione 18 MIDI e XML Programmazione MIDI (Prof. Luca A. Ludovico)
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
Associazione Nazionale Medici Cardiologi Ospedalieri
masse: protone e neutrone
Analisi Bivariata e Test Statistici
Analisi Bivariata & Esercizi Analisi Univariata
Analisi Bivariata & Esercizi Analisi Univariata Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°4.
Analisi Bivariata e Test Statistici
Varianza campionaria Errore standard della varianza campionaria
Campionamento casuale semplice
Le moli Il peso di una millimole di (NH4)2HPO4 è … 132 g 114 g
Canale A. Prof.Ciapetti AA2003/04
Indagine trimestrale sulla industria manifatturiera in provincia di Ravenna - Imprese con oltre 10 addetti - II trimestre e I semestre 2003 Ravenna, 15.
Indagine trimestrale sulla industria manifatturiera in provincia di Ravenna - Imprese con oltre 10 addetti - Consuntivo 2004 Ravenna, 7 aprile 2005 Associazione.
CAMERA DI COMMERCIO INDUSTRIA ARTIGIANATO E AGRICOLTURA DI BRESCIA - UFFICIO STUDI 10 MAGGIO 2004.
Indagine trimestrale sulla industria manifatturiera in provincia di Ravenna - Imprese con oltre 10 addetti Ravenna, febbraio 2006 Associazione degli.
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Esercizi x1=m-ts x2=m+ts
ADVISORY Metodologie per il perseguimento della continuità dellassistenza nel mondo degli anziani FORUM P.A. Roma, 10 maggio 2005 Marco Campari Membro.
ImbustamentoArchitettura degli elaboratori - Modulo B - A.Memo 1 Esempio di imbustamento un messaggio TELNET imbustato in un pacchetto di protocollo TCP.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Simulazione di un esperimento di laboratorio: Caduta di un corpo quadrato in.
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% % Accrescimento della PECORA IN TASMANIA % % dal 1820 ad oggi % % ( MODELLO LOGISTICO ) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cos’è un problema?.
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Ropol09anci INDAGINE SU PATTO DI STABILITA 2009 IN PIEMONTE ANCI PIEMONTE Torino, 29 giugno 2009.
Dinamiche e prospettive delleconomia biellese per il 2012 Roberto Strocco Coordinatore Area Studi e Sviluppo del Territorio Responsabile Ufficio Studi.
Monitoraggio a.s. 2008/2009Analisi dei dati RETE REGIONALE AU.MI.
CHARGE PUMP Principio di Funzionamento
Settimana: 3-7 marzo Orariolunedimartedi Mercoledi 5 Giovedi 6 Venerdi lezione intro alla fis mod DR lezione intro alla fis mod DR.
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
ISTITUTO COMPRENSIVO TORREGOTTA Monitoraggio servizio mensa scolastica Scuola dell Infanzia classi ponte A.S.2012/2013.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
1)Completa la seguente successione: C4, B7, E10, D13, G16,. A. G19 B
Lotto STAT1 Presentazione
Primo forum pubblico con la cittadinanza F a b r i a n o 14 _luglio_ 2006.
LE SAI LE TABELLINE? Mettiti alla prova!.
GEOGRAFIA DEI NUMERI Accademia dei Lincei - Roma 18 Ottobre2011
Un trucchetto di Moltiplicazione per il calcolo mentale
Navigazione piana, introduzione pns pnr.
Bus, mon amour! Autobus e Investimenti
La legge Italiana Decreto Ronchi del 1997 Divide i rifiuti in URBANI e SPECIALI E in PERICOLOSI e NON PERICOLOSI Regione: predispone il piano di gestione.
Esempi risolti mediante immagini (e con excel)
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
Minimo comune multiplo
Rappresentazione delle durate Lezione 7 Programmazione per la Musica | Prof. Luca A. Ludovico.
Atti persecutori – delitti commessi (dal 23 febbraio) Fonte:Direzione.
DIRETTIVI UNITARI SPI-CGI – FNP-CISL - UILP-UIL TERRITORIO LODIGIANO Lunedì 23 marzo 2015 dalle ore 9,00 alle ore 13,00 Presso la sala Conferenze Confartigianato.
1 Ministero dell’Istruzione, dell’Università e della Ricerca Dipartimento per la Programmazione e la Gestione delle risorse umane, finanziarie e strumentali.
Esercizi Due gruppi di studenti effettuano la misura della densità di un oggetto, trovando rispettivamente i valori 13.7 ± 0.9 g/cm3 e ± 1300 kg/m3.
Standard MIDI File: eventi MTrk
Standard MIDI File Lezione 10
Esercitazione su SMF Lezione 12
Transcript della presentazione:

Esercitazione su SMF Lezione 14 Programmazione MIDI (Prof. Luca A. Ludovico)

Analisi pratica di un breve file MIDI 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Come segmentare uno SMF in chunk Esiste sicuramente uno e un solo chunk di intestazione (MThd), di lunghezza complessiva pari a 14 byte e posizionato all’inizio del file Possono esistere uno o più chunk di traccia (MTrk), di lunghezza variabile e delimitati da [4D 54 72 6B … FF 2F 00] Per i file MIDI di tipo 0 vi è un unico chunk MTrk, per il tipo 1 e 2 ne deve esistere almeno uno Il chunk MThd e il/i chunk MTrk riempiono completamente il file MIDI: nel file non vi sono byte non appartenenti ad uno di essi. Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Ricerca dei chunk di header e di traccia 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del chunk MThd 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 Come si capisce fin dove si estende? E’ un chunk di lunghezza fissa La sua lunghezza è comunque scritta nell’header del chunk Dal byte successivo inizia il primo MTrk, riconoscibile dalla sequenza 4D 54 72 6B Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del chunk MThd 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 … 4D 54 68 64: intestazione di 4 byte del MIDI Track header chunk 00 00 00 06: questi 4 byte informano che seguiranno 6 byte di dati 00 01: questi 2 byte informano che il file MIDI è di tipo 1 E’ vero? Si contano le tracce, ossia i chunk MTrk. Verifica con viewer esadecimale 00 02: questi 2 byte informano che dopo il MThd seguiranno 2 blocchi di traccia MTrk E’ vero? Verifica con viewer esadecimale 01 80: informazione che specifica la risoluzione in impulsi per quarto di nota. Risulta: PPQN = 018016 = 38410 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del primo chunk MTrk 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 Come si capisce fin dove si estende? E’ un chunk di lunghezza variabile, ma si può leggere il valore nell’header del chunk. Attenzione: aprendo il file con un viewer esadecimale, è scritto in base 16!!! Si conclude con il meta di fine traccia FF 2F 00, seguito da un nuovo MTrk Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Come segmentare i contenuti di MTrk L’intero contenuto di un chunk MTrk (per contenuto si intende la parte successiva all’header) è un susseguirsi di coppie [tempo delta, evento] I tempi delta vanno interpretati proseguendo la lettura dei byte finchè non si trova il byte che ha il bit più significativo posto a 0 In molti casi il tempo delta si esprime su un unico byte; un caso particolare è il tempo delta posto a 00, per indicare simultaneità o occorrenza immediata Gli eventi devono essere segmentati secondo le regole di decodifica degli eventi MIDI o dei metaeventi tipici degli SMF Ciascuno di essi ha una sua lunghezza, variabile da evento a evento ma predeterminata (ad es. i messaggi Note On e Note Off occupano 3 byte, il messaggio Program Change ne occupa 2, il metaevento Segnatura di tempo 7) Quello che segue una coppia [tempo delta, evento] è una nuova coppia Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del primo chunk MTrk … 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 … 00: Tempo Delta. Questo byte posto a 0 stabilisce che il successivo evento rispetto al precedente si verificherà dopo 0 PPQN, quindi senza alcun ritardo FF 58 04 03 02 60 08: evento Meta di segnatura di tempo 03: Numeratore = 3 02: Denominatore = 2^02 = 4 60: 96 tick MIDI in una nota da ¼ 08: 8 note da 1/32 in una nota ¼ Segnatura di tempo per le misure è ¾ Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del primo chunk MTrk … 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 … 00: Tempo Delta pari a 0 PPQN FF 51 03 09 27 C0: evento Meta di tempo metronomico 0927C016 = 600.000 = n; Per definizione n = (60.000.000 x d / 4) / bpm Sono noti i valori di n e di d  è possibile calcolare il bpm bpm = 100 pulsazioni al minuto La velocità metronomica del brano MIDI è impostata a 100 bpm Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del primo chunk MTrk … 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 … 00: Tempo Delta pari a 0 PPQN FF 59 02 01 00: evento Meta di tonalità 01: 1 diesis in chiave (Sol Maggiore/Mi minore) 00: la tonalità è maggiore Tonalità del brano è Sol Maggiore Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del primo chunk MTrk … 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 … 00: Tempo Delta pari a 0 PPQN FF 2F 00: fine del blocco di traccia Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk 4D 54 68 64 00 00 00 06 00 01 00 02 01 80 4D 54 72 6B 00 00 00 19 00 FF 58 04 03 02 60 08 00 FF 51 03 09 27 C0 00 FF 59 02 01 00 00 FF 2F 00 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 Come si capisce fin dove si estende? E’ un chunk di lunghezza variabile, ma si può leggere il valore nell’header del chunk. 2A16 = 4210 Si conclude con il meta di fine traccia FF 2F 00 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN B0 07 64: Evento MIDI Control Change n. 7 (Volume) 10110000 00000111 01100100 Ctrl Change (Ch. 1) Channel Volume Value: 100 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN B0 0A 30: Evento MIDI Control Change n. 10 (PanPot) 10110000 00001010 00110000 Ctrl Change (Ch. 1) PanPot Value: 48 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN B0 5B 40: Evento MIDI Control Change n. 91 (Riverbero) 10110000 01011011 01000000 Ctrl Change (Ch. 1) Riverbero Value: 64 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN B0 5D 10: Evento MIDI Control Change n. 93 (Chorus) 10110000 01011101 00010000 Ctrl Change (Ch. 1) Chorus Value: 16 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN C0 04: Evento MIDI Program Change n. 4 (Piano Elettrico) 11000000 00000100 Program Change (Ch.1) Value: 4 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN 90 45 64: Evento MIDI Note On, pitch 69 (La centrale), velocity 100 10010000 01000101 01100100 Note On (Ch.1) Pitch: 69 Velocity: 100 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 86 00: Tempo Delta pari a 76810 PPQN (1)0000110 (0)0000000  11000000002 = 76810 La risoluzione al quarto era 01 8016 = 38410, quindi è TΔ della minima 80 45 64: Evento MIDI Note Off, pitch 69 (La centrale), velocity 100 10000000 01000101 01100100 Note Off (Ch.1) Pitch: 69 Velocity: 100 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 81 40: Tempo Delta pari a 19210 PPQN (1)0000001 (0)1000000  11000000002 = 19210 La risoluzione al quarto era 01 8016 = 38410, quindi è TΔ della croma 90 42 64: Evento MIDI Note On, pitch 66 (Fa#), velocity 100 10010000 1000010 01100100 Note On (Ch.1) Pitch: 66 Velocity: 100 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 81 40: Tempo Delta pari a 19210 PPQN (1)0000001 (0)1000000  11000000002 = 19210 La risoluzione al quarto era 01 8016 = 38410, quindi è TΔ della croma 80 42 64: Evento MIDI Note Off, pitch 66 (Fa#), velocity 100 10000000 1000010 01100100 Note Off (Ch.1) Pitch: 66 Velocity: 100 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del secondo chunk MTrk … 4D 54 72 6B 00 00 00 2A 00 B0 07 64 00 B0 0A 30 00 B0 5B 40 00 B0 5D 10 00 C0 04 00 90 45 64 86 00 80 45 64 81 40 90 42 64 81 40 80 42 64 00 FF 2F 00 00: Tempo Delta pari a 0 PPQN FF 2F 00: Fine del chunk di traccia Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Visualizzazione nel sequencer Legenda Griglia: linea scura  quarto Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

ESERCITAZIONE Sezione 14.1 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Esercizio di analisi: 14_esercizio.mid 4D 54 68 64 00 00 00 06 00 00 00 01 03 C0 4D 54 72 6B 00 00 00 4F 00 90 24 71 00 90 26 71 87 40 80 24 00 00 80 26 00 83 60 90 25 71 00 90 27 71 83 60 80 25 00 00 80 27 00 82 40 90 26 71 00 91 27 71 82 40 80 26 00 00 90 25 71 00 81 27 00 00 91 26 71 82 40 80 25 00 00 81 26 00 87 40 B0 7B 00 00 FF 2F 00 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Identificazione dei chunk e della loro lunghezza 4D 54 68 64 00 00 00 06 00 00 00 01 03 C0 4D 54 72 6B 00 00 00 4F 00 90 24 71 00 90 26 71 87 40 80 24 00 00 80 26 00 83 60 90 25 71 00 90 27 71 83 60 80 25 00 00 80 27 00 82 40 90 26 71 00 91 27 71 82 40 80 26 00 00 90 25 71 00 81 27 00 00 91 26 71 82 40 80 25 00 00 81 26 00 87 40 B0 7B 00 00 FF 2F 00 Legenda: Header dell’MThd Header dell’MTrk Lunghezza dell’MThd Lunghezza dell’MTrk Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Analisi del chunk MThd 4D 54 68 64 00 00 00 06 00 00 00 01 03 C0 … 4D 54 68 64: intestazione di 4 byte del MIDI Track header chunk 00 00 00 06: questi 4 byte informano che seguiranno 6 byte di dati sino alla fine di questo chunk header 00 00: questi 2 byte informano che il file MIDI è di tipo 0 E’ vero? Si contano le tracce, ossia i chunk MTrk. 00 01: questi 2 byte informano che dopo il MThd seguirà 1 blocco di traccia MTrk E’ vero? Verifica con viewer esadecimale 03 C0: informazione che specifica la risoluzione in impulsi per quarto di nota. Risulta: PPQN = 03C016 = 96010 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

MTrk: suggerimenti 4D 54 68 64 00 00 00 06 00 00 00 01 03 C0 4D 54 72 6B 00 00 00 4F 00 90 24 71 00 90 26 71 87 40 80 24 00 00 80 26 00 83 60 90 25 71 00 90 27 71 83 60 80 25 00 00 80 27 00 82 40 90 26 71 00 91 27 71 82 40 80 26 00 00 90 25 71 00 81 27 00 00 91 26 71 82 40 80 25 00 00 81 26 00 87 40 B0 7B 00 00 FF 2F 00 Legenda: Note On Note Off Tempo Delta Controller Fine traccia Le frecce mettono in corrispondenza l’accensione e lo spegnimento della stessa nota Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Qualche osservazione Considerando i soli nibble (4 bit) più significativi del byte di stato degli eventi MIDI, alcuni valori sono standard dal punto di vista dell’interpretazione della performance: 9x indica un messaggio NoteOn 8x indica un messaggio NoteOff Bx indica un control change Cx indica un program change … Ovviamente, essendo messaggi di canale, il secondo nibble non è standard Come si riconoscono le coppie di apertura/chiusura di un evento musicale? Il NoteOff (8x) corrisponde a un precedente NoteOn (9x) ove la x è la stessa e il primo byte di dati è uguale. Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF

Visualizzazione nel sequencer Legenda Griglia: linea scura  quarto; linea chiara  sedicesimo Colori: mattone  ch. 1; oliva  ch. 2 Programmazione MIDI (Prof. Luca A. Ludovico) 14. Esercitazione su SMF