Manual: Effect Reference

From OpenMPT Wiki
Jump to: navigation, search

Here is a list of all effect commands that can be used in patterns. Commands that go into the volume column use a lowercase effect letter, while effects that go into the effect column use uppercase effect letters. The behaviour of some effect commands might be influced by the compatible playback option.

It should be noted that the MOD and XM formats share most of their similar commands, while S3M and IT (and IT-type) formats share a different set, even though they duplicate most of the MOD / XM functions and features.

Most effect commands do not affect instrument plugins currently; most of them only affect sample playback. Since this might change in the future, such effects should be avoided on channels that make use of instrument plugins.

An effect command consists of one character (the “effect letter”) followed by the value that will be applied (the “parameter”), which is a hexadecimal number in the effect column and a decimal number in the volume column. If the notation is given as xx, this means the value is expecting a number between 00h and FFh, which is a decimal value of 0 – 255. If the notation is xy, each digit is independent of the other, and each will be using a value between 0h and Fh (0 – 15). For example, for the Txx command, xx will be a value between 00h and FFh; so for a value of 98, convert the decimal value to hex (62h) and enter it in the fourth column (in the row it should apply) as T62. As another example, the Hxy command uses two values, x and y; so if x is 4 (vibrato speed) and y is 12 (vibrato depth), you enter the command as H4C.

If you do not feel comfortable with decimal ↔ hexadecimal conversion, you can also double-click on an effect to open the Note Properties dialog. From there, you can adjust the effect parameters using sliders, and their exact meaning is shown as well.

Note that values are often limited by the command, such as the XM command Cxx, which limits the value to 40h (64).

Common Effect Parameters[edit]

Most effect parameter follow a simple scheme, but some effects also use a lookup table for their parameters. Depending on the effect, different parameters might do completely different things. Some common lookup table effects are described below.

Waveform Types[edit]

Some oscillator effects (namely Vibrato, Tremolo and Panbrello) use preset oscillator waveforms. They can be changed using special commands; the possible parameters of these commands are listed here:

Parameter Waveform Parameter Waveform
0 Sine — retrigger (default) 4 Sine — continue
1 Saw — retrigger 5 Saw — continue
2 Square — retrigger 6 Square — continue
3 Random — retrigger 7 Random — continue

Retrigger means that the oscillator waveform is retriggered when a new note is played. Continue means that the waveform continues at its last playback position when a new note is played. In the S3M / IT / MPTM formats, only the first four parameters are available.

Retrigger Volume[edit]

The retrigger command (Rxy in XM files and Qxy in S3M / IT / MPTM files) does not only retrigger the note every y ticks, it also changes the sample volume, depending on the x value. The following table explains the meaning of every possible x parameter:

Parameter Effect Parameter Effect
0 Previous parameter value (XM)
No volume change (S3M / IT / MPTM)
8 No volume change
1 Volume - 1 9 Volume + 1
2 Volume - 2 A Volume + 2
3 Volume - 4 B Volume + 4
4 Volume - 8 C Volume + 8
5 Volume - 16 D Volume + 16
6 Volume × ⅔ E Volume × 1.5
7 Volume × ½ F Volume × 2

Sound Control[edit]

The sound control effect (S9x in the S3M / IT / MPTM format, X9x in the XM format) can be used to control various aspects of sound playback. Possible parameters are explained here.

Parameter Name Description
0 Surround Off Turns off surround on this channel. This should only be used when using Quad Surround Panning. To keep compatibility with other trackers, a normal panning effect should be used in Center Surround mode (see below).
1 Surround On Enables surround playback on this channel. When using stereo playback, the right channel of a sample is played with inversed phase (Pro Logic Surround). When using quad playback, the rear channels are used for playing this channel.
8 Reverb Off Explicitely turns off Reverb on this channel.
9 Reverb On Explicitely turns on Reverb on this channel. The reverb parameters from the DSP Setup are used. There is no per-song configuration for reverb available, so it should not be used.
A Center Surround This is the default surround mode. A Surround On command will place the channel in the center of the rear channels and any panning command brings it back to the front channels. This is a global setting, i.e. it affects all channels.
B Quad Surround In this surround mode, panning commands can be used to pan in the rear channels. In this mode, switching between the front and rear channels can only be done by using the Surround On and Surround Off commands. This too is a global setting, i.e. it affects all channels.
C Global Filters This is the default filter mode, which is compatible with Impulse Tracker. When resonant filters are enabled with a Zxx effect, they will stay active until explicitly disabled — by setting the cutoff frequency to the maximum (Z7F), and the resonance to the minimum (Z80). This is a per-channel setting.
D Local Filters When this mode is selected, the resonant filter will only affect the current note and will revert when a new note is played. Again, this is a per-channel setting.
E Play Forward Forces the sample to play forward.
F Play Backward Forces the sample to play backward.

MOD Effect Commands[edit]

Effect Column[edit]

The following commands can be entered into the effect column. The MOD format does not make use of the volume column, so no commands can be used in the volume column. All parameter values are hexadecimal.

