2022-01-16 06:10:43 +00:00
|
|
|
|
# effect list
|
|
|
|
|
|
2023-06-25 16:43:24 +00:00
|
|
|
|
most of the effect numbers are from ProTracker / FastTracker 2.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
2023-06-25 16:43:24 +00:00
|
|
|
|
however, effects are continuous, which means you only need to type it once and then stop it with an effect value of `00` or no effect value at all.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
|
|
|
|
## volume
|
|
|
|
|
|
|
|
|
|
- `0Axy`: **Volume slide.**
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- If `x` is 0 then this slides volume down by `y` each tick.
|
|
|
|
|
- If `y` is 0 then this slides volume up by `x` each tick.
|
|
|
|
|
- `FAxy`: **Fast volume slide.** same as `0Axy` above but 4× faster.
|
|
|
|
|
- `F3xx`: **Fine volume slide up.** same as `0Ax0` but 64× slower.
|
|
|
|
|
- `F4xx`: **Fine volume slide down.** same as `0A0x` but 64× slower.
|
|
|
|
|
- `F8xx`: **Single tick volume slide up.** adds `x` to volume on first tick only.
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `F9xx`: **Single tick volume slide down.** subtracts `x` from volume on first tick only.
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `07xy`: **Tremolo.** changes volume to be "wavy" with a sine LFO. `x` is the speed. `y` is the depth.
|
2023-06-25 16:43:24 +00:00
|
|
|
|
- Tremolo is downward only.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- Maximum tremolo depth is -60 volume steps.
|
|
|
|
|
|
|
|
|
|
## pitch
|
|
|
|
|
|
2023-06-25 16:43:24 +00:00
|
|
|
|
- `E5xx`: **Set pitch.** `00` is -1 semitone, `80` is base pitch, `FF` is nearly +1 semitone.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- `01xx`: **Pitch slide up.**
|
|
|
|
|
- `02xx`: **Pitch slide down.**
|
|
|
|
|
- `F1xx`: **Single tick pitch slide up.**
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `F2xx`: **Single tick pitch slide down.**
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-08-10 23:37:09 +00:00
|
|
|
|
- `03xx`: **Portamento.** slides the currently playing note's pitch toward the new note. `x` is the slide speed.
|
|
|
|
|
- a note _must_ be present with this effect for it to work.
|
|
|
|
|
- the effect stops automatically when it reaches the new note.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- `E1xy`: **Note slide up.** `x` is the speed, while `y` is how many semitones to slide up.
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down.
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-08-10 23:37:09 +00:00
|
|
|
|
- `EAxx`: **Toggle legato.** while on, new notes instantly change the pitch of the currently playing sound instead of starting it over.
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `00xy`: **Arpeggio.** after using this effect the channel will rapidly switch between semitone values of `note`, `note + x` and `note + y`.
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1.
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `04xy`: **Vibrato.** changes pitch to be "wavy" with a sine LFO. `x` is the speed, while `y` is the depth.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- Maximum vibrato depth is ±1 semitone.
|
|
|
|
|
- `E3xx`: **Set vibrato direction.** `xx` may be one of the following:
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `00`: Up and down. default.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- `01`: Up only.
|
|
|
|
|
- `02`: Down only.
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `E4xx`: **Set vibrato range** in 1/16th of a semitone.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
|
|
|
|
## panning
|
|
|
|
|
|
2023-06-25 16:43:24 +00:00
|
|
|
|
not all chips support these effects.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `08xy`: **Set panning.** changes stereo volumes independently. `x` is the left channel and `y` is the right one.
|
|
|
|
|
- `88xy`: **Set rear panning.** changes rear channel volumes independently. `x` is the rear left channel and `y` is the rear right one.
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `81xx`: **Set volume of left channel** (from `00` to `FF`).
|
|
|
|
|
- `82xx`: **Set volume of right channel** (from `00` to `FF`).
|
|
|
|
|
- `89xx`: **Set volume of rear left channel** (from `00` to `FF`).
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `8Axx`: **Set volume of rear right channel** (from `00` to `FF`).
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `80xx`: **Set panning (linear).** this effect behaves more like other trackers:
|
2022-04-30 04:41:14 +00:00
|
|
|
|
- `00` is left.
|
|
|
|
|
- `80` is center.
|
|
|
|
|
- `FF` is right.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
|
|
|
|
## time
|
|
|
|
|
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `09xx`: **Set speed/groove.** if no grooves are defined, this sets speed. If alternating speeds are active, this sets the first speed.
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `0Fxx`: **Set speed 2.** during alternating speeds or a groove, this sets the second speed.
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `Cxxx`: **Set tick rate.** changes tick rate to `xxx` Hz (ticks per second).
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `xxx` may be from `000` to `3FF`.
|
2023-07-05 16:50:03 +00:00
|
|
|
|
- `F0xx`: **Set BPM.** changes tick rate according to beats per minute. range is `01` to `FF`.
|
2023-08-10 23:47:03 +00:00
|
|
|
|
- ---
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `0Bxx`: **Jump to order.** `x` is the order to play after the current row.
|
|
|
|
|
- this marks the end of a loop with order `x` as the loop start.
|
2023-08-04 16:11:53 +00:00
|
|
|
|
- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. `x` is the row at which to start playing the next pattern.
|
|
|
|
|
- this can be used to shorten the current order as though it had a different pattern length.
|
2023-07-04 17:25:21 +00:00
|
|
|
|
- `FFxx`: **Stop song.** stops playback and ends the song. `x` is ignored.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
|
|
|
|
## note
|
2022-01-16 06:10:43 +00:00
|
|
|
|
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `0Cxx`: **Retrigger.** repeats current note every `xx` ticks.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- This effect is not continuous; it must be entered on every row.
|
2023-06-25 07:05:30 +00:00
|
|
|
|
- `ECxx`: **Note cut.** ends current note after `xx` ticks. For FM instruments, it's equivalent to a "key off".
|
|
|
|
|
- `EDxx`: **Note delay.** delays note by `x` ticks.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
|
|
|
|
## other
|
|
|
|
|
|
2023-07-20 03:34:48 +00:00
|
|
|
|
- `9xxx`: **Set sample position.** jumps current sample to position `xxx * 0x100`.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- Not all chips support this effect.
|
2023-08-10 23:37:09 +00:00
|
|
|
|
- `EBxx`: **Set LEGACY sample mode bank.** selects sample bank. used only for compatibility.
|
|
|
|
|
- does not apply on Amiga.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
- `EExx`: **Send external command.**
|
2023-08-10 23:37:09 +00:00
|
|
|
|
- this effect is currently incomplete.
|
|
|
|
|
- `F5xx`: **Disable macro.**\
|
|
|
|
|
`F6xx`: **Enable macro.** see macro table at the end of this document for possible values.
|
2023-06-24 21:19:46 +00:00
|
|
|
|
|
2023-06-25 16:43:24 +00:00
|
|
|
|
additionally, [each chip has its own effects](../7-systems/README.md).
|
2022-12-17 05:09:56 +00:00
|
|
|
|
|
|
|
|
|
## macro table
|
|
|
|
|
|
2023-07-20 03:34:48 +00:00
|
|
|
|
ID | macro
|
|
|
|
|
-----|-----------------------------
|
|
|
|
|
`00` | volume
|
|
|
|
|
`01` | arpeggio
|
|
|
|
|
`02` | duty/noise
|
|
|
|
|
`03` | waveform
|
|
|
|
|
`04` | pitch
|
|
|
|
|
`05` | extra 1
|
|
|
|
|
`06` | extra 2
|
|
|
|
|
`07` | extra 3
|
|
|
|
|
`08` | extra A (ALG)
|
|
|
|
|
`09` | extra B (FM)
|
|
|
|
|
`0A` | extra C (FMS)
|
|
|
|
|
`0B` | extra D (AMS)
|
|
|
|
|
`0C` | panning left
|
|
|
|
|
`0D` | panning right
|
|
|
|
|
`0E` | phase reset
|
|
|
|
|
`0F` | extra 4
|
|
|
|
|
`10` | extra 5
|
|
|
|
|
`11` | extra 6
|
|
|
|
|
`12` | extra 7
|
|
|
|
|
`13` | extra 8
|
|
|
|
|
| | **operator 1 macros**
|
|
|
|
|
`20` | AM
|
|
|
|
|
`21` | AR
|
|
|
|
|
`22` | DR
|
|
|
|
|
`23` | MULT
|
|
|
|
|
`24` | RR
|
|
|
|
|
`25` | SL
|
|
|
|
|
`26` | TL
|
|
|
|
|
`27` | DT2
|
|
|
|
|
`28` | RS
|
|
|
|
|
`29` | DT
|
|
|
|
|
`2A` | D2R
|
|
|
|
|
`2B` | SSG-EG
|
|
|
|
|
`2C` | DAM
|
|
|
|
|
`2D` | DVB
|
|
|
|
|
`2E` | EGT
|
|
|
|
|
`2F` | KSL
|
|
|
|
|
`30` | SUS
|
|
|
|
|
`31` | VIB
|
|
|
|
|
`32` | WS
|
|
|
|
|
`33` | KSR
|
|
|
|
|
`40` | **operator 2 macros**
|
|
|
|
|
`60` | **operator 3 macros**
|
|
|
|
|
`80` | **operator 4 macros**
|
2022-12-17 05:09:56 +00:00
|
|
|
|
|
|
|
|
|
the interpretation of duty, wave and extra macros depends on chip/instrument type:
|
|
|
|
|
|
|
|
|
|
ex | FM | OPM | OPZ | OPLL | AY-3-8910 | AY8930 | Lynx | C64 | SAA1099 | X1-010 | Namco 163 | FDS | Sound Unit | ES5506 | MSM6258 | QSound | SNES | MSM5232 |
|
|
|
|
|
---|--------|-----------|-----------|-------|------------|------------|----------|------------|----------|------------|------------|-----------|------------|-----------|----------|--------------|-----------|-----------|
|
|
|
|
|
D | NoiseF | NoiseFreq | | | NoiseFreq | NoiseFreq | Duty/Int | Duty | | | Wave Pos | | Duty | Filt Mode | FreqDiv | Echo Level | NoiseFreq | GroupCtrl |
|
|
|
|
|
W | | LFO Shape | LFO Shape | Patch | Waveform | Waveform | | Waveform | Waveform | Waveform | Waveform | Waveform | Waveform | | | | Waveform | |
|
|
|
|
|
1 | | AMD | AMD | | | Duty | | FilterMode | Envelope | EnvMode | WaveLen | Mod Depth | Cutoff | Filter K1 | ClockDiv | EchoFeedback | Special | GroupAtk |
|
|
|
|
|
2 | | PMD | PMD | | Envelope | Envelope | | Resonance | | Envelope | WaveUpdate | Mod Speed | Resonance | Filter K2 | | Echo Length | Gain | GroupDec |
|
2023-01-16 21:10:34 +00:00
|
|
|
|
3 | LFOSpd | LFO Speed | LFO Speed | | AutoEnvNum | AutoEnvNum | | Special | | AutoEnvNum | WaveLoad W | | Control | Env Count | | | | Noise |
|
2022-12-17 05:09:56 +00:00
|
|
|
|
A | ALG | ALG | ALG | | AutoEnvDen | AutoEnvDen | | | | AutoEnvDen | WaveLoad P | | | Control | | | | |
|
|
|
|
|
B | FB | FB | FB | | | Noise AND | | | | | WaveLoad L | | | | | | | |
|
|
|
|
|
C | FMS | FMS | FMS | | | Noise OR | | | | | WaveLoad T | | | | | | | |
|
|
|
|
|
D | AMS | AMS | AMS | | | | | | | | | | | | | | | |
|
|
|
|
|
4 | OpMask | OpMask | | | | | | Test/Gate | | | | | PResetTime | EnvRampL | | | | |
|
|
|
|
|
5 | | | AMD2 | | | | | | | | | | | EnvRampR | | | | |
|
|
|
|
|
6 | | | PMD2 | | | | | | | | | | | EnvRampK1 | | | | |
|
|
|
|
|
7 | | | LFO2Speed | | | | | | | | | | | EnvRampK2 | | | | |
|
2023-01-16 21:10:34 +00:00
|
|
|
|
8 | | | LFO2Shape | | | | | | | | | | | Env Mode | | | | |
|