What's this?
webSID SID filter configuration
Copyright (C) 2011-2023 by Juergen Wothke (The source code can be found here.)
Those of you old enough may still remember the eighties "Commodore 64" home computer. At the time the C64 distinguished itself by the prowess of its audio generating SID (Sound Interface Device) chip. Over the years the various C64 models have used different revisions of MOS "SID" chips (e.g. 6581R2, 6581R3, 6581R4, 8580R5, etc). Each of which sounded somewhat differently due to the flaws inherent to their design, slightly updated circuitry and the varying raw material quality used on the respective chip revisions or production batches. Most affected was the chip's analog filter and the 6581 revisions notoriously suffered from various distortions that gave "each" chip its unique sound. Later 8580 batches behaved much more predictably and a line is usually drawn between the 6581 and later 8580 models.
Antti Lankila's (et al.) analysis nicely shows the bahavior of different chip specimens with regard to filter cutoff behavior and it illustrates how even different specimens of the same SID chip revision may react quite differently. Obviously there is not one "correct" configuration for a certain SID chip revision. (If the "perfect" SID configuration is crucial for the sound of a song, then a composer should better make an audio recording of his song on his exact hardware before that chip dies.)
The webSID emulator allows to play original/binary C64 music files directly in a web browser. It distinguishes between songs that where designed for the older 6581 chips and those that expect a newer 8580 revision, i.e. it adapts its filter emulation accordingly. (More information can be found on its Facebook page.)
This page allows to dynamically update the parameters of webSID's 6581 filter emulation (which doesn't affect those songs designed to be run on a 8580). The player widget provides a playlist of some example songs that where specifically designed to run on a 6581. But you can also try your own .sid-files by drag and dropping them onto this page.
The filter implementation uses a black-box appoach, i.e. it doesn't model the original electronic components and their respective effects on each other bottom up but simply uses a formula that creates about the same types of cutoff curves observed on real chips. The approach to handle "cutoff distortion" is strongly inspired by one of Antti Lankila's older designs, i.e. distortion increases in proportion to the current output voltage produced by the filter's cutoff setting combined with the filter circuit's output (There are most probably effects that this simplistic design is not able to correctly reproduce. But as a tradeoff this calulation may still run fast enough on less powerful devices - e.g. older smartphones - that may not be able to cope with more sophisticated/expensive calculations).
legend: 6581 filter cutoff
The red curve (#0) shows the basic cutoff curve without distortion and the other curves (i.e. #84, #170, #255) then show respective curves at increasing levels of distortion (there are actually 256 such curves and the graph only shows 4 equally spread out samples). One type of distortion that can be easily observed in Antti Lankila's (et al.) analysis are the kinks that occur at at regular intervals and which are also simulated here.
The controls in the left hand column (grey sliders) define the shape of the used cutoff curve. The ones in the right hand column (red sliders) control the used "voltage level based" distortion.