Effect Name Memory Description
0xy Arpeggio No Plays an arpeggiation of three notes in one row, cycling between the current note, note + x semitones and note + y semitones. For example, 037 plays a minor chord, and 047 plays a major chord. 000 does nothing, i.e. this effect has no memory.
1xx Portamento Up No Slides up the pitch of the current note, decreasing the playback period by xx on all ticks but the first. Thus, the Speed setting affects the amount of pitch change.
2xx Portamento Down No Same as 1xx, but slides down the pitch of the current note.
3xx Tone Portamento Yes Pitch-bends the previous note towards the current note at rate xx for the duration of the current row. The pitch is changed by xx periods on all ticks but the first, and is thus affected by the Speed.
4xy Vibrato Yes Vibrato with speed x and depth y. This command modulates the frequency of the current note with a sine wave (you can change the vibrato waveform by using the E4x command).
5xy Volume Slide + Tone Portamento No Equivalent to volume slide (Axy) plus Tone Portamento (300). The xy parameter affects the volume slide thus works like the parameters of the Axy command. The tone portamento effect uses the last specified portamento speed from a 3xx command. The command 500 does not change the volume, i.e. it is equal to the command 300.
6xy Volume Slide + Vibrato No Equivalent to volume slide (Axy) plus Vibrato (400). The xy parameter affects the volume slide thus works like the parameters of the Axy command. The vibrato effect uses the last specified vibrato parameters from a 4xy command. The command 600 does not change the volume, i.e. it is equal to the command 400.
7xy Tremolo Yes Tremolo with speed x and depth y. This command modulates the sample volume with a sine wave (you can change the tremolo waveform by using the E7x command).
8xx Set Panning Sets the pan position of the current channel. The value ranges from 00h (left) to FFh (right).
9xx Sample Offset Yes Starts playing the sample at the position xx × 256 (instead of position 0). This effect does not do anything if there is no note in the same pattern cell.
A0x Volume Slide Down No Decreases the sample volume by x on all ticks but the first if x is not 0. So if the current speed is 6 (6 ticks per row), A0x decreases the volume by x × 5.
Ax0 Volume Slide Up No Same as A0x, but increases the volume. The maximum volume is 64 (40h).
Bxx Position Jump Causes the playback to jump to the pattern position xx, where xx is a number between 0 and 127 (MOD files have a maximum number of 128 patterns). As an example, B00 will restart the song from the beginning. If used together with a pattern break (Dxx), you can also specify the starting row (by default, it will play from the first row).
Cxx Set Volume Sets the sample volume to xx, where xx must be between 00h (silence) and 40h (full volume).
Dxx Pattern Break Jumps to row xx of the next pattern in the Order List. As patterns have a fixed length of 64 rows in the MOD format, xx can only range from 00h to 3Fh. If the current pattern is the last pattern in the Order List, this command will go to the row xx of the first pattern. When combined with the Bxx effect, you can also jump into other patterns than the next pattern.
E1x Fine Portamento Up No Same as 1xx, but is only applied on the first tick of the row.
E2x Fine Portamento Down No Same as 2xx, but is only applied on the first tick of the row.
E3x Glissando Control E30 disables glissando, E31 enables glissando. When glissando is active, tone portamento effects will slide by semitones (like a piano). This effect is not widely supported and behaves quirky in OpenMPT.
E4x Set Vibrato Waveform Sets the waveform of succeeding Vibrato effects. See the waveform table for the exact meaning of the parameter.
E5x Set Finetune Overrides the current sample′s finetune value. The parameter is equivalent to the same setting in the sample editor.
E60 Pattern Loop Start Marks the start of a pattern loop.
E6x Pattern Loop When this effect is reached, playback is resumed at the loop start that was set with the E60 command on this channel, x times in total. Pattern loops cannot span several patterns, so if there was no E60 command on the same pattern on a previous row, playback is restarted on the first row of the pattern.
E7x Tremolo Waveform Sets the waveform of succeeding Tremolo effects. See the waveform table for the exact meaning of the parameter.
E8x Set Panning Sets the pan position of the current channel. The value ranges from 0h (left) to Fh (right). As this is very coarse, it is recommened to use the 8xx effect instead.
E9x Retrigger No Retriggers the current note every x ticks. This effect also works with parameters greater than the current speed setting if the next row also contains an E9x effect.
EAx Fine Volume Slide Up No Same as Ax0, but is only applied on the first tick of the row.
EBx Fine Volume Slide Down No Same as A0x, but is only applied on the first tick of the row.
ECx Note Cut Sets the sample volume to 0 after x ticks, if x is less than the current speed.
EDx Note Delay Delays the note or instrument change in the same pattern cell by x ticks, if x is less than the current speed.
EEx Pattern Delay Repeats the current row x times. Notes are not retriggered each time the row is repeated, but effects are still being processed. If several pattern delays are found on the same row, only the leftmost command is considered.
EFx Invert Loop When used with a looped sample, this command goes through the sample loop and inverts all sampling points (i.e. it changes the sign) one by one at speed x. The effect is applied until EF0 is called. This is the only command which actually modifies the module file during playback. Samples mangled by this effect cannot be recovered automatically, i.e. no undo point is created.
Fxx Set Speed / Tempo Sets the speed (ticks per row) if xx < 20h or tempo if xx ≥ 20h. Avoid using exactly 20h as a parameter, since some players (including old OpenMPT versions) interpret that as “Set Tempo” as well. Also avoid using 00h as a parameter. It does nothing in OpenMPT, but some players stop the song if they encounter an F00 effect.

Effect Memory:

  • No means that this effect does nothing if the effect parameter is 00h.
  • Yes means that this effect has an own parameter memory. If the effect is called with the parameter 00h, the previous effect parameter on this channel is recalled. For example, if the effect 482 is followed by the effect 400 on a subsequent row, the 400 effect recalls the effect parameter 82h.
  • means that the effect parameter 00h has no special meaning. For example C00 mutes the channel, B00 jumps to the first pattern, and so on.

XM Effect Commands[edit]

The XM format uses an extended version of the MOD command set. As Fasttracker 2 was a rather buggy program, many effect commands may behave in a quirky way. Always enable more FT2 compatible playback for the best possible emulation of those quirks.

Effect Column[edit]

The following commands can be entered into the effect column. All parameter values are hexadecimal.

Effect Name Memory Description
0xy Arpeggio No Plays an arpeggiation of three notes in one row, cycling between the current note, note + x semitones and note + y semitones. For example, 037 plays a minor chord, and 047 plays a major chord. 000 does nothing, i.e. this effect has no memory.
1xx Portamento Up Yes
  • Slides up the pitch of the current note by xx on all ticks but the first. Thus, the Speed setting affects the amount of pitch change.
  • If linear frequency slides are enabled, one unit of this effect equals 116th of a semitone (this applies to all pitch-bending effects), otherwise it is one Amiga period. 1xx shares effect memory with 2xx.
