Instrument design beats note count
What it is#
A lot of "chiptune magic" is in the instrument, not the pattern: a fast pitch drop at note start makes a kick out of any voice; a couple of frames of noise before a tone makes a snare or a pluck; a tiny downward pitch envelope makes bass punchy. Build a small library — pluck, soft lead, hard lead, bass, kick, snare, hat — each just an envelope + waveform recipe, and writing music becomes fast (source: s-037-lab).
How to do it#
SID-Wizard#
An instrument (F7 panel, up to 36 per tune in 1.8, Shift+N to name) = adsr-envelope + hard-restart settings + vibrato settings + default chord + octave shift + the three instrument-tables (wave/arp/detune, pulse, filter). Instruments are saved separately as .swi files, travel between tunes through the clipboard (C=+C … load … C=+V), and the distribution includes 324 example instruments. C=+X/C/V cut/copy/paste whole instruments; C=+P/C=+F decide whether pulse/filter tables restart on every note or only on instrument change (sources: s-sid-wizard-manual, s-witchmaster-creating-chiptunes-with-sid-wizard). The examples are the usual starting point in practice — "A lot of excellent example instruments are included in the Zip file" — and a tweaked one gave a Lemon64 poster a TR-808-like bass drum with a long decay, though he posted its WF-ARP table only as an image, so the values are lost (source: s-lemon64-sid-wizard-instrument-recommendations).
Three worked recipes from the SID-Wizard book (source: s-witchmaster-creating-chiptunes-with-sid-wizard):
| instrument | WF-ARP table | pulse table | ADSR / vibrato / filter |
|---|---|---|---|
| Bazz ("a standard SID bass") | 41 (pulse, gate on); octave transpose −3 | 82 (width $200), then 40 20 (add $20 sixty-four times — watch the pulse bar); keyboard tracking 10 on both rows | ADSR 089A; vibrato 3720, delayed up-down; filter 9B 45 (low-pass, resonance B, cutoff $45) then 40 05 (opens the cutoff by $05 sixty-four times) |
| Snare | 81 CE (noise at F-7) · 41 AD · 41 AC (pulse at G#4, G-4) · 80 C4 · 80 C5 (noise, gate off) | 88 ($800) | decay D, sustain E, release 9 — "the release parameter makes the biggest difference" |
| Arpeggio | 11 7F (triangle, jump to the default chord); chord 00 03 07 0C 07 03 + 7F loop | — | chord speed 02 (instrument or WF column); attack 8, release B "for a smooth attack and longer release" |
Because the snare uses only absolute pitches "all notes will sound the same". The 037-lab-style pitch drop for kicks and the "tiny downward pitch envelope" for bass go in the Arp column of the wave table ($01–$5F up on the first rows, then $00); hi-hat = a short noise row with a fast decay (wavetable-programming); lead = pulse with a slow pulse-width-modulation sweep and delayed vibrato.
A beginner's set from the 2012 chipmusic.org tutorial for SID-Wizard 1.0 (source: s-chipmusic-c64-music-for-dummies):
| instrument | ADSR | WF-ARP table | pulse table | notes |
|---|---|---|---|---|
| saw lead | 00F0 | 21 .. | — | "no dynamics", but a sound; 11 .. for triangle |
| octave flick | 00F0 | 21 0C · 21 .. | — | starts an octave up and "quickly flicks back down" — one table row is 1/50 s (1/60 on NTSC) |
| pulse kick | 0800 | 41 30 · 41 20 · 41 10 · 41 0C · 41 .. | 88 .. (square; 80 10 for "a very thin sound") | play it in octave 1; a pulse instrument is silent until the pulse table sets a width |
| hi-hat | 0400 closed, 0800 open | 81 .. (noise; a pitch in the arp digits makes it "slightly tonal") | — | "a short blast of white noise" |
GoatTracker#
Nine parameters per instrument (ADSR, three table pointers, vibrato + delay, HR/gate timer, 1st-frame waveform) and everything else lives in the tables (goattracker). The readme's own recipes (source: s-goattracker-readme): ADSR 09/00 self-fading pluck, 00/8A organ-like sustain, CC/AF slow pad; wavetable "flute" 41 00 / 11 00, "koto" 41 01 / 40 00, a snare 81 D0 / 41 AA / 41 A4 / 80 D4 / 80 D1 ("use pulsewidth 800"), hi-hat-then-pulse 81 DF / 41 00; pulse sweep 80 10 / 20 40 / 40 E0 / 40 20 / FF 03; speedtable vibrato 05 04 "slow shallow vibrato, suitable for bass notes"; low-pass bass filter 90 F1 / 00 40. Stop an unused pulse program (80 00 / FF 00) under sawtooth instruments to save rastertime.
SID Factory II#
Instrument bytes = ADSR pair + flags ($80 hard restart, $10 test bit) + wave-table index; the tutorial's examples are a sawtooth (00 c9), a "support" instrument (04 69, HR + test bit) and the static snare 81 ca / 41 a8 / 41 a4 / 80 ca / 7f 08; ADSR feel: 04 69 bump-then-sustain, 00 a0 instant, 9b 2a slow pad (source: s-chordian-sf2-instruments).
The classic C64 drivers#
rob-hubbard's instruments were 8-byte structures with flag bits for "drum" (noise for one frame, then a fast frequency drop with fast decay; bass drums on a square wave), "skydive" (slow pitch fall) and octave arpeggio — combinations "used a lot in Hubbard songs"; a noise frame on a pitched bass (sanxion) adds a hi-hat for free (source: s-newman-driving-the-sid-chip).
SID recipes from the forums#
- The classic lead (n00bstar, 2015): "Start with a pulse oscillator at about 10% width, and increase the width up to a 50/50 square wave and add vibrato to it all. A lot of synth leads start loud and sustains at about 80% of the volume. This gives a nice guitar/piano like attack and keeps melodies from sounding too stale" — in SID terms a pulse table from about
$19Ato$800, delayed vibrato, attack0, sustain about$C(the values are derived from his percentages). The same thread's list of what makes a sound typically SID: "awesome buzzy ring modulator, flabby distorted filter, weird adsr, Pulse width modulation on your leads too" (source: s-chipmusic-typical-sid-sounds). - The screaming lead (Lasse Öörni, 2020): use the bass voice as sync source and set the sync bit on the lead — "a distortion or 'screaming' quality, somewhat like an electric guitar" (ring-modulation-and-sync; source: s-lemon64-learning-sid-sound-design).
- Hubbard's bass drum, frame by frame from a register dump — triangle, noise, pulse, then pulse gated off while the pitch falls, ADSR
08F8— is on wavetable-programming (source: s-ucapps-wavetable-sounds-tutorial-1). - Hi-hats: many of the good ones "are combined with the bass instrument or other sounds" (Jellica; see channel-interleaving); a high-pass filter helps (breakphase); and everyone ends up with "a set of magic numbers that seems to always work for them" (iLKke) — keep yours in a library (source: s-chipmusic-sid-music-hints-n-tips).
- How to find recipes: dump a tune with siddump and read the frames — Awol "ripped a nice kick drum sound from a Mortimer Twang tune" that way (source: s-chipmusic-sid-music-hints-n-tips); learn in Lasse's order — waveforms, ADSR, pulse width and its modulation, vibrato and slides, then wave tables (source: s-lemon64-learning-sid-sound-design).
What the C64 composers say makes an instrument set work#
- jeroen-tel (2014) on what makes C64 music good: "Funky basslines in combination with snappy drums, good chord progressions and playful, jazzy melodies" — naming DRAX and Mitch & Dane as examples (source: s-hugi38-interview-jeroen-tel).
- martin-galway's approach was to exploit one chip feature per project: pulse-width sweeps in helikopter-jagd, samples in Arkanoid, "sounds that hadn't been heard before" in the Rambo intro (sources: s-remix64-galway-interview, s-sidmusic-galway-interviews).
- bob-yannes on two limits worth knowing when you design: the triangle has half the sawtooth's resolution at the same amplitude, and sustain moves in steps of 16 (source: s-sidmusic-yannes-interview).
The datasheet's and the Programmer's Reference Guide's presets#
The chip's own documentation ships instrument envelopes (A D S R nybbles): strings/brass/woodwind A 8 A 9, drum/cymbal 0 9 0 9, piano/harpsichord 0 9 0 0, organ 0 0 F 0, "backwards" A 0 F 3 (datasheet Appendix B; source: s-mos-6581-datasheet); violin 5 8 5 9 on sawtooth, xylophone 0 9 0 9 on triangle, piano 0 9 0 0 on a square wave, and 9 0 F 3 as a synthetic sound; plus two effects that trackers rebuild in tables — a hand clap (noise, decay 8, high-pass filter with cutoff high byte 104, gated fifteen times) and a chime (triangle with ring modulation against voice 3, decay 9) (source: s-c64-prg-chapter-4-sound). See adsr-envelope for the times behind the nybbles.
LSDj#
The manual's synthetic drum recipes (chapter 3.6) — they free the wave channel's kits for other duties:
| drum | channel | recipe |
|---|---|---|
| bass drum | PU1 | ENV C3/0/0 (strong attack, fast decay), WAVE 50-50, SWEEP 63 (high start, fast decay), play at C-6; TRANSP. OFF so chain transposes don't move it; tweak ENV/LENGTH for snap |
| snare | NOI | ENV F1/D3/0, note value around 30 sets the timbre; P/V make it livelier |
| hi-hats / cymbals | NOI | note value around 38 for high-frequency content, shape with ENV; lower notes for rougher cymbals |
| wave bass drum (best) | WAV | PITCH = DRUM, TRANSP. OFF, synth SIGNAL triangle, VOLUME 30; instrument table: step 0 P C0, step 1 transpose 80 + L 30 (slides to the lowest possible note without wrapping); play at C-5/C-6 or above |
Envelopes are ENV. triples of amplitude + speed (32/AD/10: attack from 3 to A at speed 2, slow decay to 1, hold); E and the table envelope column override per note. Kit instruments give real drum-machine samples (TR-808/909/606/707/727, CR-78, LinnDrum, DMX…) with OFFSET/LOOP/CLIP and the S loop-point and F offset commands for timbral tricks. Dxx delays and Rxy retrigs help flams and rolls (retrigger) (source: s-lsdj-manual).
What the chip adds to these recipes (sources: s-pandocs-audio-registers, s-pandocs-audio-details): the noise channel is a 15-bit LFSR clocked at 262144 ÷ (divider × 2^shift) Hz — a lower clock sounds "harder", a higher one "softer" — and its 7-bit mode gives "more regular output; some frequencies sound more like pulse than noise", LSDj's pitched noise. Switching from 15- to 7-bit mode can lock the generator into silence until it is retriggered: the hardware reason for PITCH = SAFE. The PU1 bass drum's SWEEP is register NR10; an upward sweep that overflows switches the channel off, a downward one stops at period 0 (pitch-slide-and-portamento). K clicks because switching a channel's DAC off pops, while volume 0 with the DAC alive is silent — presumably what the click-free E00/E11 do (inference).
Defense Mechanism's recipes (intense-tech, LSDj 6–9; sources: s-intense-tech-10-kicks-part-1, s-intense-tech-11-kicks-part-2, s-intense-tech-17-the-joys-of-noise, s-intense-tech-18-adsr-makes-life-easier, s-intense-tech-12-scoping-out-new-features, s-intense-tech-15-lets-mix-it-up-and-down):
| drum | channel | recipe |
|---|---|---|
| wave kick | WAV | a kit kick, or a sine/square-like synth wave with PC0, note C5–C7 or higher for the attack; PITCH = DRUM for the logarithmic fall; table P (fast) then L with transpose 80 (wavetable-programming) |
| Kyoto kick | WAV | a noisy wave in slot 00 for one tick, clean waves after (F01, or PLAY LOOP / LENGTH 1 / REPEAT 0 / SPEED 01) |
| kick → bass | WAV | LSDj 7: DRUM, start two octaves up, L with transpose E8; LSDj 6: FAST + TRANSPOSE ON, octave transposes in the table; or just a groove |
| wave snare | WAV | P then L to a tuned note, E commands for the decay, layered with a noise snare |
| pulse kick / snare / toms | PU1, PU2 | DRUM pitch; 50 % duty "to get the most impact"; snare = the wave snare table without E (instrument envelope for the decay); toms = shorter LENGTH and P directly in the phrase |
| sweep drums | PU1 | the hardware sweep: S F4 kick, S E3 snare, similar E-values for toms |
| noise kick | NOI | shapes ending in 0–7 (short-loop) are tonal; base shape 95, table transpose 10 on tick one (= A5), then 93, 91, 90, 80, 70, 60; S MODE STABLE; "noise kicks sound great when they are LOUD" |
| layered kick | NOI + PU | a very short noise kick in the lowest octave for the lows plus a pulse kick for the falling pitch and tone (Dox The Fash remix) |
| hi-hat with transient | NOI | ADSR: volume 6 quickly down to 4, then fade — cuts through better than a plain fade from 4; maybe only on downbeats |
| snare (LSDj 8.8+) | NOI | transient stages in the ADSR instead of E commands in a table; stage length 1 = instant decay |
| random crash | NOI | Z after the shape or S command: first digit +0…4 capped below F, second digit F (randomization-and-probability) |
| pitched noise "pulse" | NOI | R01 (8.9.3) or R80–R8F; pitch from rate × tempo × shape; LENGTH or ADSR for loudness (retrigger) |
| deeper pulse kick (7.7.4+) | PU | R8x, the super-fast retrig, on a pulse kick reaches "about 3 whole tones lower than the pulse channel is normally capable of" (source: s-intense-tech-12-scoping-out-new-features) |
| snare with transient (Pain Perdu) | NOI | instrument volume around 90, the table's E pulling it down after the first tick, an E beside the note in the phrase to scale the burst — cuts through "without overpowering the other channels"; works on other noise and even pulse instruments (source: s-intense-tech-15-lets-mix-it-up-and-down) |
The noise shape chart (first digit octave, second digit divisor, 0–7 short-loop, 8–F long-loop) is on lsdj. Heard in: .exe's NOIZE JAMS and a demo by they/them use the noise channel alone (source: s-intense-tech-17-the-joys-of-noise).
Noise drums since 9.1.0 (sources: s-intense-tech-19-new-noise-and-910-news, s-intense-tech-21-whats-new-in-lsdj-92): the shape bytes became ordered notes — long-loop noise as 00–3B from low to high, short-loop noise as the note names C, D, F and G# in octaves −9 to 8 — and P now sweeps them smoothly (P01 applies S01 every 4 ticks, P04 every tick), so a kick, a hi-hat and a crash can come from one instrument with P in the phrase instead of a hand-made S table. Old songs convert their noise notes but not their transposes or S values; read from the article's converter, the noise-kick recipe above becomes C 0 for the base 95, C 1 for the tick-one A5, then C-1, F-2, D-2, D-3, D-4, D-5 — a plain descending line. S MODE FREE/STABLE was removed in 9.1.0 and, after random mutes turned out to happen inside one loop mode as well, replaced in 9.1.3 by PITCH FREE (the old STABLE: restart only when going from long-loop to short-loop) and PITCH SAFE (restart on every value change — rougher, but "guaranteed never to mute"); noise instruments also gained TRANSP, C arpeggios limited to the available notes (F 5 with C12 = F, G#, C) and a tick-based V. Emulators (BGB, SameBoy) and most Game Boy Advance models never mute; many Game Boy models still can.
A beginner's set from sabrepulse's tutorial (undated, pre-8.1 ENVELOPE field; source: s-sabrepulse-getting-started-with-lsdj):
| sound | channel | recipe |
|---|---|---|
| pulse kick | PU1, shared with the bass | KICK: envelope F1, duty 50 %, TABLE 00; table: PF1 in the first command row bends the pitch down, K00 on the second-to-last row kills the tail "to avoid clicking"; C5 on rows 0, 4, 8, C, the bass C3 on 2, 6, A, E (channel-interleaving) — chosen because the kit kicks are "really weak and not very loud"; credited to a recipe on the LSDj wiki |
| bass | PU1 | BASS: envelope D3 ("short and punchy"; the default is A9), duty 50 % ("a good low bassy sound") |
| lead | PU2 | LEAD1: envelope C2, duty 25 %; C07 on a note makes a chord |
| snare | NOI | SNARE: envelope about C3, a snappy LENGTH, shape (the tutorial says "sweep") EF |
| hi-hat | NOI | HAT: envelope A1 or A2, length and shape untouched, before and after each snare |
Community recipes (sources: s-infu-getting-started-with-lsdj, s-chipmusic-noise-drum-threads, s-chipmusic-tables-and-chords-threads, s-chipmusic-kotlinski-interviews):
| sound | channel | recipe |
|---|---|---|
| hi-hat (Infu) | NOI | ENV 75/00/--, R02 on the notes; cymbals from a high metallic note such as C 7 |
| noise kick (Infu) | NOI | ENV F4/00/--, note D 0, PF0 beside it (or in a table); a long release keeps the punch |
| snare (Infu) | NOI | ENV 88/00/-- at volume 9 plus the snare table (instrument-tables) |
| noise kick (Mrwimmer) | NOI | envelope decay 1, shape FC, table --, SF0, SF0, SE0, --, H05 — a quick downward sweep |
| snare (Mrwimmer) | NOI | decay 1–2, shape FE or FD |
| snare (metatronaut) | NOI | ENV A3, shape AE, played at C6; table rows F0 OL-, F0 O-R, -- OLR, H03 on row 8 |
| snare (Victory Road) | NOI | a toned noise (C3/C4) morphed into white noise with a quick S, noise type FREE; a fast L→R pan flick at the top of the table, then centre |
| wave kick → bass (SketchMan3) | WAV | table 12 PEE / 00 / 00 / 00 P00 / 01 / 00 …; snare companion 24 PEE / 12 / 12 / 00 P00 / 01 / 00 |
| wave kick (Infu) | WAV | a high note, table P ≈ D0, PITCH DRUM so low notes do not wrap, K00 on step 6 to clear the way for the bass |
| pulse bass (Kotlinski) | PU | duty 15 or 25 on the first tick, then 50 |
| pulse cymbal (Monodeer, per Dire Hit) | PU | VFF — vibrato so fast it becomes a tone, "noise percussion out of a pulse channel" |
Layering advice from the same threads: a high-toned wave kick under a noise snare "gives a really full and thick tone"; a wave-bass table with a short attack layered under the snare; noise + pulse snares "à la C64"; a loud hi-hat-like first row before a kick's sweep makes hi-hat + kick in one instrument; and "a noise kick is never going to blow out your subwoofer".
Where the wave-channel instrument material lives. Designing a WAV instrument is mostly designing its synth, so that whole body — the synth's SIGNAL/FILTER/DIST/PHASE chain read as harmonic content, LIMIT as the volume control the hardware lacks, the LENGTH interpolation chart, hand-drawn banks, and the sixteen-hand-narrowed-waves PWM instrument — sits on wavetable-programming (sources: s-intense-tech-01-wave-synth-deep-dive-part-1, s-intense-tech-02-wave-synth-deep-dive-part-2, s-lsdj-and-you-pwm). Two design decisions worth restating here: an instrument's envelope can be its own sidechain — on the wave channel E02 is 50 % and E03 100 %, so 02 then 03 on the steps after the kick is an audible pump locked to the 16th, and on the pulse and noise channels a per-beat envelope "that starts from zero and rises at the speed of A" makes hats and pads pump even where no kick plays (sidechain-pump; source: s-painperdu-04-sidechaining) — and the kick and bass sharing WAV is already a sidechain, so what you actually design is the recovery.
The noise channel after 9.1.0 (source: s-defensemech-noise-channel-92l). The channel was rebuilt, so older tutorials no longer apply: shapes now run ordered low to high (00–~$3B are the long-loop, noisy ones; past either end you cross into short-loop pitched noise, labelled with the nearest note name), and C chords, P pitch bends, V vibrato and S all work on it. Design consequences:
- Set the envelope instead of chaining
Ecommands — "a much faster and easier way … and then I can just work on setting transpose commands". A snare is that envelope plus a couple of rising transposes, stopped withA20orK. Ris the dynamics tool the hardware envelope cannot be. Hardware envelopes are one smooth slope, so a decaying repeat cannot be written withE;Rwith a volume digit "will reduce this by one level and keep these numbers" — ghost snares, quieter repeats, and triplet fills at a four-tick retrig (retrigger).- Hardware LENGTH still has one job: it overrides an
Ecommand, "so it kind of puts a cap on how long this envelope can actually be" — useful under a rising envelope. - Why PITCH SAFE exists, in hardware terms: the LFSR "sometimes … creates zeros, and that results in silence", so on real hardware (DMG, old CGB, some GBA units, the GameCube Game Boy Player) a pitch slide can simply cut out with no
K. SAFE re-initialises the channel on every pitch change so it never cuts out, at the cost of a harsher texture — recoverable in part by slowing COMMAND RATE. Current SameBoy and BGB emulate the cutout; older builds do not, so a patch that works in an old emulator can die on hardware.
The SPEECH instrument, from people who have used it (source: s-chipmusic-lsdj-speech-synthesis). Jotie, who has shipped several: "It's slow, difficult and in my opinion, flawed. You can't delete wrong letters." The workflow that makes it tractable is to compose the allophones outside LSDj — "download an Atari ST emulator and write your lines in STSPEECH — it will show you how to do what you just wrote in allophones" (Steem SSE) — and transcribe the result into the word screen. Two craft notes: speech sits in the centre with everything else panned away from it, because "mixing is the only thing that is going to make your speech stand out" (stereo-panning); and phrase it musically — "don't put them on every downbeat tick, try and give them space and change the syllable when it's natural to do so". Scale the ambition to the tool: a hook, not a monologue.
An echo is an instrument, not an effect (source: s-lsdj-and-you-echo-chamber): a second instrument on the same channel, same sound, lower volume and a shorter envelope, with the echo notes typed into the gaps. The pitch rule is what makes it read as an echo — "the echoed note corresponds to not the note it immediately follows but the one before that" — a two-position lag, and the echo of the previous phrase's last note opens the next phrase so a loop stays continuous. Pan the echo instrument to one side, or table-pan it side to side for ping-pong. The expensive version is a chorus: copy the phrases into PU2 shifted one tick, drop the volume and set PU FINE TUNE to 2, "which will create a sort of chorus effect when the notes play in unison with pulse channel one" (fake-echo, detune).
Designing instruments that have to share a channel (source: s-chipmusic-lsdj-advanced-tricks). The thread's consensus is "definitely don't use one channel for just kick drums" (Saskrotch) — the wave channel does kick, bass and snare — which puts requirements on the instruments themselves: E commands so a ringing note survives an instrument switch, tables that end in "wild pitch commands … to add subtle little bleeps and bloops" (defiantsystems), and drums layered across channels rather than owned by one. danimal cannon's use for a free channel is entirely instrument design: double, echo, octave or detune what is already there, volume-compensated. Victory Road's caveat is the reason it works at all — "you'd be surprised at how many gaps in the music the listener's brain fills in on its own" (channel-interleaving).
A 1987 sound-effects engine as instrument design#
Martin Walker's Hunter's Moon SFX player is a whole instrument format in about 250 lines: thirteen tables of 32 entries, one column per effect — AD, SR, waveform (with the pulse width packed as XY → $0YX0), frequency lo/hi, a start control register and a second one written when a loop counter runs out, the loop value, frequency step lo/hi, and two effect selectors. The two-control-register pair is exactly an instrument's gate-off frame, generalised. What makes the effects sound real is register games rather than samples: byte-swapped frequencies, EOR #$DF/EOR #$12 scrambles of the pitch high byte, oscillator-3 noise ($D41B AND $0F) added to the high byte, and ring-modulated pairs — Plonk is voice 2 with control $15 (triangle + ring), SR $98, frequency $F400, step $0D, effect 5 (add for 8 frames then subtract), against voice 3 as a silent triangle modulator running the opposite effect. Tognon's own conclusion is the lesson: "I was sure it was a very complicated engine as the sound is the most realistic you can find into a game. But the engine is simple and the secret is just how the sid is manipulated in a convenient way" (source: s-sidin14-hunters-moon; sound-effects, ring-modulation-and-sync, randomization-and-probability).
Sample trackers#
- Drums: make chip drums by cutting both ends off real drum samples until they are tiny (source: s-tw077-chip-off-the-block); tune percussion by setting the sample's C-5 speed and always playing one note; kick in the centre; volume swing on hi-hats; keep sample volumes relative and balance with the global volume (Zinc, source: s-tw075-it-percussion-tips).
- Sample prep: centre (
ALT-H) and amplify (ALT-M) in IT (source: s-tw081-it-tip-of-the-week); filter out what a sound doesn't need — "why should a bassdrum have high frequencies?" — and add reverb offline, then pan the echoes (Vivid, source: s-tw059-tracking-hints); tune melodic samples with a guitar tuner on the line-out (source: s-tw077-general-tracking-tips); offline reverb and compression — threshold/ratio/attack per sound, gated-reverb and preverb recipes — are on reverb-and-compression (source: s-tw118-reverb-and-compression), the recording chain on recording-samples (source: s-tw066-sound-recording). - Instruments, not just samples: NNAs for sustain in one channel (new-note-actions), envelopes for reverb tails, sirens and analog sweeps (instrument-envelopes); several cheap instruments per sample.
- Realistic instruments come from sampling a real synth (Behemoth's Korg X5) — the opposite aesthetic to chip-samples, same craft (source: s-tw076-realism-in-mods).
- Where the samples came from (1995–96), per the traxweekly interviews: CDs and a friend's synth (basehead; source: s-tw001-interview-basehead); own CDs and videotapes through Goldwave 2.1 or CoolEdit (maelcum; source: s-tw009-interview-maelcum); a full own-synth chain — Korg Poly-61, Roland JX-8P, Yamaha DX7, Yamaha FX-500, an SM57 and a small mixer — for 99 % of one group's samples (the-zapper; source: s-tw027-interview-zapper); a whole song from a Casio CZ-101 (skaven; source: s-tw109-interview-skaven); the #trax wish list of December 1996 — Roland XP-50, Korg Prophecy, Korg Trinity, K2500, Nord Lead (source: s-tw080-trax-mass-interview). The ripping ethic of the same interviews: fine if you lack equipment, lazy if you have it, always credit (zinc; source: s-tw032-interview-zinc); "technique is technique, all that matters is the vibe" (jugi; source: s-tw010-interview-jugi) — see sample-ripping.
- Why the PC scene chose samples at all, from two later interviews: Mental Floss, after buying a Yamaha CS1x, "just had to go back to tracking. Synths are nice, but you just have a bigger sound stock by using samples, and more control" — and names what samples still lacked in 1998, "A) A sampler with filters B) An effects box" (source: s-tw119-interview-mental-floss). The flip side is that the instrument is the sample: for tracked techno, "with good samples, you can make stuff that sounds like real vinyl" (Injekted), and the main problem with scene techno is "lots of bad samples" (Subhuman) (source: s-tw054-interview-injekted-and-subhuman).
- Palettes and sample sets in the interviews (1995–96): a fixed palette as a writing method — perisoft's three standby samples, "FC SINER FROM PANIC", a "FILTER SYNTH" and the lead from Insideout, gave him ten songs in two weeks (source: s-tw011-interview-perisoft; compare chip-samples); new samples as the creativity trigger — beaner: "without new samples, i have absolutely NO creativity" (source: s-tw011-interview-beaner) — against big-jim's warning that spending the time on samples and rushing the tracking "gets boring half way through" (Foreign Skys; source: s-tw013-interview-big-jim); sample sets travelled with a style — lord-pegasus used "like 50% bh samples" and was told he tracked like basehead (source: s-tw018-interview-lord-pegasus), and maelcum claimed the "rezonant bassy sounds floating around nowadays" as his own, uncredited (source: s-tw019-interview-quarex); u4ia's criterion for a vocal sample is a voice that "alters much like an analog synth does. The sound progresses instead of sounding the same all the time" (Annie Lennox, "diva" voices), and his advice is "distort your samples and be happy" (source: s-tw067-interview-u4ia).
- Drum sampling (the sincere part of a satirical series, source: s-tw087-music-theory-a-modern-approach): sample drum machines in a pawn shop or real drums; study commercial drum loops closely — their main pulse is often a tambourine, so sample one; sample kick-plus-snare combinations in one file (playing them separately with NNA continue in impulse-tracker "loses the subharmonics and resounding frequencies as the two waveforms interact"); prefer a splash to a crash; render a pattern to a sample, drown it in reverb (Sound Forge, Cool Edit, GoldWave), then record to tape and resample for "analog noise".
Three tool-level recipes from the manuals: ProTracker's Chord maker mixes major, minor, sus4, 6th and 7th chords of one sample into a new chord sample (the way a 4-channel MOD gets a full chord on one channel), and its Boost/Filter/Echo shape drum samples ("Boost … Use this on hi-hats and snares!"; Filter "on noisy basses") (source: s-protracker-23d-help); FT2 builds instruments from envelopes, auto-vibrato and key splits (instrument-envelopes, multisampling; source: s-ft2-manual); S3M and OpenMPT's MPTM add two-operator FM patches — opl-fm-instruments (sources: s-st3-manual, s-openmpt-manual-samples).
Realism with samples#
Pulse: "try to imagine how the instrument would be played" — a real piano always has several notes sounding, so write chords; balance low and high frequencies (source: s-it-hints). Sklathill's piano guide: multisample many keys, loop the high notes, choose the instrument for its character, mic it close (bright), at the player's head (mellow) or in the room (reverb), and keep backups (multisampling; source: s-tw084-perfect-samples-the-piano). Nacho: never use low-quality 8-bit samples if you can avoid it — "more memory than expected is better than crappier than expected" (source: s-it-hints). Necros's list of instruments that are "DAMN HARD" to sample convincingly — real violins and violas, distorted electric guitar, accordion and harmonica, trumpet, cornet and trombone — is why the scene turned to sampled riffs and loops (source: s-tw009-samples-lameness-preconceptions); Zinc's two realism levers are true stereo samples for kicks, bass and short hits (stereo-panning; source: s-tw094-stereo-samples-in-impulse-tracker) and sampling short riffs of a real instrument instead of tracking every note (source: s-tw096-studio-tracking-tips). Necros's answer to "a tracked sax can never sound real": "10+ samples of bends, hits, overdrives, diff octaves, and keyclick noises" in one instrument, or sampled phrases jumped between with offsets — see multisampling, sample-offset and the debate on realism-in-tracked-music (source: s-tw070-realism-debate).
Instrument banks read from the sources (2026-08-30)#
- hubbard-player (Monty on the Run, 20 instruments; source: s-realdmx-hubbard-player): lead
$80,$09,$41,$48,$60,$03,$81,$00(pulse at$0980, AD$48, SR$60, vibrato depth 3, pulse sweep step$80with delay 1); "first skydive"$00,$09,$41,$3f,$ff,$01,$e7,$02(SR$ffso the tail rings through the extensions); pulse + octave arpeggio$00,$08,$41,$08,$50,$02,$00,$04; noise drum$00,$08,$81,$02,$08,$00,$00,$01; Commando's bass$52,$01,$41,$09,$9f,$00,$16,$08with the pulse-lo modulation flag and snare$00,$02,$81,$0a,$09,$00,$00,$05(drum + arpeggio). - musicfile / Armada (25 named instruments; source: s-realdmx-ouwehand-mon-tunes):
bass $05,$41,$00,$ab,$00,$53,$69,$00;bassdrum $08,$11,$07,$07,$f0,$02,$00,$10;snaredrum $08,$11,$09,$08,$f0,$01,$00,$10;lead $03,$41,$00,$77,$00,$53,$12,$80(with a sawtooth start frame fromstarttabel);lead-heavy $04,$41,$00,$7a,$00,$53,$12,$00;arp $15,$41,$00,$69,$10,$00,$41,$84;big-git $07,$41,$00,$a6,$00,$42,$56,$80;21-ding $00,$21,$08,$8c,$00,$53,$00,$80. - ocean-music-driver (source: s-realdmx-ocean-dunn-hughes-driver): the loader lead
$43,$00,$7B,96+GAP,$22— pulse + sync while gated, gate off 96 frames before the end of a 192-frame note, sawtooth + sync in release; the bend bass$41,$00,$AD,3,$40; DT88's$55,$00,$99,3,$40(triangle + pulse + ring, Jammer's "use of $55"),$81,$00,$A8,3,$10(three noise frames then triangle — a click),$01,$00,$88,2,$42(gate with no waveform, heard only in release), the title pad$11,$AA,$79,QV2+SQ2+GAP,$10. - bjerregaard-player (source: s-realdmx-bjerregaard-player):
;GUITAR $08,$6C,$79,$02,$04,$80,$05,$01with wave program$01,$43,$43,$43,$40,$FEand pulse program$01,$E0, $C0,$01, $B0,$01, $A0,$02, $10,$03, $08,$04,$FE;;MELODY $06,$50,$17,$04,$04,$20,$07,$51;;JEROEN PLOINK $08,$86,$17,$00,$04,$20,$08,$23; Myth's;bazedrum $08,$66,$00,p1-p0,$05,f0-f0,w2-w0,$00withw2 $01,$81,$41,$11,$40,$40,$40,$40,$40,$80,$ffandn5 $01,$ca,$aa,$b1,$a6,$a2,$9f,$9c,$9e,$df,$da,$ff. - galway-player (source: s-realdmx-galway-rambo-player): a Rambo "instrument" is a 5-byte register set (
$41,$dd,$cc,$82,$ff— pulse, AD$dd, SR$cc, gate 130 frames, never wiped;$41 | RINGBIT,$ee,$0f,$05,$32 ; instr5 for rising ringmod effect) plus whichever frequency and pulse programs the stream last loaded.
Recipes from the 1986–88 drivers#
- soundmonitor (24-byte sounds; source: s-64er-soundmonitor-article): flute
11,09,99,00,00,00,00,00,10,00,00,00,10,06,10,00,FF,…(triangle, vibrato depth10, speed06, delay10); bass drum11,09,09,01,00,00,00,00,10,01,FF,00,…(triangle pulled down once — register 9 =01, portamentoFF); snare81,09,09,01,00,00,00,00,80,01,10,30,…(noise with a fast slide); bass41,09,99,00,20,10,10,10,40,10,…(pulse20with the pulse EG stepping10up and down); "Rambo theme sound"41,08,7D,00,00,20,10,10,40,10,00,00,10,08,1D,00,FF,…; ring-mod effect15,08,7A,10,…(triangle + ring + sync). VGMPF's verdict on the editor's era: "particularly drums were just a triangle wave sliding down" (source: s-vgmpf-soundmonitor-tfmx). - musicfile / cybernoid-ii (8-byte rows
pulsehi, waveform, attdec, susrel, filcount, fx1, fx2, fx3; source: s-realdmx-sid-players): bass$05,$41,$08,$89,$00,$53,$64,$80; bass drum$08,$11,$00,$a8,$f0,$00,$00,$10and snare$08,$11,$00,$a9,$f0,$01,$00,$10(triangle,$f0filter count); filtered arpeggio$04,$21,$00,$c8,$01,$00,$81,$85(sawtooth); leadmelo-1 $0c,$41,$00,$b8,$00,$52,$22,$01;solo $05,$41,$00,$b8,$03,$c5,$24,$01. Drums are 11-frame waveform lists starting$81,$81,$20,$20,$10 …over pitches$34,$0a,$08,$06,$04 …. - matt-gray-player V4.2 (source: s-matt-gray-dominator-source): a drum as (control, pitch) frame pairs —
$81,$30, $11,$02, $41,$04, $80,$30, $80,$15, $80,$20 … $FF(noise high, then triangle and pulse steps, then gated-off tails) — and a hi-hat routine of$81at frequency-high$50. Gray "always kept a bank of sounds that could be modified from project to project" (source: s-c64com-matt-gray-interview).
- A listener's criterion, from JCH: "for me it's important that the whole package is good, not just the compositions … when it's clear that the musician doesn't really care about the instruments, a lot of the charm seeps into the sand"; what he admired — Tel's "delicious and polished instruments", Follin's "lifelike harmonica and an old electronic organ" in Ghouls'n Ghosts, Galway's pulsating, Fred Gray's per-note pulse jumps — and what he did not (Daglish "satisfied with the default instruments") (source: s-chordian-sid-musicians).
JITT64's example bank (2010)#
Tognon's jitt64 article shows an instrument gallery whose recipes are given in words (the values were screenshots): a sea effect from noise with a very long attack/decay and no sustain, no restart; Emil's string from an arpeggio plus a wide pulse "vibrato", its slow release covered by a one-tick hard restart; an oriental flute with a high starting pitch and a growing vibrato, hard-restarted; two bass drums of fixed notes and noise (the second lower and less noisy); a filtered bass drum that follows the pattern note after a fixed drum start, with a pulse "portamento" and a moving cut-off; Matt Gray's bass with a pulse-width vibrato; two Dane leads with hard restart and a pulse portamento or vibrato; two Matt Gray snares of fixed notes and noise, one "less hard" — the same families as the matt-gray-player and musicfile banks above, rebuilt in a 2010 editor (source: s-sidin13-jitt64-tracker).
Every kick, by channel (defense-mechanism on LSDj 9.4.0, source: s-defensemech-every-lsdj-kick). On the wave channel: P alone slides the pitch down but wraps if pushed; L with transpose 80 always lands on C1 and cannot wrap, which frees the note column to tune the transient — a higher starting octave adds high end, more so with a slower slide. PITCH DRUM gives the logarithmic curve; FAST is "a zappy kick". A harsh first wave stepped off with F01 is the attack. The 808 kick into a bass note comes either from one instrument (FAST pitch, clipped sine, transposes down and an L to the bass note, F or E thinning the level) or — with more control — from two instruments split by a groove: groove 10 = 3 9 gives the kick three ticks and the bass nine, groove 11 = 3 9 6 fixes the following bar, with W setting the bass synth's decay (shuffle-funktempo). On the pulse channels: the hardware sweep on PU1 costs no CPU and is very tunable (he settles near 64, and prefers it for toms); P+L works as on the wave channel but bottoms out at C2; and R80 — resync, R8F to switch it off — "is like the game changer of the pulse channel kicks", ringing the channel at a high frequency that drops about half an octave and reaching down to roughly F1. On the noise channel, PITCH SAFE is a sound as much as a safety net: restarting the channel on every pitch change "offers this almost tonal aspect", where FREE "completely loses its impact"; a transpose on tick three of the same table hides a hi-hat inside the kick (credited to nintendo kwondo). Stutter kicks needed an L 00 00 to reset the pitch before 9.4.0; since then a plain R does it (retrigger).
A drum kit taken apart (pain-perdu, source: s-painperdu-03-isometric-sav-walkthrough). His "noise explosion" is one table: a very high shape for the transient, the envelope dropping straight down and then rising slowly so the hit does not swallow the kick — "you still have the impact but it still lets the kick cut through" — with an H hop looping the tail rather than letting it fall away. The sweep inside it exploits S being relative: "it adds to the shape parameter, it does not set the shape", so a repeated S F0 wraps once and lands a step lower each pass, walking the noise down slowly, and the hop's period sets how fast that happens. Kicks get a transient plus a pitch drop, with K commands cutting successive hits a little sooner — which also cuts the pitch envelope, so each kick ends higher than the last and repeated kicks stop sounding identical; a tom is "exactly the same way you make a kick but with a slower pitch slide". And the snare: "a super common misconception that everyone makes when they start doing electronic music is that snares are only noise — this is not true", so his pairs the noise hit with a short tuned tone on the wave channel, "character in the high end and character in the mids". Two rules of restraint: keep explosions rare, "or you won't have any room for any other percussive element"; and mix by subtraction — "if you want something to sound loud, don't make it loud, make the rest quiet … it's only loud referentially".
Shape is timbre (source: s-lsdj-and-you-collapse-of-the-waveform). Drawing rather than generating a wave, roboctopus states the rule plainly: "the more angular the wave, the sharper its edges, the sharper and harsher the sound is" — deepen a notch and the tone hardens, narrow it to one sample and it sharpens, round its contour and it smooths. Three instruments from that: a more angular saw ("more bite and more low-end") than the LSDj default; a pulse with every sample at 0 except the first, harsh and with no low end but excellent for table arpeggios; and a clipped sine with a notch cut in the peak — "a bass with great low-end but enough definition to cut through the mix". Volume is the wave's overall height, so quieter versions are the same shape redrawn shorter. His answer to "the wave channel is too quiet" is a mixing one: keep pulse instruments below A8 instead, accepting that the panning and envelope clicks get relatively louder. To design a wave for a sound you have in mind, find a picture of that waveform and approximate its shape in the WAVE screen (source: s-lsdj-and-you-supersaw-bass).
Wave instruments that are not drums (source: s-chipmusic-lsdj-wav-instrument-tutorials): the attack is a separate frame, not a property of the waveform. Make the synth's first wave much louder than the rest (or fill it with near-noise for a breath), PLAY MANUAL, F01 on the table's first tick, and the instrument gets an attack that only sounds on notes carrying the instrument number — see lead-articulation. The opposite school in the same thread: start from a sine or thick square and "chip away at the bass frequencies until you get something you like", aiming for a sound of your own rather than an imitation.
Related#
adsr-envelope · instrument-tables · wavetable-programming · pulse-width-modulation · filter-programming · hard-restart · ring-modulation-and-sync · goattracker · sid-factory-ii · siddump · recording-samples · reverb-and-compression · sample-ripping · realism-in-tracked-music
Sources#
s-037-lab · s-sid-wizard-manual · s-witchmaster-creating-chiptunes-with-sid-wizard · s-goattracker-readme · s-chordian-sf2-instruments · s-newman-driving-the-sid-chip · s-pandocs-audio-registers · s-pandocs-audio-details · s-intense-tech-10-kicks-part-1 · s-intense-tech-11-kicks-part-2 · s-intense-tech-17-the-joys-of-noise · s-intense-tech-18-adsr-makes-life-easier · s-infu-getting-started-with-lsdj · s-chipmusic-noise-drum-threads · s-chipmusic-tables-and-chords-threads · s-chipmusic-kotlinski-interviews · s-protracker-23d-help · s-ft2-manual · s-st3-manual · s-openmpt-manual-samples · s-tw009-samples-lameness-preconceptions · s-tw094-stereo-samples-in-impulse-tracker · s-tw096-studio-tracking-tips · s-lsdj-manual · s-tw077-chip-off-the-block · s-tw075-it-percussion-tips · s-tw081-it-tip-of-the-week · s-tw059-tracking-hints · s-tw077-general-tracking-tips · s-tw076-realism-in-mods · s-it-hints · s-tw084-perfect-samples-the-piano · s-tw118-reverb-and-compression · s-tw066-sound-recording · s-tw001-interview-basehead · s-tw009-interview-maelcum · s-tw027-interview-zapper · s-tw109-interview-skaven · s-tw080-trax-mass-interview · s-tw032-interview-zinc · s-tw010-interview-jugi · s-tw087-music-theory-a-modern-approach · s-tw070-realism-debate · s-chipmusic-c64-music-for-dummies · s-mos-6581-datasheet · s-c64-prg-chapter-4-sound · s-intense-tech-12-scoping-out-new-features · s-intense-tech-15-lets-mix-it-up-and-down · s-intense-tech-19-new-noise-and-910-news · s-intense-tech-21-whats-new-in-lsdj-92 · s-sabrepulse-getting-started-with-lsdj · s-chipmusic-typical-sid-sounds · s-lemon64-learning-sid-sound-design · s-chipmusic-sid-music-hints-n-tips · s-lemon64-sid-wizard-instrument-recommendations · s-ucapps-wavetable-sounds-tutorial-1 · s-tw011-interview-perisoft · s-tw011-interview-beaner · s-tw013-interview-big-jim · s-tw018-interview-lord-pegasus · s-tw019-interview-quarex · s-tw067-interview-u4ia · s-64er-soundmonitor-article · s-realdmx-sid-players · s-matt-gray-dominator-source · s-vgmpf-soundmonitor-tfmx · s-c64com-matt-gray-interview · s-chordian-sid-musicians · s-realdmx-hubbard-player · s-realdmx-ouwehand-mon-tunes · s-realdmx-ocean-dunn-hughes-driver · s-realdmx-bjerregaard-player · s-realdmx-galway-rambo-player · s-sidin13-jitt64-tracker · s-defensemech-noise-channel-92l · s-chipmusic-lsdj-speech-synthesis · s-lsdj-and-you-echo-chamber · s-chipmusic-lsdj-advanced-tricks · s-sidin14-hunters-moon · s-tw119-interview-mental-floss · s-tw054-interview-injekted-and-subhuman · s-intense-tech-01-wave-synth-deep-dive-part-1 · s-intense-tech-02-wave-synth-deep-dive-part-2 · s-lsdj-and-you-pwm · s-painperdu-04-sidechaining · s-hugi38-interview-jeroen-tel · s-remix64-galway-interview · s-sidmusic-galway-interviews · s-sidmusic-yannes-interview · s-chipmusic-lsdj-wav-instrument-tutorials · s-lsdj-and-you-collapse-of-the-waveform · s-lsdj-and-you-supersaw-bass · s-painperdu-03-isometric-sav-walkthrough · s-defensemech-every-lsdj-kick