Volume slides, fades and effect memory

aliases Dxy, volume slide, fade in, fade out, effect memory, channel volume, global volume
sources TW #58–59 — The Finishing Touches (Catspaw) · TW #77–81 — A Chip Off the Block / Chiptune Seminar, parts 1–4 (The Modsquad) · Impulse Tracker User's Manual — IT.TXT (summary) · Impulse Tracker HINTS.TXT — Hints for Composers (summary) · Intense Tech #18 — ADSR Makes Life Easier! (Defense Mechanism) · Intense Tech #09 — Let's Table This Discussion! (Defense Mechanism) · Little Sound Dj v9.2.6 Operating Manual (summary) · chipmusic.org — LSDJ FAQ thread (2010–2011) · Getting started with LSDj with Infu (course) · Scream Tracker 3.2 User's Manual (ST3.DOC) · FastTracker v2.08 Manual (Urban Jonsson, 1996) · ProTracker 2.3d help file (edited by echolevel) · OpenMPT manual — Effect Reference · TW #12 — Advanced Tracking Tips (Necros) · TW #21 — Tracking Tips (Dan Hartrell) · Intense Tech #14 — Let's Appreciate Version 8 (Defense Mechanism) · Intense Tech #15 — Let's Mix It Up (and Down) (Defense Mechanism) · TW #62 — Interview with Vegas (Kal Zakath and Kleitus) · TW #30 — Faces in the Crowd: Interview with Paganus (Atlantic) · chipmusic.org — lsdj wav channel release? (2013) · Defense Mechanism — LSDJ Wave Channel Tutorial..? (More of a ramble) (video, 2020) · OpenMPT manual — Song Properties (and Tempo Swing) · Defense Mechanism — LSDj Learning Lab shorts: Limit and Vshift, Long Filter Sweeps, Self-Resonating Bass (videos, 2020) · Intense Tech #02 — LSDj Wave Synth Deep Dive, Part 2 (Defense Mechanism) · Pain Perdu — Hidden LSDJ Tricks EP4: Sidechaining (video, 2016)
created 2026-08-30 · updated 2026-08-31

What it is#

The first effect most trackers learn — and, per the Modsquad, "the one effect that makes or breaks the song" (source: s-tw077-chip-off-the-block). Understanding it means understanding frames: speed Axx is frames per row, and a slide acts once per frame after the first.

How to do it (ST3 / IT command set)#

  • D0y slides down, Dx0 up, by x or y per frame — i.e. y × (speed − 1) per row: at speed 6 D01 = −5, D02 = −10; D03 at speed 4 = −9. Plan fades exactly instead of by ear: from 34, D01 reaches 39, two rows of D02 reach 59 (source: s-tw058-the-finishing-touches).
  • Fine slides DFx/DxF move by x once at the row start; Kxy/Lxy combine a slide with vibrato / portamento; Mxx sets a channel volume (0–40h) so an echo column needs one M20 instead of edited volumes (fake-echo); Vxx/Wxx set and slide the global volume for song fades — and must be reset at the start or the loop plays silent (song-init-and-looping).
  • Mix volume-column values with slides for shaped notes: C#6 02 33 UC3K2044 H82K0132 H7120 E0E … (Catspaw's drop-off).
  • Velocity by hand (Necros, source: s-tw012-advanced-tracking-tips): give every lead note its own volume — ramp a run up to the held note (40 40 50 60 64), drop back after it, multiples of 10 for speed; write it in the volume column rather than as a D20 so the effect column stays free; high notes sound louder than low ones at the same value, so hold the top back except on accents. His drop-off ends a big note with falling volume and an accelerating down-slide: 50 E0430 E0610 E1000. Hartrell's staccato: D0F on the note and the next row (source: s-tw021-tracking-tips). See lead-articulation.
  • The volume tail instead of a cut (vegas, 1996): "Dont use a ^^^ to kill a note in the lead, just drop the volume to 10, 15, or 20 and volume slide the rest away. It leaves a reverb-ish effect thats really good on flutes, piano's and violins" — a volume-column value of 1020 on the release row, then D0x down to zero (source: s-tw062-interview-vegas; see lead-articulation). Learning the "manual volume slide in st3" was paganus's newbie milestone of 1995 (source: s-tw030-interview-paganus).
  • Effect memory: a parameter of 00 repeats the last value — D10, D00, D00, G03, G00, Q43, Q00 — smaller files (matters for chip songs) and faster typing; shared memories (Exy/Fxy in ST3/IT, others per format) can bite (source: s-tw058-the-finishing-touches).

