Dans les articles précédents, nous avons démonté les principales briques d’un module : samples, instruments, canaux, patterns et commandes. Il manque pourtant un élément essentiel. Toutes ces données doivent être exécutées dans le temps.
Un tracker ne se contente pas de lire une liste de notes à une valeur de BPM donnée. Son moteur possède une horloge particulière, héritée de l’histoire des trackers. Pour comprendre réellement la lecture d’un MOD ou d’un XM, il faut distinguer plusieurs niveaux : song order, pattern, row et tick.
Le morceau commence par une séquence
Un module est organisé autour d’une liste indiquant dans quel ordre les patterns doivent être joués. Le moteur commence à une position de cette séquence, récupère le numéro du pattern correspondant puis entre dans celui-ci.
Lorsque le pattern est terminé, le lecteur passe normalement à la position suivante de la séquence. Certaines commandes peuvent toutefois modifier ce déroulement et provoquer un saut ou un changement de pattern.
Le temps du tracker est donc déjà lié à une structure : le morceau avance dans une séquence de blocs musicaux.
Le pattern contient des rows
Le pattern est lui-même divisé en lignes, généralement appelées rows. Dans l’éditeur, ce sont ces lignes que l’on voit défiler verticalement.
À chaque nouvelle row, le moteur examine les différents canaux. Il peut y rencontrer une note, un numéro d’instrument, une valeur de volume ou une commande d’effet.
Mais une row n’est pas nécessairement un instant indivisible. C’est là qu’intervient la notion la plus importante de cet article : le tick.
Le tick : la petite unité de travail du moteur
Une row est exécutée pendant plusieurs ticks. Le premier tick possède généralement un rôle particulier : le moteur y traite les nouveaux événements de la ligne. Les ticks suivants permettent notamment à certaines commandes d’effets de continuer leur action.
Cette distinction explique une grande partie du son tracker. Un portamento, un vibrato ou certains changements de volume peuvent évoluer progressivement pendant les ticks qui composent une seule row.
Autrement dit, ce que l’on voit comme une seule ligne dans l’éditeur peut correspondre à plusieurs étapes internes dans le moteur de replay.
Speed : combien de ticks pour une row ?
Dans la terminologie de FastTracker II et de nombreux trackers, la valeur souvent appelée Speed détermine le nombre de ticks utilisés pour faire avancer une ligne dans le fonctionnement normal du moteur.
Une valeur classique est 6. Dans cette configuration, une row s’étend sur six ticks avant que le lecteur passe à la suivante, sous réserve des commandes qui peuvent modifier le comportement normal.
Il faut donc éviter de confondre Speed avec BPM. Les deux valeurs participent au tempo ressenti, mais elles n’agissent pas au même niveau.
BPM : déterminer la durée du tick
Dans le modèle temporel utilisé par FastTracker II, le BPM intervient dans la durée d’un tick. Une relation couramment utilisée par les moteurs compatibles FT2 est :
durée d’un tick = 2,5 / BPM secondes
À 125 BPM, un tick dure donc environ 0,02 seconde, soit 20 millisecondes.
Avec une Speed de 6, une row dure alors approximativement :
6 × 20 ms = 120 ms
Cette mécanique permet de comprendre pourquoi deux paramètres sont nécessaires : l’un contrôle le nombre d’étapes internes par ligne, l’autre leur durée.
Un exemple concret
Prenons un morceau avec :
Speed = 6
BPM = 125
Le moteur arrive sur une nouvelle row. Au tick initial, il lit les événements : par exemple une note C-4 utilisant l’instrument 01 avec une commande de vibrato.
Il poursuit ensuite l’exécution de la ligne pendant les ticks suivants. La commande peut modifier progressivement la hauteur selon sa logique. Une fois le nombre de ticks prévu écoulé, le moteur passe à la row suivante.
Cette opération se répète des centaines ou des milliers de fois pendant un morceau.
Pourquoi les effets dépendent des ticks
Les commandes d’effets tracker ne fonctionnent pas toutes comme des traitements audio modernes appliqués indépendamment à un signal. Beaucoup sont intimement liées à l’avancement du moteur.
Une commande peut être initialisée au premier tick puis agir aux ticks suivants. Certaines possèdent également des comportements historiques spécifiques selon le tracker ou le format.
C’est pourquoi reproduire correctement un module ne consiste pas simplement à lire ses notes au bon moment. Le moteur doit savoir à quel tick une opération doit être exécutée.
Le premier tick n’est pas toujours comme les autres
Cette notion mérite une attention particulière. Dans de nombreux comportements tracker, le tick initial d’une row sert à déclencher ou préparer les nouveaux événements, tandis que certains effets travaillent principalement sur les ticks suivants.
Une implémentation naïve qui appliquerait exactement la même opération à chaque tick pourrait donc produire un résultat différent du logiciel historique.
Ces détails deviendront particulièrement importants lorsque nous étudierons les commandes d’effets dans l’article suivant.
Tempo et musique : pourquoi le mot BPM peut tromper
Dans une station audionumérique moderne, on associe spontanément le BPM au nombre de battements musicaux par minute. Dans un tracker historique, la valeur appelée BPM participe plutôt au calcul de l’horloge interne du moteur.
La relation entre cette horloge et le rythme musical dépend ensuite de la Speed, de l’organisation des rows et de la manière dont le compositeur structure ses patterns.
Il est donc préférable de comprendre le couple Speed + BPM plutôt que d’interpréter isolément la valeur BPM comme on le ferait dans un séquenceur moderne.
Changer le tempo pendant le morceau
Les commandes du tracker peuvent modifier Speed ou BPM pendant la lecture. Le morceau peut ainsi accélérer, ralentir ou changer la densité temporelle de ses lignes sans qu’il soit nécessaire de reconstruire les patterns.
Cette possibilité fait partie intégrante de la composition. Les paramètres temporels ne sont pas seulement une configuration placée au début du fichier : ils peuvent devenir des événements musicaux.
Pourquoi cette mécanique compte pour un lecteur Web
Pour lire un module dans un navigateur, il ne suffit donc pas de convertir les rows en une liste approximative de notes programmées à l’avance. Un moteur compatible doit maintenir son propre état : position dans la séquence, pattern courant, row actuelle, tick actuel, Speed, BPM et état des effets pour chaque canal.
Conceptuellement, sa boucle ressemble à ceci :
Song position → Pattern → Row → Tick → effets → Tick suivant → Row suivante
Cette machine d’état constitue le cœur du replay tracker.
Le temps fait partie du format
Nous pouvons maintenant compléter la définition commencée dans les premiers articles. Un module contient de la matière sonore, une structure musicale et des instructions, mais son identité dépend aussi d’un modèle temporel que le moteur doit respecter.
C’est précisément pour cela que la fidélité d’un lecteur est importante. Une petite différence dans l’interprétation des ticks ou des effets peut modifier le groove, les glissements, les vibratos et finalement le caractère du morceau.
Dans le prochain article : nous utiliserons cette horloge pour comprendre la programmation cachée dans la musique tracker : arpège, portamento, vibrato, volume, retrigger, pattern break et autres commandes d’effets.
Articles relatifs à la catégorie
MOD, XM, S3M et IT partagent la logique des trackers, mais ils ne racontent pas la même histoire. Du quatre canaux de l’Amiga aux instruments avancés d’Impulse Tracker, chaque format reflète une génération de machines, de logiciels et de choix musicaux.
Les modules tracker sont nés dans des environnements comme Amiga et DOS, mais leur logique peut aujourd’hui vivre directement dans un navigateur. Parser, moteur de replay, Web Audio, commandes de jeu et téléchargement : voici comment relier ce patrimoine musical à une interface Web moderne.
Un module tracker contient ses samples, ses patterns et ses commandes, mais le résultat final dépend encore du moteur qui les interprète. Quirks historiques, mémoire des effets, interpolation, fréquence, filtres et compatibilité peuvent faire sonner différemment exactement le même fichier.
Dans un tracker, une note ne dit pas tout. Une colonne d’effet peut faire glisser sa hauteur, créer un vibrato, rejouer le sample, modifier le volume ou envoyer la lecture vers un autre pattern. Ces commandes constituent une véritable couche de programmation musicale exécutée tick après tick.
Le MOD avait posé les fondations, mais FastTracker II voulait aller beaucoup plus loin. Avec XM, le module gagne des instruments multisamples, des enveloppes de volume et de panoramique, davantage de canaux et une structure capable de conserver une composition bien plus expressive.
FastTracker II a transformé l’écran DOS en véritable studio de composition. Patterns verticaux, instruments, samples, enveloppes, effets et raccourcis clavier forment un workflow où la musique se construit presque comme du code. Découvrons la logique de FT2 et pourquoi elle reste fascinante aujourd’hui.
Que trouve-t-on réellement à l’intérieur d’un fichier MOD ? Derrière l’extension se cache une organisation précise : titre, descriptions des samples, table d’ordre, patterns, canaux, notes, effets et données audio. Ouvrons conceptuellement le module pour comprendre comment un lecteur reconstruit la musique.
Avant FastTracker II, XM et les trackers modernes, une idée décisive s'impose sur Amiga : construire un morceau avec des échantillons, des canaux, des patterns et une séquence de lecture. Retour aux fondations de la musique tracker et au format MOD.
Avant le streaming et les stations audio modernes, les trackers ont proposé une autre manière de composer : assembler des échantillons, des notes, des patterns et des commandes que le lecteur interprète en temps réel. Une logique musicale proche à la fois de la partition, du séquenceur et du programme.