*********************************************************************** *********** *********** *********** *********** *********** Descrition des diff‚rents formats SoundTracker *********** *********** *********** *********** Formats Amiga 4 … 32 voies *********** *********** *********** *********** *********** *********** Par Simplet / FATAL DESIGN *********** *********** *********** *********************************************************************** Structure d'infos sample : -------------------------- RsReset Amiga_Name rs.b 22 Amiga_Length rs.w 1 * Taille cod‚e en words Amiga_Fine_Tune rs.b 1 * de 0 … 15 = 0 … 7 et -8 … -1 Amiga_Volume rs.b 1 * de 0 … 64 Amiga_Repeat_Start rs.w 1 Amiga_Repeat_Length rs.w 1 Amiga_Size rs.b 1 * 30 octets Structure d'un fichier : ------------------------ Offset Longueur Valeur Song_Name 0 20 Nom du Module Song_Sample_Infos 20 31*Amiga_Size Infos sur les samples Song_Length 950 1 Longueur du Morceau Song_Restart 951 1 Position de Rebouclage Song_Sequence 952 128 S‚quence des Patterns Song_Chunk 1080 4 Module Chunk Song_Patterns 1084 Nb_Patterns*Pattern_Size Song_Samples 1084 Samples 8 bits Sign‚s +Nb_Patterns*Pattern_Size La Taille d'un pattern est de 4*Nb_Voies*64 Le Nombre de patterns dans un module est le num‚ro de pattern le plus haut + 1 car la num‚rotation des patterns commence … 0. Il faut pour le connaitre scanner la s‚quence et prendre le maximum. Le Restart est utilis‚ seulement par le NoiseTracker. Le ProTracker met $7f ou $78 … la place. Donc pour savoir s'il y a un Restart ou non, il faut comparer la valeur … la longueur du module, si il est plus petit, c'est que la valeur doit ˆtre bonne, sinon on d‚cide que Restart = 0 Pour les anciens modules 15 instruments, il y a la place pour 15 instruments dans les infos samples. Et il n'y a pas de Chunk. Donc pour les d‚tecter, il faut calculer la longueur qu'aurait le fichier si c'‚tait un module 15 samples et comparer avec la longueur r‚elle. De mˆme pour les modules 8 voies *.WOW du Grave Composer. Le Digital Tracker utilise ce format standard, si ce n'est qu'il y a un long mot de plus juste aprŠs le Chunk. Le premier mot donne le nombre de lignes d'un Pattern. La Fr‚quence de Base des Samples (DO-2) est 8363 Hz. Le Tempo par d‚faut est 125 et la vitesse 6. Structure d'un morceau : ------------------------ Le Morceau (Song) est compose de x positions auxquelles on associe un num‚ro de pattern au travers de la s‚quence des patterns (Song_Sequence) Dans la s‚quence, chaque num‚ro de pattern est cod‚ sur un octet. Un pattern est constitu‚ de 64 lignes de x voies, chaque colonne est cod‚e sur 4 octets de la manniŠre suivante : Word 0 : sssspppppppppppp Octet 2 : sssseeee Octet 3 : aaaaaaaa pppppppppppp : P‚riode de la note 0 = pas de Note ssssssss : Sample de 1 … 31 eeee : Effet aaaaaaaa : ParamŠtre de l'Effet Les Effets ProTracker : ----------------------- L'octet de paramŠtre est not‚ XY Num‚ro Nom Description 0 Rien ou Arpeggio Changement rapide entre 3 notes Note normale, Note + X et Note + Y 1 Portamento Up Augmente la Hauteur de la Note en diminuant sa p‚riode de $XY … chaque 'tick' de chaque ligne 2 Portamento Down Diminue la Hauteur de la Note en augmentant sa p‚riode de $XY … chaque 'tick' de chaque ligne 3 Tone Portamento 'Liaison' entre deux Notes, Rapproche la p‚riode actuelle de la p‚riode de la Note d‚sir‚e en l'augmentant ou la diminuant de $XY … chaque Ligne (vitesse) 4 Vibrato Fait osciller la p‚riode (… chaque 'tick') X est la vitesse Y est l'amplitude 5 Tone Portamento Conserve l'effet de Tone Portamento + Volume Slide et effectue un Volume Slide (Effet No A) 6 Vibrato Conserve l'effet de Vibrato + Volume Slide et effectue un Volume Slide (Effet No A) 7 Tremolo Vibrato sur le Volume, mˆme fonctionnement 8 Fine Pan Position $XY Fixe la balance de la voie : $00 Gauche..$80 Milieu..$ff Droite 9 Sample Offset Augmente le point de d‚part du sample de $XY00 octets. A Volume Slide Augmente le Volume de $X ou le diminue de $Y … chaque 'tick' de chaque ligne et $X est prioritaire B Position Jump Saute … la position num‚ro $XY de la s‚quence des patterns. C Volume Change Fixe le Volume Courant … $XY D Pattern Break Passe … la position suivante dans la s‚quence et commence le pattern … la ligne 10 * X + Y, c'est un codage en BCD. Donc le num‚ro apparait en d‚cimal E Effets Etendus Effet Etendu no X, paramŠtre Y F Set Speed/Tempo Si 0 < $XY <= 32, fixe la vitesse (Speed) entre deux lignes Si $XY > 32, fixe le Tempo. Effets Etendus EX: 0 Set Filter Y : 1 = On, 0 = Off (ne fonctionne que sur certains types trŠs particuliers d'Amiga) 1 Fine Portamento Up Idem Portamento Up, sauf que la p‚riode n'est diminu‚e de $Y qu'une seule fois par ligne (au 1er 'tick') 2 Fine Portamento Down Idem Portamento Down, sauf que la p‚riode n'est augment‚e de $Y qu'une seule fois par ligne (au 1er 'tick') 3 Set Glissando Control Y : 1 = On, 0 = Off A utiliser avec le Tone Portamento Si Off, on a un Tone Portamento normal sinon le glissement entre les deux p‚riodes se fait demi-ton par demi-ton 4 Set Vibrato Control Y Fixe le type de courbe utilis‚e pour le Vibrato : 0: Sinuso‹de (par d‚faut) 1: Ramp Down 2: Onde Carr‚e +4: pour ne pas r‚initialiser la courbe pour une nouvelle note 5 Set Fine Tune Y Fixe le Fine Tune du Sample : de 0 … 15 <=> de 0 … 7 et -8 … -1 huitiŠmes de demi-ton 6 Pattern Loop $Y vaut 0 pour fixer le d‚but de la boucle. Sinon, c'est le nombre de fois … r‚p‚ter jusqu'… cette position. 7 Set Tremolo Control Fixe le type de courbe utilis‚e pour le Tremolo. Idem commande $E4 8 Set Pan Position $Y Fixe la balance de la voie : ( Parfois Stop ) $0 Gauche...$7 Milieu...$f Droite 9 Retrig Note Rejoue la note plusieurs fois entre deux lignes. $Y est le nombre de 'ticks' au bout desquels on rejoue la note. Donc avec un Speed de 6 Si on indique 3, la note ne sera rejou‚e qu'une seule fois. Avec un Speed de 8, si on indique 2 la note sera rejou‚e 3 fois de plus A Fine Volume Slide Up Idem Volume Slide Up, sauf que le volume n'est augment‚ de $Y qu'une seule fois par ligne (au 1er 'tick') B Fine Volume Slide Down Idem Volume Slide Down, sauf que le volume n'est diminu‚ de $Y qu'une seule fois par ligne (au 1er 'tick') C Note Cut Coupe la note (Volume 0) au bout de $Y 'ticks' dans la ligne. Cela permet de faire des notes extrˆmement courtes. D Note Delay Ne joue la note qu'au bout de $Y 'ticks' E Pattern Delay Passe au pattern suivant au bout de $Y lignes. F Funk It Vitesse en $Y Invert Loop Les positions st‚r‚o s'enchainent comme ceci : ---------------------------------------------- Left - Right - Right - Left - Left - Right - Right - Left Les diff‚rents Chunk possibles sont : ------------------------------------- Chunk Nombre de Voies Tracker Extensions M.K. 4 Noise/Pro-Tracker .MOD/.NST M!K! 4 Noise/Pro-Tracker .MOD/.NST M&K& 4 Noise/Pro-Tracker .MOD/.NST M.K. 8 Grave Composer .WOW RASP 4 StarTrekker .MOD/.NST FLT4 4 StarTrekker .MOD/.NST FLT8 8 StarTrekker .MOD/.WOW/.OCT 6CHN 6 FastTracker .MOD 8CHN 8 FastTracker .MOD/.WOW/.OCT xxCH xx FastTracker .MOD CD81 8 Octalyser .MOD OCTA 8 Octalyser .MOD/.WOW/.OCT FA04 4 Digital Tracker .MOD FA06 6 Digital Tracker .MOD FA08 8 Digital Tracker .MOD ???? 4 Old 15 Samples Module .MOD/.SD0