Un SMF non contiene solo i normali dati di performance MIDI – note canalizzate, lunghezze, dati di pitch bend ecc – dovrebbe anche avere dati (comunemente chiamati ‘header’) che contengono ulteriori dati di set-up (tempo, selezioni di strumenti per canale, impostazioni del controller, ecc.) così come informazioni sulla canzone (note di copyright, compositore, ecc.).
Quanto bene, o fedelmente al suo stato originale creato, un SMF suonerà può dipendere molto dalle informazioni di intestazione. L’intestazione può esercitare un controllo sul mix, sugli effetti e persino sui parametri di editing del suono, al fine di minimizzare le differenze intrinseche tra un soundset e un altro. Non c’è un set standard di dati che devi mettere in un’intestazione (in effetti tali dati possono anche essere messi in una barra di ‘set-up’ di riserva nel corpo del file stesso) ma in generale più informazioni fornisci al dispositivo sonoro ricevente più definito – e quindi, presumibilmente, più secondo i tuoi gusti – i risultati saranno.
A seconda dell’applicazione che stai usando per creare il file, le informazioni dell’intestazione possono essere salvate automaticamente all’interno dei parametri impostati nell’applicazione, o possono aver bisogno di essere messe manualmente in una barra di ‘set-up’ prima che i dati musicali inizino.
Le informazioni che dovrebbero essere considerate (per canale MIDI) includono:
- Bank Select (0=GM) / Program Change #
- Reset All Controllers (non tutti i dispositivi possono riconoscere questo comando quindi potresti preferire di azzerare o azzerare i singoli controller)
- Volume iniziale (CC7) (livello standard = 100)
- Espressione (CC11) (livello iniziale impostato su 127)
- Pedale hold (0 = off)
- Pan (Center = 64)
- Modulazione (0)
- Gamma pitch bend
- Reverb (0 = off)
- Livello coro (0 = off)
Tutti i file dovrebbero anche iniziare con un messaggio di Reset GM/GS/XG (se appropriato) e qualsiasi altro dato System Exclusive che potrebbe essere necessario per impostare il sintetizzatore di destinazione. Se nel file vengono impiegati RPN o messaggi di controllo più dettagliati, anche questi dovrebbero essere resettati o normalizzati nell’intestazione.
Se stai inserendo tu stesso i dati dell’intestazione, è consigliabile non raggruppare tutte queste informazioni insieme, ma piuttosto spaziarle in intervalli di 5-10 tick. Certamente se un file è progettato per essere messo in loop, avere troppi dati riprodotti simultaneamente farà sì che la maggior parte dei dispositivi di riproduzione si “strozzi” e mandi all’aria il tuo tempismo.