2xx Portamento Down Yes Same as 1xx, but slides down the pitch of the current note.
3xx Tone Portamento Yes Pitch-bends the previous note towards the current note at rate xx for the duration of the current row. The pitch is changed by xx periods (or xx × 116th of a semitone in linear slide mode) on all ticks but the first, and is thus affected by the Speed.
4xy Vibrato Yes Vibrato with speed x and depth y. This command modulates the frequency of the current note with a sine wave (you can change the vibrato waveform by using the E4x command).
5xy Volume Slide + Tone Portamento Yes Equivalent to volume slide (Axy) plus Tone Portamento (300). The xy parameter affects the volume slide thus works like the parameters of the Axy command. The tone portamento effect uses the last specified portamento speed from a 3xx command.
6xy Volume Slide + Vibrato Yes Equivalent to volume slide (Axy) plus Vibrato (400). The xy parameter affects the volume slide thus works like the parameters of the Axy command. The vibrato effect uses the last specified vibrato parameters from a 4xy command.
7xy Tremolo Yes Tremolo with speed x and depth y. This command modulates the sample volume with a sine wave (you can change the tremolo waveform by using the E7x command).
8xx Set Panning Sets the pan position of the current channel. The value ranges from 00h (left) to FFh (right). As every sample has an enforced default panning, this setting is reset with every subsequent instrument number.
9xx Sample Offset Yes Starts playing the sample at the position xx × 256 (instead of position 0). This effect does not do anything if there is no note in the same pattern cell.
A0x Volume Slide Down Yes Decreases the sample volume by x on all ticks but the first. So if the current speed is 6 (6 ticks per row), A0x decreases the volume by x × 5.
Ax0 Volume Slide Up Yes Same as A0x, but increases the volume. The maximum volume is 64 (40h).
Bxx Position Jump Causes the playback to jump to the pattern position xx. As an example, B00 will restart the song from the beginning. If used together with a pattern break (Dxx) that is located right of the Bxx effect, you can also specify the starting row (by default, it will play from the first row).
Cxx Set Volume Sets the sample volume to xx, where xx must be between 00h (silence) and 40h (full volume).
Dxx Pattern Break Jumps to row xx of the next pattern in the Order List. If xx is higher than the next pattern′s length, the first row is used as a jump target. If the current pattern is the last pattern in the Order List, this command will go to the row xx of the first pattern. When combined with the Bxx effect, you can also jump into other patterns than the next pattern. Note that if there is a Bxx effect right of the Dxx effect, the Dxx effect is ignored.
E1x Fine Portamento Up Yes Same as 1xx, but is only applied on the first tick of the row.
E2x Fine Portamento Down Yes Same as 2xx, but is only applied on the first tick of the row.
E3x Glissando Control E30 disables glissando, E31 enables glissando. When glissando is active, tone portamento effects will slide by semitones (like a piano). This effect is not widely supported and behaves quirky in OpenMPT.
E4x Set Vibrato Waveform Sets the waveform of succeeding Vibrato effects. See the waveform table for the exact meaning of the parameter.
E5x Set Finetune Overrides the current sample′s finetune value. The parameter is equivalent to the same setting in the sample editor. E5x is only evaluated when found next to a note.
E60 Pattern Loop Start Marks the start of a pattern loop. Note: One of the most infamous Fasttracker 2 bugs concern the handling of this command: When E60 is used on pattern row x, the following pattern also starts from row x instead of the beginning of the pattern. This can be avoided by placing a D00 effect on the last row of the pattern in which E60 was used.
E6x Pattern Loop When this effect is reached, playback is resumed at the loop start that was set with the E60 command on this channel, x times in total. Pattern loops cannot span several patterns, so if there was no E60 command on the same pattern on a previous row, playback is restarted on the first row of the pattern.
E7x Tremolo Waveform Sets the waveform of succeeding Tremolo effects. See the waveform table for the exact meaning of the parameter.
E8x Set Panning Sets the pan position of the current channel. The value ranges from 0h (left) to Fh (right). As this is very coarse, it is recommened to use the 8xx effect instead. As with 8xx, any instrument number resets the effect of this command.
E9x Retrigger No Retriggers the current note every x ticks. This effect also works with parameters greater than the current speed setting if the next row also contains an E9x effect.
EAx Fine Volume Slide Up Yes Same as Ax0, but is only applied on the first tick of the row.
EBx Fine Volume Slide Down Yes Same as A0x, but is only applied on the first tick of the row.
ECx Note Cut Sets the sample volume to 0 after x ticks, if x is less than the current speed.
EDx Note Delay Delays the note or instrument change in the same pattern cell by x ticks, if x is less than the current speed.. This command is very buggy. Several anomalies of the original Fasttracker 2 behaviour are not emulated fully. Some emulated anomalies are: EDx with no note in the same pattern cell retriggers the last played note, and portamento effects next to a note delay are ignored.
EEx Pattern Delay Repeats the current row x times. Notes are not retriggered each time the row is repeated, but effects are still being processed. If several pattern delays are found on the same row, only the rightmost command is considered.
EFx Set Active Macro Selects the active parametered macro for this channel. Not an original command from Fasttracker 2.
Fxx Set Speed / Tempo Sets the speed (ticks per row) if xx < 20h or tempo if xx ≥ 20h. Avoid using 00h as a parameter. In Fasttracker 2 and OpenMPT, it sets the speed to 65535 ticks per row, in some players it stops the song entirely and in yet some other players it does nothing.
Gxx Set Global Volume Sets the global (master) volume. xx must be a value between 00h (no audio output) and 40h (full volume).
H0x Global Volume Slide Down Yes Much like the A0x effect, this decreases the global volume by x on all ticks but the first. So if the current speed is 6 (6 ticks per row), H0x decreases the global volume by x × 5.
Hx0 Global Volume Slide Up Yes Same as H0x, but increased the global volume.
Kxx Key Off Triggers a Note Off command after xx ticks. Avoid using K00 as this interferes with other entries in the same pattern cell (e.g. a note or instrument entry).
Lxx Envelope Position Sets the volume envelope position to xx ticks. If compatible playback is deactivated, the panning envelope position is also updated, but this behaviour differs from Fasttracker 2.
P0x Panning Slide Left Yes Slides the panning position to the left xx units. This effect is only applied on the first tick in compatible mode, and on all ticks but the first in non-compatible mode.
Px0 Panning Slide Right Yes Like P0x, but slides to the right.
Rxy Retrigger Yes Retriggers the note every y ticks and changes the volume based on the x value according to the retrigger volume change table above. Note that this command is also very buggy. For example, if there is a volume command in the same pattern cell, the retrigger command will skip some ticks.
Txy Tremor Yes Rapidly turns the sample volume on and off. The sample is played for x + 1 ticks and then muted for y + 1 ticks. The effect is not updated on the first tick. For instrument plugins, this command sends note-on and note-off messages instead of modifying the volume.
X1x Extra Fine Porta Up Yes Applies an portamento slide on the first tick that is four times finer than normal slides. If linear frequency slides are enabled, this means that you can slide with a precision of 164th of a semitone.
X2x Extra Fine Porta Down Yes Same as X1x, but slides the frequency downwards.
X5x Panbrello Waveform Sets the waveform of succeeding Panbrello effects. See the waveform table for the exact meaning of the parameter. This is not an original Fasttracker 2 effect.
X6x Fine Pattern Delay Extends the current row by x ticks. If several fine pattern delay commands are found on the same row, they are added up. This is not an original Fasttracker 2 effect.
X9x Sound Control Executes a sound control command, as described in the Sound Control table above. This is not an original Fasttracker 2 effect.
XAx High Offset Sets the high offset for subsequent offset (9xx) commands. x * 65536 (or 10000h) is added to all offset effects that follow this command. This is not an original Fasttracker 2 effect.
Yxy Panbrello Yes Panbrello with speed x and depth y. This command modulates the panning of the current note with a sine wave (you can change the vibrato waveform by using the X5x command). This is not an original Fasttracker 2 effect.
Zxx MIDI Macro Executes a MIDI Macro. This is not an original Fasttracker 2 effect.
\xx Smooth MIDI Macro Executes an interpolated MIDI Macro. This is not an original Fasttracker 2 effect.

