TW #58–59 — The Finishing Touches (Catspaw)
catspaw's two-part guide to "the finer technical points of writing module-based music", in ST3/IT notation (| C#5 16 48 H83 | = note, sample, volume, effect). Greg Heo later pointed readers here for frames and tempo.
Key claims#
Part 1 (#58) — looping and transitions
- Songs that loop or sit in playlists break when the last pattern sets
AFF(speed 255) for a pause but never issuesC00, and when the first pattern relies on the default speed/tempo/panning — defaults only apply at start, so on loop the song is still at speed 255. Fix: initialise everything with commands at the start — a silent dummy first pattern with^^^note cuts,Xxxpan positions,T7DandA06(tempo 125, speed 6) and aC00break; and putC00on the same row as the finalAFFso the song pauses a moment then restarts cleanly. (The Cubic player stops instantly onC00, so give it a row or two atAFFfirst.) - Speed changes mid-melody (
A06→A07) sound abrupt. Slide the tempo down over the last beats instead (T7A,T75,T70,T6C,T68,T64, then back toT7Dwith the new speed): tempo doesn't disturb volume slides and retrigs that depend on frames per row.
Part 2 (#59) — spring cleaning, frames, volume slides, retrigs
- Delete unused patterns (one early tune carried "almost 30k in dead patterns") and forgotten samples;
Alt-Ltwice + clear block in ST3/IT. - Use effect memory: a
00parameter repeats the last value (D10, D00, D00;G03, G00;Q43, Q00) — "especially important for cutting down the size of chip songs"; beware shared memories (Exy/Fxyand others, format-dependent). - Reset global volume at the start if you fade it out at the end, or the song loops silently.
- Frames: a tick of the clock; speed
Axx= frames per row (speed 6 → 24 frames over four rows). A volume slideD0ymoves the volume by y × (speed − 1) per row: at speed 6,D01= −5,D02= −10;D03at speed 4 = −9. Use this to plan fades exactly (34 → D01 → 39 → D02 D02 → 59), and combine volume-column values with slides and vibrato (K20,UC3,E0E…). - Retrig
Qxy: y = frames between retrigs, so at speed 6Q03hits again exactly halfway through the row,Q02gives three hits; avoid odd speeds (5, 7, 9) because a half-row retrig is impossible — use tempo to get the feel. The x digit changes the volume per retrig (0 none, 1–5: −1 −2 −4 −8 −16, 6: ×2/3, 7: ×1/2, 9–D: +1 +2 +4 +8 +16, E: ×3/2, F: ×2). Recipes: ride cymbalQ43(32 → 24), snare rollQ53thenQ43, and the tom "thwump"QC2from volume 04 up by 8 each frame. - Cites Basehead's tracking-tips article in TW #15 as the model for pattern diagrams.
Relevance#
Source of the new technique pages song-init-and-looping and volume-slides, and of the frame arithmetic in retrigger and tracker.
Pages touched#
catspaw, song-init-and-looping, volume-slides, retrigger, tracker, arrangement, chiptune, scream-tracker-3.