The manuals' arithmetic (sources: s-st3-manual, s-ft2-manual, s-protracker-23d-help, s-openmpt-manual-effect-reference): ST3 Dxy moves "(speed−1) × y" per row — D04 at speed 8 drops 28 — because the slide runs on every tick but the first; the fine forms DFy/DxF move once per row regardless of speed, and ST 3.0 files slide on every tick ("Fast volslides", also IT's D0F/DF0). ProTracker Axy and FT2 Axy do the same per tick ("The slower the song, the more the volume will be changed"; in FT2 "one of the data fields must be 0"), with EAx/EBx as the fine versions and FT2's volume column +x/-x/Ux/Dx. Global volume: FT2 Gxx/Hxy (00–40), ST3 Vxx (00–40), IT Vxx (00–80) and Wxy; IT adds channel volume Mxx/Nxy, which S3M players only support as an extension.

More from the IT manual#

D0F/DF0 slide by 15 on every frame for S3M compatibility — in openmpt that behaviour is a per-song switch rather than a command trick: Fast Volume Slides applies slides on every tick "as Scream Tracker 3.0 did", so an imported S3M keeps its original slide rates (source: s-openmpt-manual-song-properties); Alt-K slides the volume column linearly between the block's ends (twice removes all volumes), Alt-X does the same for effect values (pan, offsets, global volume), Alt-J amplifies a block's volumes 0–200 %; the global volume Vxx (0–80h) affects notes already playing, unlike ST3. Keep the global volume high: at 5–8 a volume-column fade jumps instead of sliding (Nacho) (sources: s-it-manual, s-it-hints).

Chip trackers#

(unverified) SID-Wizard has no per-voice volume slide — shape volume with ADSR and the $5x sustain level; LSDj's E command and table envelope column do the job (adsr-envelope, sidechain-pump).

LSDj#

No slide command: volume is shaped per note by Exy (x = level 0–F; y = 1–7 decrease from fastest to slowest, 9–F increase from slowest to fastest, 0/8 hold), by the instrument ENV/ADSR and by the table volume column (level + ticks, looping when all 16 rows are used). Until 8.8.0 every pulse or noise volume change reset the hardware envelope with a click; since 8.8.0 a software volume makes E, the table column and K click-free, with speeds from 1 (shorter than any hardware speed) to F. Mxy moves the master volume per side (9–B up, D–F down). Global fades and ducks are therefore tables and M, not slides — and the four wave-channel steps are enough for a rhythmic one: because E02 is 50 % and E03 100 %, an 02 followed by an 03 on the next step is an audible pump locked to the 16th note, which is how pain-perdu writes the recovery half of a sidechain. On the pulse and noise channels he instead runs an envelope that starts from zero and rises once per beat, so the pump is there even in bars where the kick is not (sidechain-pump; source: s-painperdu-04-sidechaining). (adsr-envelope, sidechain-pump; sources: s-intense-tech-18-adsr-makes-life-easier, s-intense-tech-09-lets-table-this-discussion, s-lsdj-manual).

Mixing levers beyond E (source: s-intense-tech-15-lets-mix-it-up-and-down; the headroom argument behind them is on levels-and-headroom): when E03 (100 %) is too loud and E02 (50 %) too soft on the wave channel, cap the synth's LIMIT instead — at instrument VOLUME 3, LIMIT 8 gives about 50 %, 9 ≈ 56 %, E ≈ 94 % — and different LIMIT values on the synth's first and last wave, run with W (speed, length), make a wave-channel volume envelope (wavetable-programming). On pulse and noise the version-8 ADSR chains E-like stages and can fade in to a chosen lower maximum, where a rising E climbs to F or the next E; E commands and the table volume column override the ADSR (source: s-intense-tech-14-lets-appreciate-version-8). A transient beats a louder level: instrument volume around 90 with the table's E pulling it down after the first tick lets a snare cut through "without overpowering the other channels" (Pain Perdu's trick; instrument-design).