Effect Memory:

  • No means that this effect does nothing if the effect parameter is 00h.
  • Yes means that this effect has an own parameter memory. If the effect is called with the parameter 00h, the previous effect parameter on this channel is recalled. For example, if the effect 482 is followed by the effect 400 on a subsequent row, the 400 effect recalls the effect parameter 82h. Sometimes, parameter memory is shared between similar effects. If two effects share the same effect letter (e.g. A0x and Ax0), they generally use the same memory as well.
  • means that the effect parameter 00h has no special meaning. For example C00 mutes the channel, B00 jumps to the first pattern, and so on.

Volume Column[edit]

The following commands can be entered into the volume column. The only effect in this list that has an effect memory is “Vibrato Depth”. Volume Slides etc. have no memory. All parameter values are decimal.

Effect Name Description
axx Fine Volume Slide Up Just like EAx, this slides the volume up x units on the first tick.
bxx Fine Volume Slide Down Just like EBx, this slides the volume down x units on the first tick.
cxx Volume Slide Up Just like Ax0, this slides the volume up x units on all ticks but the first.
dxx Volume Slide Down Just like A0x, this slides the volume down x units on all ticks but the first.
gxx Tone Portamento Just like 3xx, this pitch-bends from the previous note to the current note. Compared to Gxx, parameters are sixteen times more coarse, i.e. g1 equals G10. This effect does nothing when combined with note delay. Combining the effect with 3xx will double the effect parameter (e.g. g01 would act like g02) and ignores the 3xx command.
hxx Vibrato Depth Sets the vibrato depth to x and executes a vibrato (like the 4xy command).
lxx Panning Slide Left Like P0x, this slides the panning left by x units.
pxx Set Panning Set the panning to x, where x ranges from 0 to 64 (decimal). Note that this value is actually 4-Bit (with 16 distinct values), so when saving the file, fine panning changes using this command will be lost.
rxx Panning Slide Right Like Px0, this slides the panning right by x units.
uxx Vibrato Speed Sets the vibrato speed to x, but does not execute a vibrato.
vxx Set Volume Sets the sample volume to x. This command is also sent to instrument plugins.

S3M Effect Commands[edit]

Scream Tracker′s S3M format uses a command set that is entirely different from the MOD and XM command set. It was the first of the supported trackers to have a volume column, thus its use is quite limited.

The format was soon extended by other programs and players to support more effect commands (e.g. 7-Bit panning, panning slides, channel volume, etc.) — ModPlug supports those extensions, and most of them are marked as such in the effect table below.

Effect Column[edit]

The following commands can be entered into the effect column. All parameter values are hexadecimal.

