Um SMF não só contém dados regulares de desempenho MIDI – notas canalizadas, comprimentos, dados de pitch bend, etc. – como também deve ter dados (normalmente referidos como ‘cabeçalho’) que contenham dados adicionais de configuração (tempo, selecções de instrumento por Canal, definições do controlador, etc.).) assim como informações sobre a música (avisos de copyright, compositor, etc.).
Quão bom, ou fiel ao seu estado originalmente criado um SMF soará pode depender muito da informação do cabeçalho. O cabeçalho pode exercer controle sobre a mixagem, efeitos e até mesmo parâmetros de edição de som, a fim de minimizar as diferenças inerentes entre um conjunto sonoro e outro. Não há um conjunto padrão de dados que você tenha que colocar em um cabeçalho (de fato, tais dados também podem ser colocados em uma barra de ‘configuração’ no próprio corpo do arquivo), mas geralmente falando, quanto mais informações você fornecer para o dispositivo de som receptor, mais definidos – e assim, presumivelmente, mais para o seu gosto – os resultados serão.
Dependente do aplicativo que você estiver usando para criar o arquivo em primeiro lugar, as informações do cabeçalho podem ser salvas automaticamente de dentro dos parâmetros definidos no aplicativo, ou podem precisar ser colocadas manualmente em uma barra de ‘set-up’ antes dos dados da música começarem.
Informação que deve ser considerada (por canal MIDI) inclui:
- Bank Select (0=GM) / Program Change #
- Reset All Controllers (nem todos os dispositivos podem reconhecer este comando, então você pode preferir zerar ou reiniciar controladores individuais)
- Volume inicial (CC7) (nível padrão = 100)
- Expressão (CC11) (nível inicial definido para 127)
- Pedal de retenção (0 = desligado)
- Pan (Centro = 64)
- Modulação (0)
- Inversão de inclinação
- Reverb (0 = desligado)
- Nível de cor (0 = off)
>
Todos os arquivos também devem começar com uma mensagem de reset GM/GS/XG (se apropriado) e quaisquer outros dados exclusivos do sistema que possam ser necessários para configurar o sintetizador de destino. Se RPNs ou mensagens mais detalhadas do controlador estiverem sendo empregadas no arquivo, elas também devem ser redefinidas ou normalizadas no cabeçalho.
Se você mesmo estiver inserindo dados do cabeçalho, é aconselhável não agrupar todas essas informações, mas espaçá-las em intervalos de 5-10 ticks. Certamente, se um arquivo for projetado para ser laçado, ter muitos dados reproduzidos simultaneamente fará com que a maioria dos dispositivos de reprodução se ‘engasgue’, e jogue fora seu tempo.