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.
Dati esadecimali Commento
4D 54 68 64 ASCII=MThd
00 00 00 06 Lunghezza del blocco, in questo esempio 6 byte
00 00 Formato del midifile (0,1,2)
00 01 Numero delle traccie (da 1 a 16)
00 60 Tick per quarto di nota, oppure
Tipo di sinc. SMPTE (24, 25, 29.97, 30 frame/s)
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.
Dati esadecimali Commento
4D 54 72 6B ASCII=MTrk
00 00 00 00 Lunghezza del blocco, in questo esempio 0 byte
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).
Dati esadecimali Commento
00 Delta-time
F0 Inizio dei dati di Sys-Ex
05 Lunghezza in byte del Sys-Ex
7E 7F 09 01 Dati Sys-Ex
F7 Fine dei dati di Sys-Ex
I Meta eventi
I meta-eventi rappresentano un complemento importante negli SMF. Con essi vengono memorizzati: i nomi delle traccie, la divisione del tempo, la velocità, la tonalità, il testo del brano, il copyright e altro.
In fig. 4 vengono descritti i Meta-eventi più importanti.
Tipo di Meta-evento Commento
01 Evento di testo per descrivere il nome di una traccia o il nome della voce usata, può essere utilizzato anche per inserire il testo.
02 Evento di copyright, il testo deve contenere la © seguita dall'anno di creazione e dal nome dell'autore. Dovrebbe essere inserito come primo evento sulla traccia 1.
03 Evento di testo per indicare il nome della traccia. Se è inserito in un midifile in formato 0 o nella prima traccia di un midifile in formato 1, indica il nome del brano.
05 Evento di testo per inserire le liriche del brano.
2F Evento che indica la fine di un blocco di traccia (Track-chunk).
51 Evento di velocità del brano, indica quanti microsecondi ci debbono essere in un quarto di nota.
58 Evento per descrivere la divisione del brano.
59 Evento che indica la tonalità.
I Meta-eventi vengono memorizzati nello SMF allo stesso modo dei Sys-Ex, ma iniziano con l'esadecimale FF. In fig. 5, un esempio che descrive il nome di una traccia chiamata INTRO.
Dati esadecimali Commento
00 Delta-time
FF Inizio del Meta-evento
03 Tipo di Meta-evento
05 Lunghezza in byte del Meta-evento
49 4E 54 52 4F ASCII=INTRO
I tre formati degli SMF
Formato 0
Le traccie di un brano vengono mixate in una singola traccia che contiene però tutte le informazioni degli eventi di tutte le traccie del brano.
Formato 1
Le traccie vengono memorizzate in modo singolo e contengono gli stessi valori di tempo e metrica. La velocità del brano viene inserita nella prima traccia che fa da riferimento a tutte le altre.
Formato 2
Le traccie vengono gestite indipendenti l'una da l'altra con valori anche diversi di tempo e metrica.
Generalmente i più utilizzati sono il Formato 0 usato principalmente dai sequencer a lettura diretta, cioè che non devono caricare in memoria l'intera sequenza, ma prelevano ed eseguono i dati Midi direttamente. Ed il Formato 1 per i sequencer che possono creare e/o modificare SMF, specie i software musicali, i quali hanno in genere la possibilità di gestione di entrambi i formati.
Hai trovato interessante l’articolo “La nascita dell’ SMF”?
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 Novità Musicali 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.