Effect Name Memory Description
Axx Set Speed Sets the speed (ticks per row). A00 does nothing.
Bxx Position Jump Causes the playback to jump to the pattern position xx. As an example, B00 will restart the song from the beginning. If used together with a pattern break (Cxx), you can also specify the starting row (by default, it will play from the first row).
Cxx Pattern Break Jumps to row xx of the next pattern in the Order List. As patterns have a fixed length of 64 rows in the S3M format, xx can only range from 00h to 3Fh, higher values are ignored. If the current pattern is the last pattern in the Order List, this command will go to the row xx of the first pattern. When combined with the Bxx effect, you can also jump into other patterns than the next pattern.
D0x Volume Slide Down Non-Zero Decreases the sample volume by x on all ticks but the first if x is not 0. If x is 15 (Fh), the volume is reduced on all ticks. So if the current speed is 6 (6 ticks per row), D0x decreases the volume by x × 5. If Fast Volume Slides are enabled, the slide is executed on every tick of the row.
Dx0 Volume Slide Up Non-Zero Same as D0x, but increases the volume. The maximum volume is 64 (40h).
DFx Fine Volume Slide Down Non-Zero Same as D0x, but is only applied on the first tick of the row. x may not be Fh.
DxF Fine Volume Slide Up Non-Zero Same as Dx0, but is only applied on the first tick of the row. x may not be Fh.
Exx Portamento Down Non-Zero Slides down the pitch of the current note, decreasing the playback period by xx on all ticks but the first. Thus, the Speed setting affects the amount of pitch change.
EFx Fine Portamento Down Non-Zero Same as Exx, but is only applied on the first tick of the row.
EEx Extra Fine Portamento Down Non-Zero Same as EFx, but the frequency change is four times as precise.
Fxx Portamento Up Non-Zero Same as Exx, but slides up the pitch of the current note.
FFx Fine Portamento Up Non-Zero Same as EFx, but slides up the pitch of the current note.
FEx Extra Fine Portamento Up Non-Zero Same as EEx, but slides up the pitch of the current note.
Gxx Tone Portamento Yes Pitch-bends the previous note towards the current note at rate xx for the duration of the current row. The pitch is changed by xx periods on all ticks but the first, and is thus affected by the Speed. Note that there are no fine or extra fine tone portamento parameters.
Hxy Vibrato Yes Vibrato with speed x and depth y. This command modulates the frequency of the current note with a sine wave (you can change the vibrato waveform by using the S3x command). This effect shares effect memory with Uxy (Fine Vibrato) and is applied on all ticks but the first.
Ixy Tremor Non-Zero Rapidly turns the sample volume on and off. The sample is played for x ticks and then muted for y ticks.
Jxy Arpeggio Non-Zero Plays an arpeggiation of three notes in one row, cycling between the current note, note + x semitones and note + y semitones. For example, J37 plays a minor chord, and J47 plays a major chord.
Kxy Volume Slide + Vibrato Non-Zero Equivalent to volume slide (Dxy) plus Vibrato (H00). The xy parameter affects the volume slide thus works like the parameters of the Dxy command. The vibrato effect uses the last specified vibrato parameters from a Hxy or Uxy command on this channel.
Lxy Volume Slide + Tone Portamento Non-Zero Equivalent to volume slide (Dxy) plus Tone Portamento (G00). The xy parameter affects the volume slide thus works like the parameters of the Dxy command. The tone portamento effect uses the last specified portamento speed from a Gxx command.
Mxx Set Channel Volume Sets the channel volume, with which all sample volumes are multiplied. xx can range from 00h (silence) to 40h (full amplification). This effect is actally not supported by the original Scream Tracker 3, but was added early by other trackers / players and has since been adopted by many S3M players.
Nxy Channel Volume Slide Yes This command′s parameters works exactly like the Dxy parameters, with the difference that it affects the channel volume rather than the sample volume. Again, this command is not supported by Scream Tracker 3, but by a variety of other trackers and players.
Oxx Sample Offset Yes Starts playing the sample at the position xx × 256 (instead of position 0). This effect does not do anything if there is no note in the same pattern cell.
P0x Panning Slide Right Yes Slides the panning position to the left xx units on all ticks but the first if x is not 0. So if the current speed is 6 (6 ticks per row), P0x slides to the right by x × 5 units. Panning ranges from 0 to 64. This command is also not supported by Scream Tracker 3, but by a variety of other trackers and players.
Px0 Panning Slide Left Yes Same as P0x, but slides the panning position to the right.
PFx Fine Panning Slide Right Yes Same as P0x, but is only applied on the first tick of the row. x may not be Fh.
PxF Fine Panning Slide Left Yes Same as Px0, but is only applied on the first tick of the row. x may not be Fh.
Qxy Retrigger Non-Zero Retriggers the note every y ticks and changes the volume based on the x value according to the retrigger volume change table above.
Rxy Tremolo Non-Zero Tremolo with speed x and depth y. This command modulates the sample volume with a sine wave (you can change the tremolo waveform by using the S4x command).
S00 Special Commands Non-Zero If an S command is called with parameter 00h, the last effect parameter on this channel is recalled and one of the commands below is executed, according to the previous effect parameter.
S1x Glissando Control S10 disables glissando, S11 enables glissando. When glissando is active, tone portamento effects will slide by semitones (like a piano). This effect is not widely supported and behaves quirky in OpenMPT.
S2x Set Finetune Legacy command that overrides the current sample′s C-5 frequency by applying a MOD finetune value.
S3x Set Vibrato Waveform Sets the waveform of succeeding Vibrato effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed.
S4x Tremolo Waveform Sets the waveform of succeeding Tremolo effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed.
S5x Panbrello Waveform Sets the waveform of succeeding Panbrello effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed. This is not an original Scream Tracker 3 effect.
S6x Fine Pattern Delay Extends the current row by x ticks. If several fine pattern delay commands are found on the same row, they are added up. This command is also not supported by Scream Tracker 3, but by a variety of other trackers and players.
S8x Set Panning Sets the pan position of the current channel. The value ranges from 0h (left) to Fh (right). As this is very coarse, it is recommened to use the Xxx effect instead.
S9x Sound Control Executes a sound control command, as described in the Sound Control table above. This is not an original Scream Tracker 3 effect. To enable surround, the XA4 command should be preferred over S91.
SAx High Offset Sets the high offset for subsequent offset (9xx) commands. x * 65536 (or 10000h) is added to all offset effects that follow this command. This is not an original Scream Tracker 3 effect.
SB0 Pattern Loop Start Marks the start of a pattern loop.
SBx Pattern Loop When this effect is reached, playback is resumed at the loop start that was set with an SB0 (which does not need to be on the same channel as the loop end command), x times in total. Pattern loops cannot span several patterns, so if there was no SB0 command on the same pattern, playback is restarted on the first row of the pattern.
SCx Note Cut Stops the sample after x ticks, if x is greater than 0 and less than the current speed.
SDx Note Delay Delays the note or instrument change in the same pattern cell by x ticks. If x is 0, greater than or equal the current speed, the content of this cell is never played.
SEx Pattern Delay Repeats the current row x times. Notes are not retriggered each time the row is repeated, but effects are still being processed. If several pattern delays are found on the same row, only the leftmost command is considered.
T0x Decrease Tempo Yes Slides the tempo down by x BPM on all ticks but the first. Use T00 to recall the last slide parameter.
T1x Increase Tempo Yes Slides the tempo up by x BPM on all ticks but the first. Use T00 to recall the last slide parameter.
Txx Set Tempo Sets the tempo if xx ≥ 20h.
Uxy Fine Vibrato Yes Fine Vibrato with speed x and depth y. This command works like Hxy, but the vibrato depth is four times finer. This effect shares effect memory with Hxy (Vibrato).
Vxx Set Global Volume Sets the global (master) volume. xx must be a value between 00h (no audio output) and 40h (full volume).
Wxy Global Volume Slide Yes This command′s parameters works exactly like the Dxy parameters, with the difference that it affects the global volume rather than the sample volume. This command is also not supported by Scream Tracker 3, but by a variety of other trackers and players.
XA4 Surround Enables surround playback on this channel. When using stereo playback, the right channel of a sample is played with inversed phase (Pro Logic Surround). When using quad playback, the rear channels are used for playing this channel. Surround mode can be disabled by executing a different panning command on the same channel.
Xxx Set Panning Sets the pan position of the current channel. The value ranges from 00h (left) to 80h (right).
Yxy Panbrello Yes Panbrello with speed x and depth y. This command modulates the panning of the current note with a sine wave (you can change the vibrato waveform by using the X5x command). This is not an original Scream Tracker 3 effect.
Zxx MIDI Macro Executes a MIDI Macro. This is not an original Scream Tracker 3 effect, and since MIDI Macros are not stored in S3M files, only the default macro configuration can be used to control the resonant filter.

