Az SMF nem csak a szokásos MIDI-előadási adatokat tartalmazza – csatornázott hangjegyek, hosszúságok, pitch bend adatok stb. – hanem olyan adatokat is (általában “fejlécnek” nevezik), amelyek további beállítási adatokat tartalmaznak (tempó, hangszer kiválasztása csatornánként, kontroller beállítások stb.).), valamint dalinformációkat (szerzői jogi megjegyzések, zeneszerző stb.).
Az, hogy egy SMF mennyire jól, vagy az eredetileg létrehozott állapotához hűen fog megszólalni, nagyban függhet a fejléc információitól. A fejléc irányítást gyakorolhat a keverés, az effektek, sőt még a hangszerkesztési paraméterek felett is, hogy minimalizálja az egyik és a másik hangkészlet közötti eredendő különbségeket. Nincs szabványos adatkészlet, amelyet a fejlécbe kell tennie (valójában ilyen adatok elhelyezhetők a fájl testében lévő tartalék “set-up” sávban is), de általánosságban elmondható, hogy minél több információt ad meg a fogadó hangeszköz számára, annál határozottabb – és így feltehetően annál inkább az Ön ízlésének megfelelő – lesz az eredmény.
A fájl létrehozásához használt alkalmazástól függően a fejléc-információkat automatikusan el lehet menteni az alkalmazásban beállított paraméterekből, vagy manuálisan kell elhelyezni egy “set-up” sávban, mielőtt a zenei adatok elindulnak.
Az alábbi információkat kell figyelembe venni (MIDI-csatornánként):
- Bank Select (0=GM) / Program Change #
- Reset All Controllers (nem minden eszköz ismeri ezt a parancsot, ezért lehet, hogy inkább nullázni vagy egyes vezérlők nullázása)
- Kezdeti hangerő (CC7) (standard szint = 100)
- Kifejezés (CC11) (kezdeti szint 127)
- Hold pedál (0 = off)
- Pan (Center = 64)
- Modulation (0)
- Pitch bend range
- Reverb (0 = off)
- Chorus level (0 = off)
Minden fájlnak egy GM/GS/XG Reset üzenettel (ha szükséges) és minden egyéb System Exclusive adattal kell kezdődnie, amely a célszintetizátor beállításához szükséges lehet. Ha a fájlban RPN-eket vagy részletesebb vezérlőüzeneteket alkalmaznak, akkor ezeket is vissza kell állítani vagy normalizálni kell a fejlécben.
Ha a fejlécadatokat maga adja meg, akkor célszerű, ha nem halmozza össze az összes ilyen információt, hanem inkább 5-10 tickes időközökben elosztja őket. Természetesen, ha egy fájlt loopolásra terveztek, a túl sok adat egyidejű lejátszása a legtöbb lejátszó eszközön “megfullad, ‘ és felborítja az időzítést.