Liste des commandes des piste

#### 01xx - Portamento up

Monte la frequence de la note. `xx` donne la vitesse de montee. Si le parametre est nul, c'est le dernier parametre non nul qui est pris en compte.

#### 02xx - Portamento down

Descend la frequence la note. `xx` donne la vitesse de descente.

#### 03xx - Tone portamento

Permet de lier 2 notes, a la vitesse `xx`. Si `xx` = 0, le parametre du Tone Portamento precedent est repris.
Exemple:

`C-2 1 ....
....
D-2 1 .306
.303
.300
.300
`

Lors du D2, a cause du Tone Portamento, la note n'est pas jouee, mais le son monte comme pour un portamento classique. A la ligne suivante, la vitesse est changee. Et a la ligne d'apres, la vitesse n'est pas nulle mais le parametre precedent est repris. Quand le son atteint la frequence du D2, l'effet prend fin. `03xx` doit donc etre repete autant de fois que necessaire pour que la liaison s'acheve.

#### 04xy - Vibrato

Module la frequence d'une note. `x` est la vitesse (plus `x` est grand, plus le vibrato est rapide) et `y` l'amplitude. Si `x` ou `y` sont nuls, les parametres correspondants sont repris de la derniere commande

#### 05xx - Tone portamento + Vibrato

Melange du Tone P. et du vibrato. Le parametre `xx` est celui du Tone portamento. Le vibrato a pour parametre celui du dernier utilise.
Exemple:

`C-2 1 .482` | Vibrato de vitesse 8 et d'amplitude 2
`.400` | Continue le vibrato
`D-2 1 .502` | Liaison vitesse 2, continue le vibrato
`.500` | Continue le vibrato et la liaison
`.500` |

#### 06xy - Vibrato + Tone portamento

Idem, sauf que `xy` est le parametre du vibrato.

#### 07xy - Tremolo

Module le volume d'une note. `x` est la vitesse (plus `x` est grand, plus le tremolo est rapide) et `y` l'amplitude. Le volume ne peut cependant pas exceder 100. Comme d'habitude, les parametres de la derniere commande sont repris si `x` ou `y` sont nuls.

#### 08xy - Detune

Modifie la frequence d'une note immediatement.

`x` : Frequence +
`y` : Frequence -

`x` et `xy` permettent de modifier la frequence de presque 2 demi-tons. (-16...-8...0...+8...+15)

#### 09xx - Note delay

Attend `xx` ticks (1 tick = 1/50eme de seconde environ) avant de jouer la note. Si `xx` est superieur a la vitesse de la partition, la note n'est pas jouee.
Cette fonction est tres utile pour jouer des notes en triolets, ou toute autre decomposition inhabituelle du temps.
Exemple:

`C-2 1 ....` | `1 2 3 4 5 6`
`D-2 1 .902` | `1 2|3 4 5 6`
`E-2 1 .904` | `1 2 3 4|5 6`
`....` | `1 2 3 4 5 6`
`F-2 1 ....` | ``

La vitesse est ici 6 ticks/ligne. Une noire prend donc 6 * 4 = 24 ticks. On joue ici trois notes de longueur 8 afin de les faire tenir exactement dans une noire, ce qui donne des triolets. La barre verticale indique le debut de la note par rapport au debut de la ligne.

#### 0Axx - Cut note/Key off

Coupe la note (en mettant le volume a 0) apres avoir attendu `xx` ticks. Si une enveloppe avait ete affectee au son, la partie 'Key off' de cette enveloppe sera executee.

#### 0Bxx - Jump to position

Va a la position `xx` de la song. Cet effet etait utilise par le ProTracker Amiga pour reboucler une musique. Il n'a aujourd'hui plus tellement de raison d'etre.

#### 0C0x - Set vibrato waveform

Fixe la forme d'onde du vibrato:

`0` : Sinusoidale (par defaut)
`1` : Dents de scie
`2` : Carree

#### 0Dxx - Break pattern

La ligne sur laquelle est placee cet effet sera la derniere ligne jouee du pattern. Ensuite, la musique sera jouee a partir de la ligne `xx` du pattern de la position suivante.

#### 0E0x - Set tremolo waveform

Pareil que 0C0x, pour le tremolo.

#### 0Fxx - Set global speed/Tempo

Cet effet permet de changer la vitesse et/ou le tempo du module. Suivant les valeurs de `xx`, deux cas sont a considerer:

- 00 - 1F

Fixe le nombre de ticks (50emes de secondes) pour une double-croche (une ligne de pattern). La longueur d'un tick est reinitialisee a 1/50eme de seconde pile-poil. Le tempo obtenu est alors egal a 750/`xx`.

