This has probably done 100 times before by people far more skillful than me, but anyway here is my small contribution to the SID filter saga.
The C64 contains the famous SID sound chip. The SID chip has analog low-pass, high-pass and band-pass filters with adjustable cut-off frequencies. The SID chip has two versions: the 6581 ('old SID') and the 8580 ('new SID').
The SID has an 11-bit filter register. This feeds an 11-bit DAC that sets the filter cut-off. So the cut-off can be set to 2048 possible values.
A register value of 0 corresponds to the lowest possible cut-off frequency, and 2047 indicates the highest frequency. The idea was, apparently, that there should be a more or less linear relation between register values and the cut-off frequency. On the old SID this did not really work. Only the new SID does this properly.
To get an idea of how the filter behaves I wrote a small program that makes the SID output white noise, turn on the band pass filter, and then do a logarithmic sweep from 0 to 2047 on the filter cut-off register for 12 seconds.
Then I recorded the produced sound an arranged the clips in Audacity into spectrograms. See below.
Actually the implementation was: set the filter to 0 for 1 second, then do a logarithmic sweep from 1 to 2047 in 11 seconds. This has he side effect that there is also a 1 second period where the filter value was 1. You can hopefully see this in the bottom three clips.
The 'b1', 'b2', 'b5', 'b6' clips are recordings of real 6581 chips, the 'b4', 'b8', 'b10' clips are recordings of 8580 chips.
As you see the 8580 spectrograms all look identical, and the 6581 spectrograms are all different.
Also included are some artificial SID chips, ARMSID, FPGASID, SIDKick-pico and the VICE x64sc cemulator. These all have some weird non-standardness.
Michiel Boland
November 2024
UPDATE (December 2024)
The VICE 8580 filter has been fixed in version 3.9.