|Sound Interface Device|
1.) Variable Wave or White Noise
The Sound Interface Device (SID) is an analog synthesizer chip designed as part of the Commodore 64 8-bit home computer. It came in two models, 6581 and 8580.
Aged 24, Bob Yannes was tasked with designing a sound chip, with a given size, in only four or five months up to November 1981. Finding the AY-3-8914 and POKEY chips unmusical, he took inspiration from professional synthesizers and fulfilled 70% of his own wish list. Unfortunately, the schedule left serious bugs and inconsistencies.
A single SID chip outputs mono. Stereo requires multiple chips. Besides audio, SID also tracks movements of connected mice or paddles. Channel 3 was sometimes sacrified as a random number generator or timer, so if you remove the sound chip from a Commodore computer, some games may become dull.
On each of three channels, you can choose:
- Pitch up to 3848 Hz (A♯7) in 65536 steps of 0.06. This precision, especially in higher pitches, was new at the time.
- ADSR. Due to aforementioned bugs, sometimes notes are slightly out of beat. The volume cannot be directly set, which Charles Callet criticized.
- Waveform: triangle, sawtooth, pulse, white noise, or combinations of the first three (with differences per model).
- Pulse width of each pulse-based wave in 4096 steps of 0.0244140625%.
- Whether to use ring modulation on triangle-based waves.
- Whether to use Hard Sync.
- Whether to use the single filter.
On the filter, you can choose cutoff frequency, resonance, and combine low-, band-, and high-pass. Unfortunately, the result varies with every SID chip and even every computer it is socketed on, hence gamers often heard sections muffled or louder than intended. Most composers, including Rob Hubbard, Martin Galway, Chris Hülsbeck, Jeroen Tel and Yannes expressed their concern in interviews, and some, like Ben Daglish and Chris Grigg, used the filter very sparingly or purposely avoided it. A very few games allow the gamer to alter the games' filter settings.
Both SID models can play samples in different ways, most famously the speech in Impossible Mission (C64). However, samples are always very CPU-intensive, so they rarely saw use in gameplay.
People still argue which SID model sounds better. Both require different voltages and can be destroyed if you socket them into the wrong Commodore model.
The original SID was developed under intense time pressure, using a limited manufacturing process. Dated from 1982 to early 1991, these chips feature the following bugs:
- As detailed above, the filter sounds different on every 6581 chip.
- The filter can distort certain pitches and even transpose them down an octave, especially when multiple channels are filtered.
- Changing the master volume and toggling the filter produce a click; the greater the change, the louder. On the upside, games can use clicks as a rudimentary DAC and thus play unsigned 4-bit PCM samples on an unofficial 4th voice. In the late 1980s, it was very popular to arrange digi drums over three SID voices.
After Yannes left, Commodore cost-reduced their manufacturing process, which spawned the C64C and the only major revision of SID. Dated from March 1986 to August 1993, the 8580 started prevailing in the early 1990s. The 8580 is closer to Yannes' original intent and differs from the 6581 as follows:
- The filter is consistent between chips. However, some songs arranged for 6581 sound choppy on 8580. In turn, 8580 songs buzz and click on 6581.
- The filter does not distort anymore.
- Clicks, and therewith the 4th voice, are quiet or even mute on almost all 8580s. Many users fixed this by soldering a resistor. A very few games use methods to reliably play samples replacing one of the three SID voices.
This section demonstrates the above differences using recordings from up to 4 real C64s (labelled R2, R3, R4 and R5) by Stone Oakvalley's Authentic SID Collection (SOASC=):
|Feature||Song||Game||6581 recording||8580 recording|
|4th voice||Theme||Arkanoid (C64)||R2||R5|
|Combined triangle and pulse wave||Underground||Labyrinth: The Computer Game (C64)||R2||R5|
|Combined triangle and sawtooth wave||Theme||Impossible Mission II (C64)||R2||R5|
|Combined triangle and sawtooth wave||Sesam Song||Fire Bug (C64)||R3||R5|
|Filter minimum||Main Menu||The Great Giana Sisters (C64)||R4||R5|
|Filter clicks||Menu||Kangarudy (C64)||R3||R5|
Listen to the bass of High Score - Wizball (C64):
Do you hear the bass go deeper and deeper with every C64? Now this may be matter of taste and no big deal, but listen to Insects In Space by the same composer and skip to the melody at 1:06:
Do you hear how in the first recording, the melody has a wah-wah sound, and in the second, it almost hasn't? Martin Galway must have put some effort in the wah-wah and wanted it to be heard. It could also mean that Stone Oakvalley's R4 is closest to Galway's Commodore 128D.
Sometimes, the melody itself vanishes or sticks out unbearably:
Though not as unbearable as one of the following at 0:20, 0:44 and 1:15:
|199?-??-??||Commodore 64 Games System||8580|
|1993-0?-??||Commodore 65||2x 8580|
In 1982 or 1983, David Thiel bought 6581s from Commodore and had two wired on an arcade sound board. While he was testing, Gottlieb's buyer told him that Commodore preferred all 6581s for themselves.
To this day, the analog parts of the 6581 model are not fully understood. For example, Title - Bad Cat has unrealistic volume differences, and In the Hall of the Mountain King - The Crystals of Carus is plain unrecognizable.
The most popular and accurate SID emulators are reSID and reSIDfp (in C++ and under GPL) and used in most C64 emulators, SID players and cross-platform editors. Many of them allow to choose the clock, model and filter. Both are still being developed and found up-to-date in the VICE emulator and Sidplayfp player.
- archive.6502.org/datasheets/mos_6581_sid.pdf - Commodore's 6581 datasheet (caution: contains incorrect information).
- archive.6502.org/datasheets/mos_6582_sid.pdf - Commodore's 8580 datasheet (caution: contains incorrect information).
- en.wikipedia.org/wiki/MOS_Technology_6581 - Wikipedia.
- sidmusic.org/sid/yannes.html - Interview with Yannes from August 1996.
- github.com/libsidplayfp/resid - Current reSID source code.
- github.com/libsidplayfp/libsidplayfp/tree/master/src/builders/residfp-builder/residfp - Current reSIDfp source code.