- 20 - FF

Fixe seulement le tempo, c'est-a-dire la longueur d'un tick pour obtenir la juste valeur de tempo. L'erreur relative est inferieure a 0.1% ce qui donne un tempo tres precis.

#### 10xy - Arpeggio

Transpose momentanement la note de `x` et `y` demi-tons. L'arpeggio se fait par cycles de 3 ticks, le 1er etant toujours la note d'origine, le 2eme la note augmentee de `x` demi-tons, et le 3eme la note augementee de `y` demi-tons.
Exemple:

`C-2 1 1047 1047`

C2 + 4 demi-tons : E2
C2 + 7 demi-tons : G2
Cet effet va jouer successivement C, E et G, simulant donc par d'etranges glou-glous un accord de do majeur.

#### 11xx - Fine portamento up

Le portamento ne s'effectue qu'en debut de ligne au lieu de chaque tick, permettant ainsi des vitesse beaucoup plus lentes que celles permises par `01xx`. Parametre nul: continuer l'effet.

#### 12xx - Fine portamento down

#### 13xy - Roll + Volume slide

Repete la note rapidement de facon a simuler un roulement. `y` determine la periode des roulements (en ticks), et `x` la modification du volume a apporter a chaque roulement:

`0` : Pas de changement de volume
`1` : -1
`2` : -2
`3` : -4
`4` : -8
`5` : -16
`6` : 2/3 du volume precedent
`7` : 1/2 du volume precedent
`8` : Pas de changement
`9` : +1
`A` : +2
`B` : +4
`C` : +8
`D` : +16
`E` : 3/2 fois le volume precedent
`F` : 2 fois le volume precedent

Exemple:

`C-2 1 13E3 10` | Volume 10 au debut, roulement en triples croches
`13E0` | Le volume continue d'etre multiplie par 3/2 a chaque tick
`13E0` |
`13F0` | Augmentation plus rapide du volume
`C-2 1 .... FF` |

#### 14xx - Linear volume slide up

Modifie le volume de la voie lineairement. `xx` est la vitesse de montee. Parametre nul: continuer l'effet.

#### 15xx - Linear volume slide down

#### 16xx - Logarithmic volume slide up

Modifie le volume de la voie logarithmiquement a la vitesse `xx`. La grande difference avec la montee de volume lineaire est que le volume n'est pas augmente, mais multiplie, ce qui donne des montees de volume souvent plus realistes.

#### 17xx - Logarithmic volume slide down

#### 18xx - Linear volume slide up + Tone portamento

Le parametre concerne le volume.

#### 19xx - Linear volume slide down + Tone portamento

#### 1Axx - Logarithmic volume slide up + Tone portamento

#### 1Bxx - Logarithmic volume slide down + Tone portamento

#### 1Cxx - Linear volume slide up + Vibrato

#### 1Dxx - Linear volume slide down + Vibrato

#### 1Exx - Logarithmic volume slide up + Vibrato

#### 1Fxx - Logarithmic volume slide down + Vibrato

#### 2xxx - Set linear volume

Permet de fixer le volume d'une voie, lineairement (de 0 a 100).

#### 3xxx - Set logarithmic volume

Idem, mais le volume est fixe de maniere logarithmique. C'est-a-dire que 800 correspond a 100 en lineaire, 700 a 80, 600 a 40, etc... Le volume est donc multiplie par 2 tous les 100 (-6 dB).

#### 4xxx - Set balance

Permet de placer une voie dans l'espace sonore gauche-droite. Une valeur de 000 met la voie a gauche, 800 au milieu et FFF a droite. La balance est panoramique, c'est-a-dire que toutes les valeurs intermediaires sont acceptees pour placer le son n'importe ou entre les deux haut parleurs.

#### 5xxx - Set linear master volume

Permet de fixer le volume general de toutes les voies de sortie. Normalement, il est egal a 12288 / (3 + nbr de voies). Mais vu que la puissance sonore n'est presque jamais utilisee au maximum, vous pouvez monter ce niveau. Si toutefois des gresillements aparaissent, redescendez le master.

#### 6xxx - Set logarithmic master volume

Idem que precedemment, mais le volume est notee de facon exponentielle. 1000 correspond a 1000 en lineaire et F00 a 800. Le volume est donc divise par 2 (-6 dB) tous les 100.

#### 7xyy - Roll

Repete un sample de facon a simuler un roulement.

`x` Vitesse (periode)
`yy` Nombre maximum de repetitions

