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 >
Text File  |  1995-08-21  |  13KB  |  394 lines

  1. ***************************************************************************
  2. ***********                            ***********
  3. ***********                            ***********
  4. ***********   Description des différents formats SoundTracker    ***********
  5. ***********                            ***********
  6. ***********    Format MegaTracker par Axel Follet et Simplet    ***********
  7. ***********            Version 1.1            ***********
  8. ***********                            ***********
  9. ***********                            ***********
  10. ***********        Par Simplet / FATAL DESIGN        ***********
  11. ***********                            ***********
  12. ***************************************************************************
  13.  
  14.  
  15. Structure du Header d'un fichier MGT :
  16. --------------------------------------
  17.  
  18.             RsReset
  19.  
  20. MGT_Chunk        rs.b    3    * "MGT"
  21. MGT_Version        rs.b    1    * $11, $xy pour Version x.y
  22. MGT_Copyright        rs.b    4    * "©MCS"
  23. MGT_Nb_Voices        rs.w    1    * Nombre de Voies
  24. MGT_Nb_Musics        rs.w    1    * Nombre de Musiques
  25. MGT_Nb_Orders        rs.w    1    * Nombre de Positions
  26. MGT_Nb_Patterns        rs.w    1    * Nombre de Patterns
  27. MGT_Nb_Tracks        rs.w    1    * Nombre de Pistes sauvées (sans la 0)
  28. MGT_Nb_Samples        rs.w    1    * Nombre de Samples
  29. MGT_Attributes        rs.w    1    * Inutilisé pour l'instant
  30. MGT_Reserved        rs.l    1    * Réservé pour le futur
  31.  
  32. MGT_Musics        rs.l    1    * Adresse des Musics
  33. MGT_Sequences        rs.l    1    * Adresse des Sequences
  34. MGT_Samples_Infos    rs.l    1    * Adresse des Infos Samples
  35. MGT_Patterns        rs.l    1    * Adresse des Patterns
  36. MGT_Tracks_Ptr        rs.l    1    * Adresse des Pointeurs de Piste
  37. MGT_Samples_Data    rs.l    1    * Adresse des Données Samples
  38. MGT_Samples_Length    rs.l    1    * Longueur Totale des Samples
  39. MGT_Tracks_Length    rs.l    1    * Longueur des Tracks Dépackées
  40.  
  41. * Les différentes sections peuvent être n'importe où dans le fichier sauf
  42. * les pistes packées et les samples qui se trouvent obligatoirement dans
  43. * cet ordre à la fin du fichier...
  44.  
  45. Structure d'une Music :
  46. -----------------------
  47.  
  48.             RsReset
  49.  
  50. Music_Name        rs.b    32    * Nom de la Musique
  51. Music_Sequence        rs.l    1    * Adresse de la Sequence
  52. Music_Length        rs.w    1    * Longueur de la Sequence
  53. Music_Restart        rs.w    1    * Position de Rebouclage
  54. Music_Initial_Tempo    rs.b    1    * Tempo initial
  55. Music_Initial_Speed    rs.b    1    * Vitesse initiale
  56. Music_Initial_Global    rs.w    1    * Volume Global de Fade-Out initial
  57. Music_Initial_Master_L    rs.b    1    * Volumes Master Gauche et Droit
  58. Music_Initial_Master_R    rs.b    1    * de 0 à 255, Volume Normal = 32
  59. Music_Initial_Stereos    rs.w    Nb_Voices
  60. * Positions stéréo pour chacune des voies (en nombre Nb_Voices)
  61. * 2 octets, Volumes Gauche et Droit, de 0 à 255 chacun
  62. * Pour un volume normal, la somme Gauche+Droit fait 255 ou 256.
  63.  
  64. Structure d'infos sample et de header d'instrument MGS :
  65. --------------------------------------------------------
  66.  
  67.             RsReset
  68.  
  69. Sample_Name        rs.b    32    * 32 caractères
  70.  
  71. Sample_Start        rs.l    1    * Adresse début du Sample
  72. Sample_Length        rs.l    1    * Taille du sample en unités
  73. Sample_Loop_Start    rs.l    1    * Offset début Boucle en unités
  74. Sample_Loop_Length    rs.l    1    * Taille de la Boucle en unités
  75. Sample_Buffer_Length    rs.l    1    * Taille Minimale du Buffer en unités
  76. Sample_End_Length    rs.l    1    * Taille de la fin du sample après le buffer
  77.  
  78. Sample_Base        rs.l    1    * Fréquence de Replay pour le DO-4
  79. Sample_Volume        rs.w    1    * Volume par défaut de 0 à 1024
  80. Sample_Panoramic    rs.b    2    * Volumes Gauche et Droit de 0 à 255
  81.                     * par défaut, 0 si y'en a pas
  82. Sample_Attributes    rs.b    1    * bits 0 et 1 : Loop Mode -->
  83.                     *  0 = Loop Off,  1 = Forward Loop
  84.                     *  2 = Ping-Pong Loop, 3 réservé
  85.  
  86. Sample_Fine_Tune    rs.b    1    * de 0 à 15  =  0 à 7 et -8 à -1
  87.  
  88.             rs.b    1    * Inutilisé
  89. Sample_Drum_Note    rs.b    1    * Informations stockées
  90. Sample_Drum_Volume    rs.b    1    * par le Tracker
  91. Sample_Drum_Command    rs.b    1    * pour le mode
  92. Sample_Drum_Parameter    rs.w    1    * Drum Edit
  93.  
  94. Sample_Midi_Note    rs.l    1    * Note au format MIDI
  95. Sample_Reserved        rs.l    1    * 4 octets Réservés
  96.  
  97. Sample_Size        rs.b    0    * 80 octets
  98.  
  99. Table des Sequences :
  100. ---------------------
  101.  
  102.             RsReset
  103.  
  104. Sequences        rs.w    Nb_Orders
  105. * Numéros de Pattern sur un word pour chaque Position des Séquences
  106.  
  107. Structure d'un Pattern :
  108. ------------------------
  109.  
  110.             RsReset
  111.  
  112. Pattern_Length        rs.w    1        * Nombre de Lignes du Pattern
  113. Pattern_Tracks        rs.w    Nb_Voices    * Numéro de chaque Piste
  114.                         * pour chaque voie
  115. Table des Adresses de Piste :
  116. -----------------------------
  117.  
  118.             RsReset
  119.  
  120. Tracks_Adresses        rs.l    Nb_Tracks    * Adresses des Pistes
  121.  
  122. Structure d'une Piste (Track) :
  123. -------------------------------
  124.  
  125.             RsReset
  126.  
  127. Track_Length        rs.w    1    * Nombre de Lignes de la Piste
  128. Track_Data        rs.w    1    * Infos Note Packées
  129.  
  130. Structure d'une Info Note Packée :
  131. ----------------------------------
  132.  
  133.    Octet de Commande :    bit 2 à 1 pour indiquer Note
  134.             bit 3 à 1 pour indiquer No de Sample
  135.             bit 4 à 1 pour indiquer Volume
  136.             bit 5 à 1 pour indiquer Effet
  137.             bit 6 à 1 pour indiquer Paramètre 1
  138.             bit 7 à 1 pour indiquer Paramètre 2
  139.  
  140.             bits 0 et 1 : 0 à 3
  141.             Donne le nombre de lignes vides avant de coder
  142.             la ligne indiquée par les bits 2 à 7.
  143.  
  144.    Suivent les octets de données suivant les bits 2 à 7
  145.  
  146. Structure d'une Info Note dépackée :
  147. ------------------------------------
  148.  
  149. *** Les effets prévus mais non-encore implémentés sont précédés de ***
  150.  
  151.    Octet 0 : Numéro de la Note à jouer
  152.         0 = No New Note        Ne joue pas de nouvelle note
  153.         1 = Note Cut         Coupe le sample
  154.         Sinon :
  155.         12 + Numéro de note de 0 à 11  +  12 * Octave
  156.         Il y a 8 octaves : de 0 à 7, les mêmes que dans les S3M
  157.         les octaves 3,4,5 sont les octaves Amiga 1,2,3
  158.  
  159.    Octet 1 : Numéro de Sample = de 1 à 255, 0 = pas de changement
  160.  
  161.    Octet 2 : Colonne de Volume identique au format XM
  162.         0 (--) = Pas de changement
  163.  
  164.         10 à 50 (00 à 40) = Nouveau Volume échelle Amiga,
  165.                     ensuite multiplié par 16.
  166.  
  167.         60 à 6F (<0 à <F) = Volume Slide Down
  168.         70 à 7F (>0 à >F) = Volume Slide Up
  169.         80 à 8F (-0 à -F) = Fine Volume Slide Down
  170.         90 à 9F (+0 à +F) = Fine Volume Slide Up
  171.         A0 à AF (S0 à SF) = Set Vibrato Speed
  172.         B0 à BF (V0 à VF) = Vibrato
  173.         C0 à CF (P0 à PF) = Set Panoramic Pos
  174.         D0 à DF (L0 à LF) = Panning Slide Left
  175.         E0 à EF (R0 à RF) = Panning Slide Right
  176.         F0 à FF (T0 à TF) = Tone Portamento
  177.  
  178.    Octet 3 : Numéro d'effet
  179.  
  180.    Octets 4 et 5 : Paramètres de l'effet
  181.  
  182.  
  183. Les Effets dérivés du Protracker (2.2a) :
  184. -----------------------------------------
  185.  
  186.    Les octets de paramètre sont notés XYZT
  187.    Le Volume est Linéaire et varie de 0 à 1024,
  188.    16 fois plus précis que pour les modules Amiga
  189.    => Volumes Amiga décalés d'un chiffre hexadécimal vers la gauche.
  190.    Les Périodes pour les portamentos ou le vibrato sont les mêmes que sur
  191.    Amiga, mais 256 fois plus précises
  192.    => Periodes Amiga décalées de deux chiffres hexadécimaux vers la gauche.
  193.  
  194.  
  195.  Numéro        Nom            Description
  196.  
  197.    0    Rien ou Arpeggio    Changement rapide entre 3 notes
  198.                 Note normale, Note + X et Note + Y
  199.  
  200.                 Si $ZT différent de 0, alors l'arpègge
  201.                 est effectué sur 5 Notes :
  202.                 Note Normale, + X, + Y, + Z et + T
  203.  
  204.    1    Portamento Up        Augmente la Hauteur de la Note
  205.                 en diminuant sa période de $XYZT à chaque
  206.                 'tick' de chaque ligne
  207.  
  208.    2    Portamento Down        Diminue la Hauteur de la Note
  209.                 en augmentant sa période de $XYZT à chaque
  210.                 'tick' de chaque ligne
  211.  
  212.    3    Tone Portamento        'Liaison' entre deux Notes, Rapproche la
  213.                 période actuelle de la période de la Note
  214.                 désirée en l'augmentant ou la diminuant de
  215.                 $XYZT à chaque Ligne (vitesse)
  216.  
  217.    4    Vibrato            Fait osciller la période (à chaque 'tick')
  218.                     X est la vitesse
  219.                     YZT est l'amplitude
  220.  
  221.    5    Tone Portamento        Conserve l'effet de Tone Portamento
  222.     + Volume Slide        et effectue un Volume Slide (Effet No A)
  223.  
  224.    6    Vibrato            Conserve l'effet de Vibrato
  225.     + Volume Slide        et effectue un Volume Slide (Effet No A)
  226.  
  227.    7    Tremolo            Vibrato sur le Volume, même fonctionnement
  228.  
  229.    8    Set Fine Panoramic Pos    $XY Fixe la balance de la voie :
  230.                 $00 Gauche..$80 Milieu..$ff Droite
  231.  
  232.    9    Sample Offset        Augmente le point de départ du sample
  233.                 de $XYZT0 octets.
  234.  
  235.    A    Volume Slide        Augmente le Volume de $XY ou
  236.                 le diminue de $ZT à chaque 'tick' de chaque
  237.                 ligne et $XY est prioritaire
  238.  
  239.    B    Position Jump        Saute à la position numéro $XYZT
  240.                 de la séquence des patterns.
  241.  
  242.    C    Volume Change        Fixe le Volume Courant à $XYZT
  243.  
  244.    D    Pattern Break        Passe à la position suivante dans la
  245.                 séquence et commence le pattern à la ligne
  246.                 $XYZT, attention, ce n'est plus un codage
  247.                 BCD (décimal) mais Hexadécimal !!
  248.  
  249.    F    Set Speed/Tempo        Speed = $XY de 1 à 255      0 = pas de
  250.                 Tempo = $ZT de 16 à 255      changement
  251.  
  252.  
  253.    Les Effets Etendus EX se retrouvent de $10 à $1f
  254.  
  255.    10    Set Filter        Ignoré, pour l'instant, car il est
  256.                 prévu de rajouter des effets sur le son
  257.                 type filtre, equalizer, pitch bending...
  258.  
  259.    11    Fine Portamento Up    Idem Portamento Up, sauf que la
  260.                 période n'est diminuée de $XYZT qu'une
  261.                 seule fois par ligne (au 1er 'tick')
  262.  
  263.    12    Fine Portamento Down    Idem Portamento Down, sauf que la
  264.                 période n'est augmentée de $XYZT qu'une
  265.                 seule fois par ligne (au 1er 'tick')
  266.  
  267.    13    Set Glissando Control    Y : 1 = On,  0 = Off
  268.                 A utiliser avec le Tone Portamento
  269.                 Si Off, on a un Tone Portamento normal
  270.                 sinon le glissement entre les deux
  271.                 périodes se fait demi-ton par demi-ton
  272.  
  273.    14    Set Vibrato Waveform    Y Fixe le type de courbe utilisée pour
  274.                 le Vibrato :
  275.                 0:    Sinusoïde (par défaut)
  276.                 1:    Ramp Down
  277.                 2:    Onde Carrée
  278.                    *3:    Aléatoire (l'un des 3 autres)
  279.  
  280.                 +4:    pour ne pas réinitialiser
  281.                 la courbe à chaque nouvelle note
  282.  
  283.    15    Set Fine Tune        $Y Fixe le Fine Tune du Sample :
  284.                 de 0 à $f  <=> de 0 à 7 et -8 à -1
  285.                 huitièmes de demi-ton
  286.  
  287.    16    Pattern Loop        $XYZT vaut 0 pour fixer le début de la
  288.                 boucle. Sinon, c'est le nombre de fois
  289.                 à répéter jusqu'à cette position.
  290.  
  291.    17    Set Tremolo Waveform    Fixe le type de courbe utilisée pour
  292.                 le Tremolo. Idem commande $14
  293.  
  294.    18    Set Panoramic Position    $Y Fixe la balance de la voie :
  295.                 $0 Gauche...7/8 Milieu...$f Droite
  296.  
  297.    19    Note Retrig        Rejoue la note plusieurs fois entre
  298.     + Volume Slide        deux lignes. $XY est le nombre de
  299.                 'ticks' au bout desquels on rejoue
  300.                 la note.
  301.     Avec un Speed de 6, si on indique 3, la note ne sera rejouée
  302.     qu'une seule fois donc 2 fois en tout (6/3).
  303.     Avec un Speed de 9, si on indique 2, la note sera rejouée
  304.     3 fois de plus donc 4 fois en tout (9/2=4.5)
  305.  
  306.     En plus, $T permet de spécifiee le type de modification de
  307.     volume à appliquer à chaque fois que le sample est rejoué :
  308.     0: rien                8: rien
  309.     1: -$10                9: +$10
  310.     2: -$20                A: +$20
  311.     3: -$40                B: +$40
  312.     4: -$80                C: +$80
  313.     5: -$100            D: +$100
  314.     6: 2/3 du volume précédent    E: 3/2 fois le volume précédent
  315.     7: 1/3 du volume précédent    F: 2 fois le volume précédent
  316.  
  317.  
  318.    1A    Fine Volume Slide Up    Augmente le volume de $XYZT au 1er
  319.                 'tick' de la ligne seulement.
  320.  
  321.    1B    Fine Volume Slide Down    Diminue le volume de $XYZT au 1er
  322.                 'tick' de la ligne seulement.
  323.  
  324.    1C    Note Cut        Coupe la note (Volume 0) au bout de
  325.                 $XY 'ticks' dans la ligne. Cela permet
  326.                 de faire des notes extrêmement courtes.
  327.  
  328.    1D    Note Delay        Ne joue la note qu'au bout de $XY 'ticks'
  329.  
  330.    1E    Pattern Delay        Passe au pattern suivant au bout de $XY
  331.                 lignes.
  332.  
  333. ***1F    Invert Loop        Vitesse en $Y
  334.  
  335. Les Effets Oktalyzer Amiga :
  336. ----------------------------
  337.  
  338.    20    Arpeggio 3        Note - X, Note normale, Note + Y
  339.  
  340.    21    Arpeggio 4        Note normale, Note + Y,
  341.                 Note normale, Note - X
  342.  
  343.    22    Arpeggio 5        Note + Y, Note + Y, Note normale
  344.  
  345.    23    Note Slide        Augmente le Numéro de la Note (compté en
  346.                 demi-tons) de $XY ou le Diminue de $ZT
  347.                 à chaque 'tick', $XY est prioritaire
  348.  
  349.    24    Fine Note Slide        Même chose mais seulement une fois par
  350.                 Ligne (au premier 'tick')
  351.  
  352. Les Effets S3M :
  353. ----------------
  354.  
  355.    25    Tremor            Joue la note pendant $XY 'ticks'
  356.                 et la coupe pendant $ZT etc..
  357.  
  358. Les Effets MegaTracker :
  359. ------------------------
  360.  
  361.    30    Set Master Mix Volume    Fixe le Volume Maitre de Mixage :
  362.                 $XY pour le canal Gauche
  363.                 $ZT pour le canal Droit
  364.  
  365.    31    Set Global Volume    Fixe le Volume Global de Fade-Out à
  366.                 $XYZT de 0 à 1024.
  367.  
  368.    32    Global Volume Slide    Augmente le Volume Global de $XY ou
  369.                 le diminue de $ZT à chaque 'tick' de chaque
  370.                 ligne et $XY est prioritaire
  371.  
  372.    33    Fine Global Vol Slide    Augmente le Volume Global de $XY ou
  373.                 le diminue de $ZT au 1er 'tick' de la ligne
  374.                 seulement et $XY est prioritaire
  375.  
  376.    34    Set Stereo        Fixe la panoramique de la voie :
  377.                 Volume Gauche à $XY
  378.                 et Volume Droit à $ZT.
  379.  
  380.    35    Stereo Slide        Augmente le Volume Gauche de $XY
  381.                 et le Volume Droit de $ZT à chaque
  382.                 'tick' de chaque ligne.
  383.  
  384.    36    Fine Stereo Slide    Augmente le Volume Gauche de $XY
  385.                 et le Volume Droit de $ZT au
  386.                 1er 'tick' de la ligne seulement.
  387.  
  388.    37    Set Base        Fixe la fréquence de Replay du DO-4 à
  389.                 $XYZT Hz. Intervalle 1500 à 50066 Hz.
  390.  
  391.    38    Release Sample        Joue la fin du Sample après la Boucle.
  392.  
  393. ***39    Inverse Sample        Joue le sample à l'envers.
  394.