Effect Memory:

  • No means that this effect does nothing if the effect parameter is 00h.
  • Yes means that this effect has a parameter memory. If the effect is called with the parameter 00h, the previous effect parameter on this channel is recalled. For example, if the effect H82 is followed by the effect H00 on a subsequent row, the H00 effect recalls the effect parameter 82h. Sometimes, parameter memory is shared between similar effects. If two effects share the same effect letter (e.g. N0x and Nx0), they generally use the same memory as well.
  • Non-Zero means that this effect uses the last non-zero effect parameter in this column as memory, no matter which command it was assigned to. For example if A02 is followed by E00 on a subsequent row, the E00 recalls the effect parameter 02h. When the corresponding compatibility setting is disabled, Non-Zero behaves the same as Yes.
  • means that the effect parameter 00h has no special meaning. For example X00 sets the panning position to full left, B00 jumps to the first pattern, and so on.

Volume Column[edit]

The following commands can be entered into the volume column. None of them have an effect memory. All parameter values are decimal.

Effect Name Description
pxx Set Panning Set the panning to x, where x ranges from 0 to 64 (decimal). This is not an original Scream Tracker 3 effect.
vxx Set Volume Sets the sample volume to x. This command is also sent to instrument plugins.

IT Effect Commands[edit]

Impulse Tracker′s command set is based on the S3M command set; it adds some more commands and makes better use of effect memory.

Effect Column[edit]

The following commands can be entered into the effect column. All parameter values are hexadecimal.

Effect Name Memory Description
Axx Set Speed Sets the speed (ticks per row). A00 does nothing.
Bxx Position Jump Causes the playback to jump to the pattern position xx. As an example, B00 will restart the song from the beginning. If used together with a pattern break (Cxx), you can also specify the starting row (by default, it will play from the first row).
Cxx Pattern Break Jumps to row xx of the next pattern in the Order List. If xx is higher than the next pattern′s length, the first row is used as a jump target. If the current pattern is the last pattern in the Order List, this command will go to the row xx of the first pattern. When combined with the Bxx effect, you can also jump into other patterns than the next pattern.
D0x Volume Slide Down Yes Decreases the sample volume by x on all ticks but the first if x is not 0. If x is 15 (Fh), the volume is reduced on all ticks. So if the current speed is 6 (6 ticks per row), D0x decreases the volume by x × 5. Effect memory is only shared with volume column commands a, b, c and d in non-compatible playback mode.
Dx0 Volume Slide Up Yes Same as D0x, but increases the volume. The maximum volume is 64 (40h).
DFx Fine Volume Slide Down Yes Same as D0x, but is only applied on the first tick of the row. x may not be Fh.
DxF Fine Volume Slide Up Yes Same as Dx0, but is only applied on the first tick of the row. x may not be Fh.
Exx Portamento Down Yes
  • Slides down the pitch of the current note by xx on all ticks but the first. Thus, the Speed setting affects the amount of pitch change. When using custom instrument tunings in the MPTM format, this command is also applied on the first tick of the row.
  • This effect shares effect memory with Fxx, exx and fxx. If Compatible Gxx is disabled, it also shares effect memory with Gxx and gxx.
  • If linear frequency slides are enabled, one unit of this effect equals 116th of a semitone (this applies to all pitch-bending effects), otherwise it is one Amiga period.
  • For instrument plugins to work properly, the plugin’s pitch bend range must be entered in the instrument settings. Portamento affects all notes playing on the same MIDI channels. In most monotimbral instrument plugins, it affects all notes, no matter which MIDI channel they are played on.