Roll doit etre repete autant de fois que necessaire. Si `yy` = 00, le nombre de roulements est illimites. Si la vitesse juste apres un autre Roll est 0, le roulement est continu (donc la premiere repetition n'est pas forcement sur le debut de la note).
Exemple:

`C-2 1 7300 80` | Joue 4 triples croches
`7000 A0` | On peut aussi augmenter le volume
`7400 C0` | Joue 3 doubles-croches en triolets
`7000 E0` |
`C-2 1 .... FF` |

#### 8zxy - Roll + Volume slide + Set balance

Idem que Roll + Volume slide (`13xy`), sauf que le premier chiffre du parametre (`z`) indique la nouvelle balance (0..8..F).
Exemple, pour un roule sur des toms:

`C-3 1 8602` | Tom aigu a gauche, en triolet
`8600` |
`A-2 1 8A03` | Tom moyen a droite, triples croches
`8A00` |
`F-2 1 8C03` | Tom grave bien a droite
`8C00` |

#### 9xxx - Sample Offset

Joue le sample a partir de la position `xxx` * 256. Cet effet est assez interessant car d'une part il permet de faire de legeres variations pour un meme sample, ce qui enrichit le jeu. D'autre part il permet, en passant de petits nombres comme parametres, de jouer le meme instrument sur 2 voies differentes a la meme note, donnant ainsi l'illusion qu'il y a deux instruments qui jouent et non un seul dont le volume serait double. Si le parametre est nul, le parametre de la derniere commande d'offset est repris.

#### A0xx - Linear master volume slide up

#### A1xx - Linear master volume slide down

#### A4xx - Fine linear volume slide up

#### A5xx - Fine linear volume slide down

#### A6xx - Fine linear master volume slide up

#### A7xx - Fine linear master volume slide down

#### A8xx - Set number of ticks

Change le nombre de ticks par note, un peu comme Set Global Speed (`0Fxx`), mais la longueur de chaque tick n'est pas changee.

#### A9xx - Set fine tempo

Cette fonction permet d'ajuster le tempo tres precisement a `xx`/256 BPM pres.

#### AAxx - Pattern delay

La ligne sur laquelle se trouve cet effet est repetee `xx` fois. Les notes ne sont jouees qu'une fois au debut, mais les effets continuent d'agir. Ce peut etre utile quand on a accelere a un endroit du pattern, et qu'il faut rattraper le nombre de lignes pour le finir correctement.

#### ABxx - Extra fine tone portamento

Liaison d'une note 16 fois plus fine qu'avec `03xx`. Parametre nul: continuer le portamento avec le parametre precedent.

#### ACxx - Extra fine portamento up

Agit comme Portamento up mais 16 fois plus finement. Parametre nul: continuer le portamento.

#### ADxx - Extra fine portamento down

#### AExx - Left balance move

Deplace la balance vers la gauche a la vitesse `xx`. Parametre nul: continuer le mouvement de panning.

#### AFxx - Right balance move

#### B0xy - Tremor

Provoque des saccades dans la note. Periodiquement, le volume est normal pendant `x` ticks, puis la note coupee pour `y` ticks.

#### B1xx - Pattern loop

Boucle un morceau de pattern. Un B100 indique le debut de la boucle, et `B1xx` donne le nombre de fois qu'il faut repeter le pattern entre cette derniere instruction et le `B100`.
Il est possible d'imbriquer des boucles, mais il faut utiliser une voie differente par niveau d'imbriquation. D'autre part, les boucles doivent etre completement imbriquees et non se chevaucher.
Exemple:

`C-2 1 B100 | E-2 1 ....` | Debut de la boucle 1
`.... | ....` |
`G-2 1 .... | B100` | Debut de la boucle 2
`.... | ....` |
`B-2 1 .... | ....` |
`.... | B102` | Repeter 2 fois la boucle 2 (3 passages)
`.... | G-1 1 ....` |
`B103 | ....` | Et 3 fois la boucle 1 (4 passages)

#### B2xx - Set flags

Active ou desactive certaines options. Additionnez toutes les options que vous voulez activer pour obtenir la valeur de `xx` a inserer dans l'effet. N'oubliez pas qu'il s'agit d'hexadecimal.

`+ 01` : Active l'interpolation
`+ 02` : Active l'interpolation sur toutes les pistes
`+ 04` : Desactive l'interpolation sur toutes les pistes

#### B3xx - Set Volume Envelope

Affecte a l'instrument joue l'enveloppe de volume numero `xx`.

#### B4xx - Set Tone Envelope

#### B5xx - Set Panning Envelope

#### B6xx - Set Cut-off Envelope

#### B7xx - Set Reso Envelope

#### B9xx - Demo Synchro

Cet effet, reserves aux programmeurs, permet de synchroniser un programme avec le replay d'un module. Au moment de l'effet, le parametre est mis a une certaine adresse en memoire. Voir la documentation des sources de replay pour plus de details.

#### BAxx - Fine Sample Offset

Comme la commande Sample Offset, mais le sample est joue a partir de la position `xx` * 16 (10 en hexa). Si le parametre est nul, le parametre de la derniere commande d'offset est repris.

#### BBxx - Very Fine Sample Offset

Idem que ci-dessus, mais le sample est joue carrement a partir de la position `xx`, ce qui permet de regler tres precisement la phase entre 2 samples identiques. Si le parametre est nul, le parametre de la derniere commande d'offset est repris.

#### BCxx - Increment Sample Position

Ajoute `xx` a la position courante de replay du sample. Cet effet permet de changer tres precisement la phase entre 2 samples.

#### BDxx - Decrement Sample Position

Enleve `xx` a la position courante de replay du sample.

#### BExx - Auto Tempo

Calcule automatiquement le tempo qu'il faut pour que le sample de l'instrument joue en C-2 sur la piste de cet effet dure pendant `xx` lignes. L'Auto Tempo est particulierement pertinent quand on utilise des samples de rythmes boucles, il evite de nombreux tatonnements.

#### BFxx - Auto Period

Fixe automatiquement la periode d'un sample de facon a ce qu'il puisse tenir entierement dans les `xx` lignes. Tres pratique quand une boucle a deja ete definie avec `BExx`.

#### C0xy - Change sample direction

Cette commande n'est effective que sur les pistes de sample. Elle permet de changer le sens de lecture d'un sample a la volee, au bout de `y` ticks. Le parametre `x` permet de donner la nouvelle direction: 0, le sample part dans le sens oppose a celui de la lecture courante. 1, il part vers l'avant, 2 il part vers l'arriere.
Il faut egalement noter que si le sample est demarre avec un changement de sens immediat vers l'arriere, le sample est lu completement a l'envers (a partir de la fin). Reciproquement, un sample en boucle ping-pong qui etait arrive juste a la fin et qui se voit demande de continuer vers l'avant sera lu depuis le debut. Ce dernier cas est cependant fort peu probable.

#### C1xx - Set mix preset

Applique a la piste courante le preset de mixage `xx`. Si la piste ne peut pas recevoir de preset (piste de Sample ou Audio In), c'est sur la piste par defaut du preset que sera applique le mixage.

#### C2xx - Set linear track volume

Fixe le volume d'une piste. Ce volume est independant des volume des instruments, des samples et des enveloppes. Il sert a la console de mixage. La valeur moyenne (0 dB) est 10 (en hexa).

#### C3xx - Set logarithmic track volume

Fixe le volume logarithmique d'une piste. La valeur moyenne (0 dB) est C0. En additionnant ou retranchant 16 (10 en hexa), on augmente ou diminue le volume de la piste de 6 dB.

#### C4xx - Linear track volume slide up

Montee lineaire du volume d'une piste. `xx` indique la vitesse; ce parametre est 16 fois plus precis que la valeur indiquee par `C2xx`.

#### C5xx - Linear track volume slide down

#### C6xx - Logarithmic track volume slide up

Montee du volume logarithmique d'une piste. `xx` indique la vitesse; ce parametre est 16 fois plus precis que la valeur indiquee par `C3xx`.

#### C7xx - Logarithmic track volume slide down

#### C8xx - Fine logarithmic track volume slide up

Montee du volume logarithmique d'une piste. `xx` indique la vitesse; ce parametre est 16 fois plus precis que la valeur indiquee par `C3xx`. La montee ne prend effet qu'au debut de la ligne ou se trouve cet effet.

#### C9xx - Fine logarithmic track volume slide down

#### CAxx - Set mixing preset on input tracks

Comme `C1xx`, cette commande permet d'appliquer un preset de mixage sur la piste courante. Cependant elle n'affecte pas le volume et la balance de la piste destination.

#### CBxx - Add mixing preset to input tracks

Cette commande effectue la meme operation que `CAxx`, mais ne supprime pas les pistes sources qui ne serait pas dans le preset alors qu'elles sont presentes dans la configuration courante de la piste.

#### CCxx - Change input track volume

Change seulement les volumes des pistes entrees en fonction du preset. Si une piste du preset n'est pas presente dans la configuration courante, elle est automatiquement ajoutee.

#### CDxx - Change input track panning

Change seulement les balances des pistes entrees en fonction du preset. Si une piste du preset n'est pas presente dans la configuration courante, elle est automatiquement ajoutee.