*********************************************************************** *********** *********** *********** *********** *********** Descrition des diff‚rents formats SoundTracker *********** *********** *********** *********** Format MultiTracker MTM *********** *********** *********** *********** *********** *********** Par Simplet / FATAL DESIGN *********** *********** *********** *********************************************************************** Structure d'infos sample : -------------------------- RsReset MTM_Name rs.b 22 MTM_Length rs.l 1 * Attention MTM_Repeat_Start rs.l 1 * … ce format MTM_Repeat_End rs.l 1 * Intel de Merde !! MTM_Fine_Tune rs.b 1 * de 0 … 15 = 0 … 7 et -8 … -1 MTM_Volume rs.b 1 * de 0 … 64 MTM_Attributes rs.b 1 * bit 0 --> 0 = 8 bits, 1 = 16 bits MTM_Size rs.b 1 * 37 octets Structure d'un fichier : ------------------------ Offset Longueur Valeur Song_Chunk 0 3 'MTM' Song_Version 3 1 Version x.y $xy Song_Name 4 20 Nom du Morceau Song_Nb_Tracks 24 2 Nombre de Pistes sauv‚es Song_Last_Pattern 26 1 Nombre de Patterns - 1 Song_Last_Position 27 1 Longueur du Module - 1 Song_Length_Extra 28 2 Taille de la zone Extra-Comment Song_Nb_Samples 30 1 Nombre de Samples sauv‚s Song_Attributes 31 1 0 pour l'instant, inutilis‚ Song_Nb_Beats 32 1 Nombre de lignes d'une piste Song_Nb_Voices 33 1 Nombre de Voies … jouer Song_Voices_Pan 34 32 Positions panoramiques des voies Song_Sample_Infos 66 Nb_Samples*Sample_Size Song_Sequence 66 128 S‚quence des Patterns + 37*Nb_S Song_Tracks 194 Nb_Tracks*Track_Size + 37*Nb_S Song_Tracks_Seq 194 32*2*( Last_Pattern + 1 ) + 37*Nb_S +192*Nb_T Song_Extra_Comment 194 Song_Length_Extra + 37*Nb_S +192*Nb_T + 32*2*(Last_Pat+1) Song_Samples 194 Samples Non Sign‚s + 37*Nb_S +192*Nb_T + 32*2*(Last_Pat+1) + Song_Length_Extra La Fr‚quence de Base des Samples est 8363 Hz. Le Tempo par d‚faut est 125 et la vitesse 6. Structure d'un morceau : ------------------------ Le Morceau (Song) est compos‚ 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. Chaque pattern est compos‚ de x voies (Voices), chaque voie est associ‚e … un num‚ro de Piste (Track) grƒce … la table Song_Tracks_Seq Dans cette table, on donne le num‚ro de piste sur un word (format Intel encore une fois !!!) pour chacune des 32 pistes. Le num‚ro 0 correspond … la piste vide qui n'est jamais sauv‚e dans le fichier. Une piste est constitu‚e de 64 lignes de 3 octets chacune : Octet 0 : ppppppss Octet 1 : sssseeee Octet 2 : aaaaaaaa pppppp : Pitch = No Note 0 = pas de nouvelle note ssssss : No Sample de 1 … 63 eeee : No Effet Compatibles ProTracker 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