home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 4: The Falcon Archive
/
nf_archive_four_v1.0.iso
/
ARCHIVE
/
WORK
/
MSX
/
MEGPL116.ZIP
/
MGPL-116
/
FORMATS
/
MGTK.TXT
< prev
next >
Wrap
Text File
|
1995-08-21
|
13KB
|
394 lines
***************************************************************************
*********** ***********
*********** ***********
*********** Description des différents formats SoundTracker ***********
*********** ***********
*********** Format MegaTracker par Axel Follet et Simplet ***********
*********** Version 1.1 ***********
*********** ***********
*********** ***********
*********** Par Simplet / FATAL DESIGN ***********
*********** ***********
***************************************************************************
Structure du Header d'un fichier MGT :
--------------------------------------
RsReset
MGT_Chunk rs.b 3 * "MGT"
MGT_Version rs.b 1 * $11, $xy pour Version x.y
MGT_Copyright rs.b 4 * "©MCS"
MGT_Nb_Voices rs.w 1 * Nombre de Voies
MGT_Nb_Musics rs.w 1 * Nombre de Musiques
MGT_Nb_Orders rs.w 1 * Nombre de Positions
MGT_Nb_Patterns rs.w 1 * Nombre de Patterns
MGT_Nb_Tracks rs.w 1 * Nombre de Pistes sauvées (sans la 0)
MGT_Nb_Samples rs.w 1 * Nombre de Samples
MGT_Attributes rs.w 1 * Inutilisé pour l'instant
MGT_Reserved rs.l 1 * Réservé pour le futur
MGT_Musics rs.l 1 * Adresse des Musics
MGT_Sequences rs.l 1 * Adresse des Sequences
MGT_Samples_Infos rs.l 1 * Adresse des Infos Samples
MGT_Patterns rs.l 1 * Adresse des Patterns
MGT_Tracks_Ptr rs.l 1 * Adresse des Pointeurs de Piste
MGT_Samples_Data rs.l 1 * Adresse des Données Samples
MGT_Samples_Length rs.l 1 * Longueur Totale des Samples
MGT_Tracks_Length rs.l 1 * Longueur des Tracks Dépackées
* Les différentes sections peuvent être n'importe où dans le fichier sauf
* les pistes packées et les samples qui se trouvent obligatoirement dans
* cet ordre à la fin du fichier...
Structure d'une Music :
-----------------------
RsReset
Music_Name rs.b 32 * Nom de la Musique
Music_Sequence rs.l 1 * Adresse de la Sequence
Music_Length rs.w 1 * Longueur de la Sequence
Music_Restart rs.w 1 * Position de Rebouclage
Music_Initial_Tempo rs.b 1 * Tempo initial
Music_Initial_Speed rs.b 1 * Vitesse initiale
Music_Initial_Global rs.w 1 * Volume Global de Fade-Out initial
Music_Initial_Master_L rs.b 1 * Volumes Master Gauche et Droit
Music_Initial_Master_R rs.b 1 * de 0 à 255, Volume Normal = 32
Music_Initial_Stereos rs.w Nb_Voices
* Positions stéréo pour chacune des voies (en nombre Nb_Voices)
* 2 octets, Volumes Gauche et Droit, de 0 à 255 chacun
* Pour un volume normal, la somme Gauche+Droit fait 255 ou 256.
Structure d'infos sample et de header d'instrument MGS :
--------------------------------------------------------
RsReset
Sample_Name rs.b 32 * 32 caractères
Sample_Start rs.l 1 * Adresse début du Sample
Sample_Length rs.l 1 * Taille du sample en unités
Sample_Loop_Start rs.l 1 * Offset début Boucle en unités
Sample_Loop_Length rs.l 1 * Taille de la Boucle en unités
Sample_Buffer_Length rs.l 1 * Taille Minimale du Buffer en unités
Sample_End_Length rs.l 1 * Taille de la fin du sample après le buffer
Sample_Base rs.l 1 * Fréquence de Replay pour le DO-4
Sample_Volume rs.w 1 * Volume par défaut de 0 à 1024
Sample_Panoramic rs.b 2 * Volumes Gauche et Droit de 0 à 255
* par défaut, 0 si y'en a pas
Sample_Attributes rs.b 1 * bits 0 et 1 : Loop Mode -->
* 0 = Loop Off, 1 = Forward Loop
* 2 = Ping-Pong Loop, 3 réservé
Sample_Fine_Tune rs.b 1 * de 0 à 15 = 0 à 7 et -8 à -1
rs.b 1 * Inutilisé
Sample_Drum_Note rs.b 1 * Informations stockées
Sample_Drum_Volume rs.b 1 * par le Tracker
Sample_Drum_Command rs.b 1 * pour le mode
Sample_Drum_Parameter rs.w 1 * Drum Edit
Sample_Midi_Note rs.l 1 * Note au format MIDI
Sample_Reserved rs.l 1 * 4 octets Réservés
Sample_Size rs.b 0 * 80 octets
Table des Sequences :
---------------------
RsReset
Sequences rs.w Nb_Orders
* Numéros de Pattern sur un word pour chaque Position des Séquences
Structure d'un Pattern :
------------------------
RsReset
Pattern_Length rs.w 1 * Nombre de Lignes du Pattern
Pattern_Tracks rs.w Nb_Voices * Numéro de chaque Piste
* pour chaque voie
Table des Adresses de Piste :
-----------------------------
RsReset
Tracks_Adresses rs.l Nb_Tracks * Adresses des Pistes
Structure d'une Piste (Track) :
-------------------------------
RsReset
Track_Length rs.w 1 * Nombre de Lignes de la Piste
Track_Data rs.w 1 * Infos Note Packées
Structure d'une Info Note Packée :
----------------------------------
Octet de Commande : bit 2 à 1 pour indiquer Note
bit 3 à 1 pour indiquer No de Sample
bit 4 à 1 pour indiquer Volume
bit 5 à 1 pour indiquer Effet
bit 6 à 1 pour indiquer Paramètre 1
bit 7 à 1 pour indiquer Paramètre 2
bits 0 et 1 : 0 à 3
Donne le nombre de lignes vides avant de coder
la ligne indiquée par les bits 2 à 7.
Suivent les octets de données suivant les bits 2 à 7
Structure d'une Info Note dépackée :
------------------------------------
*** Les effets prévus mais non-encore implémentés sont précédés de ***
Octet 0 : Numéro de la Note à jouer
0 = No New Note Ne joue pas de nouvelle note
1 = Note Cut Coupe le sample
Sinon :
12 + Numéro de note de 0 à 11 + 12 * Octave
Il y a 8 octaves : de 0 à 7, les mêmes que dans les S3M
les octaves 3,4,5 sont les octaves Amiga 1,2,3
Octet 1 : Numéro de Sample = de 1 à 255, 0 = pas de changement
Octet 2 : Colonne de Volume identique au format XM
0 (--) = Pas de changement
10 à 50 (00 à 40) = Nouveau Volume échelle Amiga,
ensuite multiplié par 16.
60 à 6F (<0 à <F) = Volume Slide Down
70 à 7F (>0 à >F) = Volume Slide Up
80 à 8F (-0 à -F) = Fine Volume Slide Down
90 à 9F (+0 à +F) = Fine Volume Slide Up
A0 à AF (S0 à SF) = Set Vibrato Speed
B0 à BF (V0 à VF) = Vibrato
C0 à CF (P0 à PF) = Set Panoramic Pos
D0 à DF (L0 à LF) = Panning Slide Left
E0 à EF (R0 à RF) = Panning Slide Right
F0 à FF (T0 à TF) = Tone Portamento
Octet 3 : Numéro d'effet
Octets 4 et 5 : Paramètres de l'effet
Les Effets dérivés du Protracker (2.2a) :
-----------------------------------------
Les octets de paramètre sont notés XYZT
Le Volume est Linéaire et varie de 0 à 1024,
16 fois plus précis que pour les modules Amiga
=> Volumes Amiga décalés d'un chiffre hexadécimal vers la gauche.
Les Périodes pour les portamentos ou le vibrato sont les mêmes que sur
Amiga, mais 256 fois plus précises
=> Periodes Amiga décalées de deux chiffres hexadécimaux vers la gauche.
Numéro Nom Description
0 Rien ou Arpeggio Changement rapide entre 3 notes
Note normale, Note + X et Note + Y
Si $ZT différent de 0, alors l'arpègge
est effectué sur 5 Notes :
Note Normale, + X, + Y, + Z et + T
1 Portamento Up Augmente la Hauteur de la Note
en diminuant sa période de $XYZT à chaque
'tick' de chaque ligne
2 Portamento Down Diminue la Hauteur de la Note
en augmentant sa période de $XYZT à 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
$XYZT à chaque Ligne (vitesse)
4 Vibrato Fait osciller la période (à chaque 'tick')
X est la vitesse
YZT 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 Set Fine Panoramic Pos $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 $XYZT0 octets.
A Volume Slide Augmente le Volume de $XY ou
le diminue de $ZT à chaque 'tick' de chaque
ligne et $XY est prioritaire
B Position Jump Saute à la position numéro $XYZT
de la séquence des patterns.
C Volume Change Fixe le Volume Courant à $XYZT
D Pattern Break Passe à la position suivante dans la
séquence et commence le pattern à la ligne
$XYZT, attention, ce n'est plus un codage
BCD (décimal) mais Hexadécimal !!
F Set Speed/Tempo Speed = $XY de 1 à 255 0 = pas de
Tempo = $ZT de 16 à 255 changement
Les Effets Etendus EX se retrouvent de $10 à $1f
10 Set Filter Ignoré, pour l'instant, car il est
prévu de rajouter des effets sur le son
type filtre, equalizer, pitch bending...
11 Fine Portamento Up Idem Portamento Up, sauf que la
période n'est diminuée de $XYZT qu'une
seule fois par ligne (au 1er 'tick')
12 Fine Portamento Down Idem Portamento Down, sauf que la
période n'est augmentée de $XYZT qu'une
seule fois par ligne (au 1er 'tick')
13 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
14 Set Vibrato Waveform Y Fixe le type de courbe utilisée pour
le Vibrato :
0: Sinusoïde (par défaut)
1: Ramp Down
2: Onde Carrée
*3: Aléatoire (l'un des 3 autres)
+4: pour ne pas réinitialiser
la courbe à chaque nouvelle note
15 Set Fine Tune $Y Fixe le Fine Tune du Sample :
de 0 à $f <=> de 0 à 7 et -8 à -1
huitièmes de demi-ton
16 Pattern Loop $XYZT vaut 0 pour fixer le début de la
boucle. Sinon, c'est le nombre de fois
à répéter jusqu'à cette position.
17 Set Tremolo Waveform Fixe le type de courbe utilisée pour
le Tremolo. Idem commande $14
18 Set Panoramic Position $Y Fixe la balance de la voie :
$0 Gauche...7/8 Milieu...$f Droite
19 Note Retrig Rejoue la note plusieurs fois entre
+ Volume Slide deux lignes. $XY est le nombre de
'ticks' au bout desquels on rejoue
la note.
Avec un Speed de 6, si on indique 3, la note ne sera rejouée
qu'une seule fois donc 2 fois en tout (6/3).
Avec un Speed de 9, si on indique 2, la note sera rejouée
3 fois de plus donc 4 fois en tout (9/2=4.5)
En plus, $T permet de spécifiee le type de modification de
volume à appliquer à chaque fois que le sample est rejoué :
0: rien 8: rien
1: -$10 9: +$10
2: -$20 A: +$20
3: -$40 B: +$40
4: -$80 C: +$80
5: -$100 D: +$100
6: 2/3 du volume précédent E: 3/2 fois le volume précédent
7: 1/3 du volume précédent F: 2 fois le volume précédent
1A Fine Volume Slide Up Augmente le volume de $XYZT au 1er
'tick' de la ligne seulement.
1B Fine Volume Slide Down Diminue le volume de $XYZT au 1er
'tick' de la ligne seulement.
1C Note Cut Coupe la note (Volume 0) au bout de
$XY 'ticks' dans la ligne. Cela permet
de faire des notes extrêmement courtes.
1D Note Delay Ne joue la note qu'au bout de $XY 'ticks'
1E Pattern Delay Passe au pattern suivant au bout de $XY
lignes.
***1F Invert Loop Vitesse en $Y
Les Effets Oktalyzer Amiga :
----------------------------
20 Arpeggio 3 Note - X, Note normale, Note + Y
21 Arpeggio 4 Note normale, Note + Y,
Note normale, Note - X
22 Arpeggio 5 Note + Y, Note + Y, Note normale
23 Note Slide Augmente le Numéro de la Note (compté en
demi-tons) de $XY ou le Diminue de $ZT
à chaque 'tick', $XY est prioritaire
24 Fine Note Slide Même chose mais seulement une fois par
Ligne (au premier 'tick')
Les Effets S3M :
----------------
25 Tremor Joue la note pendant $XY 'ticks'
et la coupe pendant $ZT etc..
Les Effets MegaTracker :
------------------------
30 Set Master Mix Volume Fixe le Volume Maitre de Mixage :
$XY pour le canal Gauche
$ZT pour le canal Droit
31 Set Global Volume Fixe le Volume Global de Fade-Out à
$XYZT de 0 à 1024.
32 Global Volume Slide Augmente le Volume Global de $XY ou
le diminue de $ZT à chaque 'tick' de chaque
ligne et $XY est prioritaire
33 Fine Global Vol Slide Augmente le Volume Global de $XY ou
le diminue de $ZT au 1er 'tick' de la ligne
seulement et $XY est prioritaire
34 Set Stereo Fixe la panoramique de la voie :
Volume Gauche à $XY
et Volume Droit à $ZT.
35 Stereo Slide Augmente le Volume Gauche de $XY
et le Volume Droit de $ZT à chaque
'tick' de chaque ligne.
36 Fine Stereo Slide Augmente le Volume Gauche de $XY
et le Volume Droit de $ZT au
1er 'tick' de la ligne seulement.
37 Set Base Fixe la fréquence de Replay du DO-4 à
$XYZT Hz. Intervalle 1500 à 50066 Hz.
38 Release Sample Joue la fin du Sample après la Boucle.
***39 Inverse Sample Joue le sample à l'envers.