MOS 6581 Sound Interface Device (SID) datasheet — the text behind Appendix O

author MOS Technology, Inc. / Commodore Semiconductor Group (no personal author named)
date undated (the chip is from 1982; the PRG of 1982 reprints this text as Appendix O)
article Concept · Features · Description · Control registers (Table 1) · Register description · Filter · Misc · Pin description · Characteristics · Timing · Appendix A (equal-tempered scale values) · Appendix B (envelope generators) · Appendix C (application circuit, figure only)
created 2026-08-30 · updated 2026-08-31

The manufacturer's twelve-page specification of the sid: block description, the 29-register map, a paragraph per register bit, the envelope rate table, the filter, pins and electrical data, the note table with a memory-saving algorithm, and a short essay on ADSR envelopes with five worked instrument envelopes. The C64 Programmer's Reference Guide reprints it as Appendix O (s-c64-prg-chapter-4-sound); the SID-Wizard book quotes several of its sentences (s-witchmaster-creating-chiptunes-with-sid-wizard). The scanned PDF's text layer has OCR noise in the register table and the hex column of Table 2; the numbers below were checked against the PRG's copy of the same table.

Key claims#

  • Concept and features: a "3-voice electronic music synthesizer/sound effects generator"; oscillators 0–4 kHz, four waveforms each, three envelope generators with "exponential response", attack 2 ms–8 s, decay/release 6 ms–24 s, sustain 0–peak; oscillator sync, ring modulation, a programmable filter (30 Hz–12 kHz, 12 dB/octave, low/band/high-pass and notch, variable resonance), master volume, two A/D pot inputs, a random-number/modulation generator, an external audio input. Each voice = tone oscillator/waveform generator + envelope generator + amplitude modulator; the filter is for "subtractive synthesis".
  • Registers: 29 eight-bit registers, write-only for the voices and the filter, read-only for POTX/POTY/OSC3/ENV3; the five address lines allow 32, the three spare locations ignore writes and return invalid data. Voice 1 at $00–$06 (Freq Lo/Hi, PW Lo/Hi, Control, Attack/Decay, Sustain/Release), voice 2 at $07–$0D, voice 3 at $0E–$14, filter $15 FC Lo (bits 0–2), $16 FC Hi, $17 RES/Filt (resonance high nybble; Filt EX, Filt 3, 2, 1), $18 Mode/Vol (3 OFF, HP, BP, LP; volume nybble), $19/$1A POTX/POTY, $1B OSC3/Random, $1C ENV3.
  • Frequency: Fout = Fn × Fclk / 16777216 Hz; at 1.0 MHz Fout = Fn × 0.0596 Hz; the 16-bit resolution "allows sweeping from note to note (portamento) with no discernable frequency steps".
  • Pulse width: 12 bits (PW HI bits 4–7 unused); PWout = PWn / 40.95 %; 0 or 4095 = constant DC, 2048 ($800) = square; the pulse waveform must be selected for the width to be audible; sweeping it "produces a dynamic 'phasing' effect", jumping between widths "interesting harmonic sequences".
  • Control register bits: 0 GATE (set → attack/decay/sustain, clear → release; the envelope alone sets the amplitude, so selecting a waveform is required but deselecting one is not needed to silence a voice), 1 SYNC (oscillator 1 to oscillator 3; osc 3 must be non-zero, "preferably lower"), 2 RING MOD (replaces osc 1's triangle with a ring-modulated combination of 1 and 3, "non-harmonic overtone structures for creating bell or gong sounds"; triangle must be selected, osc 3 non-zero; no other voice-3 parameter matters), 3 TEST (resets and locks the oscillator at zero, resets the noise output, holds pulse at DC; usable "to synchronize Oscillator 1 to external events"), 4 triangle ("mellow, flute-like"), 5 sawtooth ("bright, brassy"), 6 pulse ("bright, hollow square wave to a nasal, reedy pulse"), 7 noise ("low rumbling to hissing white noise", for explosions, wind, surf, "snare drums and cymbals"). Voice 2's SYNC/RING use oscillator 1, voice 3's use oscillator 2.
  • Waveforms are not additive: selecting several gives "a logical ANDing"; "if any other waveform is selected while Noise is on, the Noise output can 'lock up'" until the TEST bit or the RES pin resets it.
  • Envelope: Table 2 — attack 2, 8, 16, 24, 38, 56, 68, 80, 100, 250, 500, 800 ms, 1, 3, 5, 8 s; decay/release 6, 24, 48, 72, 114, 168, 204, 240, 300, 750 ms, 1.5, 2.4, 3, 9, 15, 24 s (values 0F); rates assume a 1.0 MHz Ø2 clock — "for other Ø2 frequencies, multiply the given rate by 1 MHz/Ø2"; attack time is zero-to-peak, decay/release time is peak-to-zero. Sustain: 16 linear steps, 8 = half the peak. Release rates equal decay rates. "The cycling of the Envelope Generator can be altered at any point via the Gate bit": clearing it mid-attack starts the release from the amplitude reached, re-gating mid-release starts a new attack from there — "complex amplitude envelopes via realtime software control".
  • Unison: voices used together with "a slight detuning of each oscillator or tuning to musical intervals" give "a rich, animated sound".
  • Filter: 11-bit cutoff (FC Lo bits 3–7 unused), approximately 30 Hz–10 kHz with the recommended 2200 pF capacitors (the pin description says 30 Hz–12 kHz and gives FCmax = 2.6E-5 / C, with the range extending "approximately 9 octaves below" the maximum); resonance 16 linear steps; Filt 1/2/3/EX route the voices and the external input; LP passes below the cutoff and attenuates above at 12 dB/octave ("full-bodied"), BP 6 dB/octave ("thin, open"), HP 12 dB/octave ("tinny, buzzy"); the modes are additive — LP + HP = notch; "the Filter is, perhaps, the most important element in SID … The best results are achieved by varying the Cutoff Frequency in real-time". 3 OFF disconnects voice 3 from the output (with Filt 3 = 0) for silent modulation.
  • Volume: 16 linear steps; usable "for creating dynamic volume effects, such as Tremolo"; "some Volume level other than zero must be selected".
  • Readbacks: POTX/POTY update every 512 Ø2 cycles; OSC3 returns the upper 8 bits of oscillator 3 (sawtooth counts 0–255, triangle up and down, pulse jumps, noise = random numbers) — a modulation source: sawtooth into another oscillator's frequency = siren, noise into the filter cutoff = "sample and hold", triangle at "a frequency around 7 Hz" scaled into another oscillator's frequency = vibrato; ENV3 needs a gated voice 3 and gives "harmonic envelopes, WAH WAH" into the cutoff or "phaser" into a frequency.
  • Pins and electrics: RES low for ≥ 10 cycles clears all registers; Ø2 nominal 1.0 MHz clocks oscillators, envelopes and bus transfers; separate ground and +5 V lines "to minimize digital noise"; EXT IN (~100 kΩ, 6 V DC, ≤ 3 V p-p, AC-coupled, unity gain when unfiltered) lets several SIDs be daisy-chained; AUDIO OUT ≈ 3 V p-p on a 6 V DC level with a 1 kΩ load; Vdd 12 V, Vcc 5 V, ≈ 600 mW.
  • Appendix A: the 96-entry equal-tempered table for a 1.0 MHz clock (C0 = 274 = $0112 … A7 = 59056 = $E6B0; B7 = 66288 is beyond 16 bits); the memory-saving method — keep the 12 top-octave values (C7–B7) and right-shift once per octave, with a note byte whose low nybble is the semitone and high nybble the octave.
  • Appendix B — envelopes as instruments (A/D/S/R values with times): strings/brass/woodwind A 8 A 9 (500 ms, 300 ms, 750 ms); drum/cymbal 0 9 0 9 (decays "regardless of when GATE is cleared"); piano/harpsichord 0 9 0 0 (decays slowly while held, cuts when released); organ 0 0 F 0; "backwards" A 0 F 3 (slow attack, quick stop); "The real power of SID lies in the ability to create original sounds rather than simulations".

Practical takeaways#

Everything a tracker's instrument screen abstracts, in register terms: the envelope table in ms, sustain as a linear fraction, the exact meaning of gate/sync/ring/test, why noise + another waveform goes silent, the filter's slopes and modes, and the officially sanctioned modulation tricks (OSC3/ENV3 readback). The five Appendix B envelopes are the original SID instrument presets.

Notable quotes#

"The Filter is, perhaps, the most important element in SID as it allows the generation of complex tone colors via subtractive synthesis."

"If any other waveform is selected while Noise is on, the Noise output can 'lock up'."

Relevance#

The primary hardware source for sid; confirms the ADSR timing table already on adsr-envelope from the SID-Wizard book, the sync/ring rules on ring-modulation-and-sync, the pulse-width and filter formulas, and the datasheet quotes the wiki previously had only second-hand.

Pages touched#

sid · adsr-envelope · ring-modulation-and-sync · filter-programming · pulse-width-modulation · vibrato · sid-player-routine · instrument-design · detune · commodore-64 · c64-programmers-reference-guide · sidechain-pump · sound-effects · levels-and-headroom

source file wiki/summaries/s-mos-6581-datasheet.md · graph