EFx Fine Portamento Down Yes Same as Exx, but is only applied on the first tick of the row.
EEx Extra Fine Portamento Down Yes Same as EFx, but the frequency change is four times as precise, so if linear frequency slides are enabled, one unit of this effect equals 164th of a semitone.
Fxx Portamento Up Yes Same as Exx, but slides up the pitch of the current note.
FFx Fine Portamento Up Yes Same as EFx, but slides up the pitch of the current note.
FEx Extra Fine Portamento Up Yes Same as EEx, but slides up the pitch of the current note.
Gxx Tone Portamento Yes Pitch-bends the previous note towards the current note at rate xx for the duration of the current row. The pitch is changed by xx periods (or xx × 116th of a semitone in linear slide mode) on all ticks but the first, and is thus affected by the Speed. Note that there are no fine or extra fine tone portamento parameters. See Exx for more details on effect memory and effect precision.
Hxy Vibrato Yes Vibrato with speed x and depth y.
  • By default, this command modulates the frequency of the current note with a sine wave. You can change the vibrato waveform by using the S3x command.
  • This effect shares effect memory with Uxy (Fine Vibrato) and is called on every tick, unless IT Old Effects are enabled, in which case it is only applied on all ticks but the first.
  • For instrument plugins to work properly, the plugin’s pitch bend range must be entered in the instrument settings.
Ixy Tremor Yes Rapidly turns the sample volume on and off. The sample is played for x ticks and then muted for y ticks. For instrument plugins, this command sends note-on and note-off messages instead of modifying the volume.
Jxy Arpeggio Yes Plays an arpeggiation of three notes in one row, cycling between the current note, note + x semitones and note + y semitones. For example, J37 plays a minor chord, and J47 plays a major chord.
Kxy Volume Slide + Vibrato Yes Equivalent to volume slide (Dxy) plus Vibrato (H00). The xy parameter affects the volume slide thus works like the parameters of the Dxy command. The vibrato effect uses the last specified vibrato parameters from a Hxy or Uxy command on this channel.
Lxy Volume Slide + Tone Portamento Yes Equivalent to volume slide (Dxy) plus Tone Portamento (G00). The xy parameter affects the volume slide thus works like the parameters of the Dxy command. The tone portamento effect uses the last specified portamento speed from a Gxx command.
Mxx Set Channel Volume Sets the channel volume, with which all sample volumes are multiplied. xx can range from 00h (silence) to 40h (full amplification).
Nxy Channel Volume Slide Yes This command′s parameters works exactly like the Dxy parameters, with the difference that it affects the channel volume rather than the sample volume.
Oxx Sample Offset Yes Starts playing the sample at the position xx × 256 (instead of position 0). This effect does not do anything if there is no note in the same pattern cell.
P0x Panning Slide Right Yes Slides the panning position to the left xx units on all ticks but the first if x is not 0. So if the current speed is 6 (6 ticks per row), P0x slides to the right by x × 5 units. Panning ranges from 0 to 64.
Px0 Panning Slide Left Yes Same as P0x, but slides the panning position to the right.
PFx Fine Panning Slide Right Yes Same as P0x, but is only applied on the first tick of the row. x may not be Fh.
PxF Fine Panning Slide Left Yes Same as Px0, but is only applied on the first tick of the row. x may not be Fh.
Qxy Retrigger Yes Retriggers the note every y ticks and changes the volume based on the x value according to the retrigger volume change table above.
Rxy Tremolo Yes Tremolo with speed x and depth y. This command modulates the sample volume with a sine wave (you can change the tremolo waveform by using the S4x command).
S00 Special Commands Yes If an S command is called with parameter 00h, the last Sxy effect executed on this channel is repeated.
S1x Glissando Control S10 disables glissando, S11 enables glissando. When glissando is active, tone portamento effects will slide by semitones (like a piano). This effect is not widely supported and behaves quirky in OpenMPT.
S3x Set Vibrato Waveform Sets the waveform of succeeding Vibrato effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed.
S4x Tremolo Waveform Sets the waveform of succeeding Tremolo effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed.
S5x Panbrello Waveform Sets the waveform of succeeding Panbrello effects. See the waveform table for the exact meaning of the parameter. Note that only parameters 0 to 3 are accepted, i.e. only “retrigger” waveforms but not “continue” waveforms are allowed.
S6x Fine Pattern Delay Extends the current row by x ticks. If several fine pattern delay commands are found on the same row, they are added up.
S70 Past Note Cut Cuts all notes on a channel that are still playing due to New Note Actions.
S71 Past Note Off Send a Note Off for all notes on a channel that are still playing due to New Note Actions.
S72 Past Note Fade Fades out all notes on a channel that are still playing due to New Note Actions.
S73 NNA Note Cut Sets the New Note Action to “Note Cut” for the currently active note.
S74 NNA Note Continue Sets the New Note Action to “Continue” for the currently active note.
S75 NNA Note Off Sets the New Note Action to “Note Off” for the currently active note.
S76 NNA Note Fade Sets the New Note Action to “Note Fade” for the currently active note.
S77 Volume Envelope Off Disables the volume envelope of the currently playing note.
S78 Volume Envelope On Enables the volume envelope of the currently playing note.
S79 Pan Envelope Off Disables the panning envelope of the currently playing note.
S7A Pan Envelope On Enables the panning envelope of the currently playing note.
S7B Pitch Envelope Off Disables the pitch envelope of the currently playing note.
S7C Pitch Envelope On Enables the pitch envelope of the currently playing note.
S8x Set Panning Sets the pan position of the current channel. The value ranges from 0h (left) to Fh (right). As this is very coarse, it is recommened to use the Xxx effect instead.
S9x Sound Control Executes a sound control command, as described in the Sound Control table above. Only S91 is an original Impulse Tracker effect.
SAx High Offset Sets the high offset for subsequent offset (Oxx) commands. x * 65536 (or 10000h) is added to all offset effects that follow this command.
SB0 Pattern Loop Start Marks the start of a pattern loop.
SBx Pattern Loop When this effect is reached, playback is resumed at the loop start that was set with the SB0 command on this channel, x times in total. Pattern loops cannot span several patterns, but the last position of an SB0 effect is remembered across patterns, so if there was no SB0 command on the same pattern on a previous row, playback is restarted on the same row as the last SB0 effect.
SCx Note Cut Stops the sample after x ticks, if x is less than the current speed. SC0 behaves the same as SC1.
SDx Note Delay Delays the note or instrument change in the same pattern cell by x ticks. If x is greater than or equal the current speed, the content of this cell is never played. SD0 behaves the same as SD1.
SEx Pattern Delay Repeats the current row x times. Notes are not retriggered each time the row is repeated (unless they are delayed), but effects are still being processed. If several pattern delays are found on the same row, only the leftmost command is considered.
SFx Set Active Macro Selects the active parametered macro for this channel.
T0x Decrease Tempo Yes Slides the tempo down by x BPM on all ticks but the first. Use T00 to recall the last slide parameter.
T1x Increase Tempo Yes Slides the tempo up by x BPM on all ticks but the first. Use T00 to recall the last slide parameter.
Txx Set Tempo Sets the tempo if xx ≥ 20h.
Uxy Fine Vibrato Yes Fine Vibrato with speed x and depth y. This command works like Hxy, but the vibrato depth is four times finer. This effect shares effect memory with Hxy (Vibrato).
Vxx Set Global Volume Sets the global (master) volume. xx must be a value between 00h (no audio output) and 80h (full volume).
Wxy Global Volume Slide Yes This command′s parameters works exactly like the Dxy parameters, with the difference that it affects the global volume rather than the sample volume.
Xxx Set Panning Sets the pan position of the current channel. The value ranges from 00h (left) to FFh (right).
Yxy Panbrello Yes Panbrello with speed x and depth y. This command modulates the panning of the current note with a sine wave (you can change the panbrello waveform by using the S5x command).
Zxx MIDI Macro Executes a MIDI Macro.
\xx Smooth MIDI Macro Executes an interpolated MIDI Macro. This is not an original Impulse Tracker effect.

