The sound chip of the FANCO-16 v4. A SID that grew up: 32 operators, 8 filters, 32 ramps, 8 delay lines of 10.9 seconds, two capture channels — at a guaranteed 48 kHz. Every example below is a list of register writes rendered by the actual chip, right here in your browser.
The FNC 4032 is a single-chip polyphonic synthesizer mapped into 2 KB of the
FANCO-16 address space at 0400–0BFF. Like its ancestor, the MOS 6581, it
is programmed entirely by writing registers; unlike it, every parameter that changes
over time can be handed to the chip itself.
| Range | Unit | Stride |
|---|---|---|
| 0400–07FF | 32 operators | 20 (32 bytes) |
| 0800–087F | 8 filters | 10 |
| 0880 | master volume | — |
| 0900–09FF | 32 ramps | 08 |
| 0A00–0AFF | 8 delay lines, 2 taps each | 20 |
| 0B00–0B1F | 2 capture channels | 10 |
Hz = 440 · 2(p − 800016) / 3072. One semitone is 0100, so
the high byte is the MIDI note number + 3B: middle C (MIDI 60 = 3C) is
7700, A4 is 8000. Detune is the low byte. An interval is an
addition: a fifth is +0700, an FM ratio of 3.5 is +15B0.
Filter cutoffs use the same scale.
A time byte t is 2(t−1)/16 ms: 01 = 1 ms,
11 = 2 ms, A1 = 1 s, FF ≈ 60 s;
00 is instant. Sixteen codes per octave of time: fine enough that nobody
hears the steps.
| SID | 6581 register | SIREN | FNC 4032 equivalent |
|---|---|---|---|
| D400–01 | FREQ, 16 bit, linear: Hz = F · 0.0587 | 0400–01 | PITCH, logarithmic: the note is the high byte |
| D402–03 | PW, 12 bit | 0404–05 | SHAPE, 16 bit (also noise colour) |
| D404 b7–4 | NOISE PULSE SAW TRI (combinable) | 0402 | WAVE (one at a time; mix by stacking operators) |
| D404 b3 | TEST (reset & hold) | 0403 b1 | RST: restart phase on gate |
| D404 b2–1 | RING MOD, SYNC with voice 3 | 0406 | MOD: mode + any source operator |
| D404 b0 | GATE | 0403 b0 | GATE |
| D405–06 | ATK DCY / STN RLS nibbles | 040C–14 | 4 segments: level + time byte each, flags |
| D415–16 | FC, 11 bit | 0800–01 | CUTOFF on the pitch scale, per filter (8) |
| D417 | RES · FILT EX 3 2 1 | 0802 / 040B | RESONANCE / per-operator ROUTE |
| D418 | 3OFF HP BP LP · VOL | 0803 / 0880 | MODE / MASTER |
| D41B–1C | OSC3 / ENV3 readback | 0B00–1F | CAPTURE: any unit, any format, to RAM |
Every C64 player carried the grey numbers around as a 192-byte lookup table. The bold ones
need no table: (note + 3B) << 8.
Precision is always relative (1 part in 4096–8192): 1/256 sample near zero for flangers and tuned combs, 1.3 ms at ten seconds.
Each recipe below is the complete list of writes, with timestamps in seconds.
Hover or tap any byte to decode it. PLAY renders the list on the real chip
(the same sound.ts the machine runs); DRY plays it without the lines
marked FX. EDIT opens the listing as text: change a byte, press assemble, hear it.
The song references name the sound being imitated, not a recording; these are recipes, not samples. The spectrogram is log-frequency 30 Hz–20 kHz with the stereo waveform below it (left cyan, right pink).