Before software volume the clicks were the topic of the LSDJ FAQ thread (source: s-chipmusic-lsdj-faq): a table fade-in 01 21 41 61 81 A1 clicks on every step because "to change the volume, the phase of the waveform needs to be restarted" (nitro2k01 — the hardware behaviour Pan Docs describes, adsr-envelope); fixes of the time were chained E commands that continue where the previous one stops, aphasia's stepped fade (a short loud 0F, then a sustain at the wanted level, repeated), or spacing the steps to the groove's ticks so the clicks fall on the beat. Infu's reading of ENV: each box is a level and the speed to the next box's level, 0 holds, lower speeds are shorter — a fade-in starts at 0: 07/88/-- (source: s-infu-getting-started-with-lsdj).

LIMIT is the wave channel's volume fader, and VOLUME is not. The two do different jobs and only one of them is safe to move: VOLUME scales the signal before CUTOFF, Q, PHASE and DIST, so turning it down also destroys the clipping or wrapping that made the sound — "what if you want to keep the same wave shape … I really like this sound, but it's too loud, and this was the bane of my existence in the early versions of LSDj, because you're just stuck — you can't get it to wrap if the volume isn't high". LIMIT (added in synth version 6) constrains the samples after all of that: F allows the full 0F, 5 allows only 5A, and whatever exceeds the window is handled by the DIST type. It exists precisely because the hardware's four steps leave the channel "often being too loud at 100% volume but too quiet at 25% or 50%". defense-mechanism's verdict: "LIMIT, I think, is almost more useful than anything else on this entire thing." Because the synth interpolates across its 16 waves, different start and end LIMIT values (say F4) are a fade — "a nice gradual fade without having to use the E commands, which only give you 100, 50, 25 or zero" (sources: s-defensemech-learning-lab-shorts, s-intense-tech-02-wave-synth-deep-dive-part-2; wavetable-programming, levels-and-headroom).

The wave channel is the exception (sources: s-chipmusic-lsdj-wav-channel-release, s-defensemech-wave-channel-ramble): E gives four steps only (0 / 25 / 50 / 100 %), and they are a bit shift, so the quiet settings also lose resolution. Three ways around it, in the order they were found — draw the fade into the waves themselves and step frames with F01 from a table (16 steps per synth, 32 across two); pan the channel alone to one side and use M, which has 8 steps and does move it; or, from LSDj 8, ramp LIMIT across the synth's waves, which is the smoothest of the three and doubles as a sidechain-pump.

fake-echo · song-init-and-looping · retrigger · tracker · sidechain-pump

Sources#

s-tw058-the-finishing-touches · s-tw077-chip-off-the-block · s-intense-tech-18-adsr-makes-life-easier · s-intense-tech-09-lets-table-this-discussion · s-lsdj-manual · s-chipmusic-lsdj-faq · s-infu-getting-started-with-lsdj · s-st3-manual · s-ft2-manual · s-protracker-23d-help · s-openmpt-manual-effect-reference · s-tw012-advanced-tracking-tips · s-tw021-tracking-tips · s-intense-tech-14-lets-appreciate-version-8 · s-intense-tech-15-lets-mix-it-up-and-down · s-tw062-interview-vegas · s-tw030-interview-paganus · s-it-manual · s-it-hints · s-chipmusic-lsdj-wav-channel-release · s-defensemech-wave-channel-ramble · s-openmpt-manual-song-properties · s-defensemech-learning-lab-shorts · s-intense-tech-02-wave-synth-deep-dive-part-2 · s-painperdu-04-sidechaining

source file wiki/techniques/volume-slides.md · 1 unverified · graph