Fanco Semiconductor · Preliminary Data

SIREN.

FNC 4032Sound Interface with Ramps,
Echoes and Networks
Rev. 0.4 · October 2026

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.

IGeneral description

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.

  • 32 operators: sine, triangle, saw, pulse, coloured noise, constant
  • Pitch range 0.27 Hz – 24 kHz on one logarithmic scale, 256 steps per semitone (0.39 cent)
  • Modulation per operator: FM/PM, ring/AM, hard sync, vibrato, PWM, self-feedback
  • 4-segment envelopes, linear or exponential, 1 ms – 60 s, sustain and loop
  • 8 state-variable filters: LP, BP, HP, notch; resonance; cutoff modulation
  • 32 ramps: glide any register, linear or exponential
  • 8 delay lines × 219 samples (10.9 s), 2 taps each, fractional position, cross-feedback, damping, allpass mode
  • Stereo output, per-unit pan
  • Capture: 2 channels copy any unit's output to RAM every frame
  • Fixed cost: every unit runs every sample, so the worst case is the only case
Fig. 1 — FNC 4032 pin configuration (40-pin DIP). The chip does not exist; the pinout is what it would have been.

IIRegister map

Address space

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

Pitch

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.

Envelope and time codes

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.

Operator n at 0400 + 20·n

+00
PITCH lo/hi word
+02
WAVE 0 sine · 1 tri · 2 saw · 3 pulse · 4 noise · 5 constant
+03
GATE
——————RSTGATE
76543210
+04
SHAPE word: pulse width (8000 = square) / noise colour
+06
MOD
MODESOURCE OPERATOR
76543210
mode 1 FM · 2 ring · 3 sync · 4 vibrato · 5 PWM
+07
DEPTH
+08
LEVEL · +09 PAN · +0A SEND · +0B ROUTE
+0C
L1 T1 L2 T2 L3 T3 L4 T4 envelope levels and time codes
+14
ENVFLAGS
LOOPSUSSUS SEGEXP4EXP3EXP2EXP1
76543210
+15
FEEDBACK self phase modulation
+16
reserved to +1F

One SID voice, one SIREN operator

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

IIITables

Table 1 — Note table. Bold: SIREN pitch word. Grey: the SID PAL frequency word for the same note.

Every C64 player carried the grey numbers around as a 192-byte lookup table. The bold ones need no table: (note + 3B) << 8.

Table 2 — SID envelope rates in SIREN time codes

Table 3 — Tap position: 16-bit float, 4-bit exponent

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.

§Cookbook

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.

operatorfilterrampdelay linemaster

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).