Effect Memory:

  • No means that this effect does nothing if the effect parameter is 00h.
  • Yes means that this effect has a parameter memory. If the effect is called with the parameter 00h, the previous effect parameter on this channel is recalled. For example, if the effect H82 is followed by the effect H00 on a subsequent row, the H00 effect recalls the effect parameter 82h. Sometimes, parameter memory is shared between similar effects. If two effects share the same effect letter (e.g. N0x and Nx0), they generally use the same memory as well.
  • means that the effect parameter 00h has no special meaning. For example X00 sets the panning position to full left, B00 jumps to the first pattern, and so on.

Volume Column[edit]

The following commands can be entered into the volume column. All parameter values are decimal.

Effect Name Description
axx Fine Volume Slide Up Just like DxF, this slides the volume up x units on the first tick. This command shares memory with all other volume slides command in the volume column in compatible mode, and also with any other slide commands in the volume column and Dxy otherwise.
bxx Fine Volume Slide Down Just like DFx, this slides the volume down x units on the first tick. The same memory rules as with axx apply.
cxx Volume Slide Up Just like Dx0, this slides the volume up x units on all ticks but the first. The same memory rules as with axx apply.
dxx Volume Slide Down Just like D0x, this slides the volume down x units on all ticks but the first. The same memory rules as with axx apply.
exx Portamento Down Just like Exx, this lowers the note frequency. Parameters are four times less precise than those of Exx, so for example E04 equals e01. This effect shares effect memory with Fxx, exx and fxx. If Compatible Gxx is disabled, it also shares effect memory with Gxx and gxx. If “More IT compatible playback” is activated, this command always uses linear frequency slides.
fxx Portamento Up Same as exx, but increases the note frequency.
gxx Tone Portamento Just like Gxx, this pitch-bends from the previous note to the current note. Parameters 1 through 9 translate to the following Gxx commands: G01, G04, G08, G10, G20, G40, G60, G80, GFF.
hxx Vibrato Depth Sets the vibrato depth to x and executes a vibrato (like the Hxy command).
pxx Set Panning Set the panning to x, where x ranges from 0 to 64 (decimal).
vxx Set Volume Sets the sample volume to x. This command is also sent to instrument plugins.

MPTM Effect Commands[edit]

OpenMPT′s own format is heavily based on the IT format and its effect command set.

Effect Column[edit]

The MPTM format generally makes use of the same effect commands as the IT format. However, there are some additional commands that cannot be used in the IT format:

Effect Name Memory Description
S7D Force Pitch Envelope Enables the pitch envelope and forces it to act as a pitch envelope (rather than a filter cutoff envelope)
S7E Force Filter Envelope Enables the pitch envelope and forces it to act as a filter cutoff envelope (rather than a pitch envelope)
:xy Note Delay + Cut A combination of the commands SDx and SCx. A note in the same pattern cell is delayed for x ticks and then cut after x + y ticks. The actions are only executed if x and x + y respectively are less than the current speed.
#xx Parameter Extension Extends the parameter of a Position Jump (Bxx), Pattern Break (Cxx), Offset (Oxx) or Tempo (Txx) command. If placed below such a command, the parameter values are combined. If there is only one #xx command below the actual command (this is the limit for Bxx, Cxx and Txx), the parameter of the original command is multiplied by 256 and the parameter of the #xx command is added. For the Offset command, up to four rows can be combined. The last row is then multiplied by 1, the row above it is multiplied by 256 (100h), the row above that row is multiplied by 65536 (10000h), and so on.
Example:
ModPlug Tracker MPT
|C-501...O21
|........#02
|........#01
In this example, the sample offset is 21h * 10000h + 2h * 100h + 1h = 210201h, or 33 * 65536 + 2 * 256 + 1 = 2,163,201 in decimal.

Volume Column[edit]

The following commands are supported in addition to everything that is supported by the IT format:

Effect Name Description
oxx Sample Cue Starts playing the sample at cue point xx (instead of position 0). Cue points can be chosen in the Sample Editor. By default, they are set to position xx × 2048. This effect does not do anything if there is no note in the same pattern cell and shares effect memory with Oxx.

Parameter Control Events[edit]

Another feature that is only available in MPTM files are Parameter Control Events, which can be used to automate plugin parameters. They are explained in a separate article.