Los ficheros MOD permiten que se reproduzcan un máximo de cuatro sonidos simultáneamente, una de las limitaciones que han precipitado el abandono de su uso.
A continuación se incluye su formato de cabecera: struct { char songname[20]; Sample samples[32]; char songlength; char mark; char songpos[128]; char extmark[4]; }mod_hdr; struct { char smpName[22]; short smpLength; char fineTune; char volume; short repeatpoint; short repeatlen; } Sample; Los campos que describen la cabecera son:
songname | Nombre de la canción. Deje estar justificado a la izquierda y los caracteres no usados deben ser nulos. |
samples | Array de 32 estructuras que determinan los parámetros de los sonidos muestreados que contiene el fichero. |
songlength | Longitud de la canción. El rango está comprendido entre 1 y 128. |
mark | Byte de valor 127 |
songpos | Es una lista de identificadores de secuencia. La canción se compone de una concatenación de pequeñas secuencias. Puede haber hasta 64 secuencias distintas, por lo que su valor se comprende entre 0 y 63. |
extmark | Contiene la cadena "M.K." e identifica el fichero MOD extendido (que soporta 32 sonidos) |
smpName | Cadena ASCII que da nombre al sonido. Está justificada a la izquierda y rellenados por nulos aquellos caracteres no utilizados. |
smpLength | Indica el número de palabras que contiene el sonido muestreado. Las palabras en el formato extendido son de 16 bits. |
finetune | Indica el tono de la muestra. Los cuatro bits superiores deben ser nulos, los cuatro inferiores con un valor en complemento a dos. |
volume | Volumen del sonido. El rango comprende de 0 a 64. |
repeatpoint | Indica la muestra a partir de la cual debe repetirse el sonido. |
repeatlen | Longitud de la sección del sonido que se repetirá. |
Después de la cabecera hay una tabla de secuencias. Cada secuencia ocupa 1024 bytes. El número de secuencias está indicado por el mayor valor contenido en la lista songpos. Una secuencia es una lista elementos.
Cada elemento lo forman cuatro notas, una por cada uno de los cuatro canales que se pueden reproducir simultáneamente. Una nota está formada por cuatro bytes según esta organización:
4 bits | 12 bits | 4 bits | 12 bits | |||
4 bits superiores del sonido muestreado | Nota | 4 bits inferiores del sonido muestreado | Efecto |
Después de las secuencias se encuentran los sonidos muestreados. La longitud e cada uno se puede determinar por la información de la tabla de muestras contenida en la cabecera. Las muestras son de 16 bits en el formato de fichero extendido y de 8 bits en el formato inicial.