Iniziamo con il vedere l'evoluzione che portò alla nascita dei vari formati midi:
Prima della definizione dello SMF (Standard Midi File), proposto per la prima volta nel 1986 dalla americana Opcode Systems, e adottato nel luglio 1988, i produttori di software musicale, per la memorizzazione di eventi Midi, adottavano un loro particolare formato, con il risultato che, pur essendo i dati memorizzati, della stessa natura e su stessi supporti, i brani midi registrati dovevano essere letti dallo stesso tipo di software con cui erano stati creati.
L'implementazione e l'adozione dello SMF ha fatto in modo che, pur utilizzando software musicale (sequencer) diverso, la memorizzazione dei brani in formato Midi avvenisse con la stessa procedura, consentendo così lo scambio e l'utilizzazione tra computer e sequencer diversi. L'utilizzo dello SMF rende possibile ad esempio, lo scambio di brani tra PC (Windows, Dos) e MACINTOSH, ATARI e tra qualsiasi tipo di sequencer in grado di avvalersi di tale standard.
La Struttura
Gli SMF sono composti da due blocchi principali definiti rispettivamente Header-chunk e Track-chunk, i primi 4 byte di ogni blocco, servono ad identificare il blocco stesso.
L'Header-chunk (blocco d'intestazione) è il primo elemento inserito nel midifile, in quanto contiene le informazioni del formato, del numero di traccie e della temporizzazione. Inizia con quattro caratteri ASCII:MThd, che appunto identificano il blocco. Il formato dei dati è visibile in fig. 1:
Il Track-chunk (blocco di traccia), contiene gli eventi Midi (nota on, nota off, ecc.) relative ad una singola traccia, prima di ogni evento viene inserito il riferimento temporale (Delta-time), che esprime il tempo trascorso tra ogni singolo evento. I quattro caratteri ASCII di identificazione del blocco sono: MTrk.Il formato in fig. 2
Delta-time
La lunghezza del Delta-time è variabile per consentire un intervallo tra un evento e l'altro anche molto grande, senza pregiudicare la compattezza del file.
Il valore del Delta-time viene calcolato suddividendo il tempo trascorso tra ogni evento, in pacchetti da 7 bit a cui vengono aggiunti dei bit più significativi di valore 1, tranne che per ultimo pacchetto a cui viene aggiunto il valore 0.
La scelta di questa complessa modalità di codifica del Delta-time è stata fatta per limitare la memoria stessa del midifile e potere esprimere nel contempo valori di tempo in teoria infiniti.
Oltre ai messaggi riferiti al canale come quelli di nota, control change, program change ecc. (eventi Midi), nel blocco Track-chunk, vengono memorizzati anche messaggi di Systema Exclusivo, ed i Meta-eventi.
La memorizzazione dei dati di Systema Exclusivo (Sys-Ex) avviene come per gli eventi Midi, viene inserito prima il Delta-time, poi il dato di inizio del Sys-Ex (F0), seguito dalla lunghezza in byte dell'intero messaggio e infine dai dati.
In fig. 3 è descritto il formato di memorizzazione del Sys-Ex relativo al di reset General Midi (F0,7E,7F,09,01,F7).
Hai trovato interessante l’articolo “La struttura e i vari formati dei Midi files”?
Se sei un appassionato di musica e musica digitale, Music Place è il sito che fa per te!
Puoi trovare news su eventi ed uscite discografiche, approfondimenti su artisti e band nonché tantissime risorse e programmi musicali gratuiti.
Che ne dici di dare un’occhiata? Scegli la categoria che più ti interessa, come ad esempio, la categoria Manuali Guide Musica Digitale e non perdere i contenuti selezionati per te, scoprili subito.
Buona lettura!
Provenienza della fotografia freepik
Le fotografie appartengono ai rispettivi proprietari. Music place: la guida italiana alla musica digitale non rivendica alcuna paternità e proprietà ad esclusione di dove esplicitata.
Vi invitiamo a contattarci per richiederne la rimozione qualora autori.