SID sound designer
Design Commodore 64 SID sounds — three voices with triangle, saw, pulse and noise (and combinations), real ADSR rates, ring modulation, hard sync, the 6581/8580 filter — play them from the keyboard, and export the $D400–$D418 registers as BASIC POKEs, assembler, or PAL/NTSC note tables.
Added
How to use it
Press Sound on, then play the on-screen piano or your keyboard (A W S E D F T G Y H U J K,
Z/X for octave) — it plays the voice chosen under Keyboard plays, opening and closing
the gate so you hear the whole envelope. Gate on each voice latches it on.
Each voice has:
-
Waveforms — triangle, sawtooth, pulse and noise. Ticking several combines them the way the chip does (roughly, a bitwise AND, which is why combinations are quieter).
-
Ring — ring-modulates the triangle with the previous voice (voice 3 for voice 1).
-
Sync — restarts the oscillator each time the previous voice’s cycles; with a higher frequency here you get the classic sync lead.
-
Test — holds the oscillator at zero.
-
Pulse width — 12 bits; 2048 is a square wave.
-
Attack, decay, sustain, release — with the datasheet timings. The decay and release use the SID’s piecewise-exponential curve.
The filter is a 12 dB/octave state-variable filter with an 11-bit cutoff, 4-bit resonance, and low-, band- and high-pass outputs that can be mixed (LP + HP = notch). Route any voice through it. 3OFF silences voice 3 when it is not filtered — useful when voice 3 is only a modulator or a random-number source.
The register map updates as you go. Export gives:
-
BASIC POKEs —
S=54272and the values, ready to paste into a C64. -
Assembler — a register table and a copy loop.
-
Note table —
freq_lo/freq_hitables for C0–B7 at the chosen PAL or NTSC clock.
Formulae
-
Frequency register =
f × 16 777 216 ÷ clock; clock is 985 248 Hz (PAL) or 1 022 727 Hz (NTSC). A4 (440 Hz) is$1D45on PAL. -
Pulse duty =
PW ÷ 40.95%. -
Attack 2 ms – 8 s; decay and release three times as long for the same value.
Limits
The sound comes from a small SID model written for this page: oscillators, noise LFSR, sync, ring modulation and the envelope are modelled on the chip’s logic, but the filter and the combined waveforms are approximations, and the 6581’s filter differs from chip to chip. It gets you close; check the result on a real C64 or in VICE/reSID.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.