SID chip combined waveforms

The SID chip provides four elementary waveform generators (triangle, sawtooth, pulse and noise) that can be activated/selected to generate the output of any of the three voices. The generators are driven via a 24-bit "per-voice" phase accumulator, a register that is incremented with each clock cycle with an increment that depends on the pitch of the played note.

The waveform output has 12-bit resolution and respective bits are set based on the "logic" implemented by the activated "waveform generator" circuitry and the current value of the accumulator. Ideally exactly one of the generators is activated at a time, i.e. the other three generators are then "disabled".

But as a special "feature" it is also possible to activate more than one of these generators at the same time (e.g. the "triangle" output related circuitry may be activated while the "sawtooth" output is activated at the same time). The effect is called "combined waveforms" and is where things get interesting:

It seems that the way that the output-bits of the different "wave generator" circuits are wired leads to electric currents such that physically nearby output-bits may actually influence each other (FETs of different "wave generator" circuits then seem to load each other as a side effect). The effects are similar but different in older generation 6851 and newer 8580 model SID chips, which may stem from the fact that these use a somewhat different chip trace layout (e.g. the resistance of certain traces differs between the models) and the effects are probably also influenced by the different power supply voltages that the two chip models use (12V for the 6581 vs 9V for the 8580).

Since the resulting output signals are "weird" and somewhat unpredictable, emulators often use lookup tables with respective "combined-waveform outputs" directly recorded from real SID chips, rather that trying to generate these waveforms. But Mihály Horváth (Hermit) also analyzed the respective hardware wiring and came up with an algorithm that seems to approximate the "real thing" rather nicely. The respective logic/parameterization is probably not perfect but webSID's "combined waveform" logic uses Hermit's approach with a configuration that has been somewhat "improved" for some of the waveform combinations.


SID chip voices (a red border signifies that this voice uses a combined waveform)

combined: -
combined: -
combined: -

Here some examples (click a song name to play it on this page):

  • Probably the most popular combination is "triangle-pulse" and one of the more well known examples is which starts with 2 voices using the respective combination. Another example is where the waveform kicks in about 40 seconds into the song.
  • A similar combination is "sawtooth-pulse" and though it is used less frequently an example can be seen in action in where it is used on voice 2 right from the start.
  • Also less popular seems to be "triangle-sawtooth" of which an example can be easily observed in where it is used on voice 1 right from the start.
  • The combination of "triangle-sawtooth-pulse" is more difficult to observe in the wild. An example can be found in where it is used on voice 3 about 20 secs into the song (it sounds like some cheap wind instrument).
  • The most exotic case among combined waveforms is finally any combination that also uses "noise": Here the SID chip uses a feedback mechanism that causes the other waveforms to quickly clear the "noise" generator's state - resulting in a disfunctional "noise" waveform (which has to be manually reset before its regular functionality is restored). Some songs use this with the intention to create a "metalic" drum sound and an example of these is . A creative case is where the "noise" decay process is then interrupted to result in a periodic "noise" waveform on voice 3. (Respective combined-noise waveforms are turned on for such short periods of time, that they cannot usually be observed in the above graphs.)


Leave your comments

0 / 400 Character restriction

Comments

  • No comments found