Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MOS Technology 6581
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Design == {{original research|section|date=March 2019}} [[file:MOS6581.svg|thumb|6581/6582/8580R5 Pin configuration]] The SID is a [[mixed-signal integrated circuit]], featuring both digital and analog circuitry. All control ports are digital, while the output ports are analog. The SID features three voices, with four types of waveforms able to be selected per voice: pulse wave (with [[pulse-width modulation|variable duty cycle]]), triangle wave, sawtooth wave, and pseudorandom noise (called [[white noise]] in documentation). Multiple waveform types may be selected simultaneously, which produces certain complex/combined waveforms. The oscillators of each voice are built on a 24-bit [[phase accumulator]]. A voice playing a triangle waveform may be ring-modulated with one of the other voices, where the triangle waveform's bits are inverted when the [[most-significant bit|MSB]] of the modulating voice's accumulator is set, producing a discontinuity and inversion of direction with the triangle's ramp. Voices may also be hard-synced to each other, where the synced voice's oscillator is reset whenever the MSB of the syncing voice's accumulator is increased. If both ring modulation and hard-sync are set to affect the same voice, the two effects are combined. The voice that ring modulates and/or syncs a given affected voice is determined by the following pattern: voice 1 affects voice 2, voice 2 affects voice 3, and voice 3 affects voice 1. Each voice may be routed into a common, digitally controlled analog {{nowrap|12 dB/octave}} multimode filter, which is constructed with aid of external capacitors to the chip. The filter has lowpass, bandpass and highpass outputs, which can be individually selected for final output amplification via the master volume register. Filter modes can also be combined. For example, using a combined state of lowpass and highpass results in a notch (or inverted bandpass) output.<ref name="Klose">{{cite web |url=http://ucapps.de/index.html?page=midibox_sid_manual_l.html |title=MIDIbox SID V2 - User Manual |last=Klose |first=Thorsten |work=MIDIbox Projects |date=2019-05-24 |url-status=live |archive-url=https://web.archive.org/web/20190704133551/http://ucapps.de/index.html?page=midibox_sid_manual_l.html |archive-date=2019-07-04 |access-date=2019-07-04 }}</ref> The programmer may vary the filter's cutoff frequency and resonance. An external audio-in port enables external audio to be passed through the filter. The ring modulation, filter, and programming techniques such as arpeggio (rapid cycling between frequencies to make chord-like sounds) together produce the characteristic feel and sound of SID music. Due to imperfect manufacturing technologies of the time and poor separation between the analog and digital parts of the chip, the 6581's output (before the amplifier stage) was always slightly biased from the zero level. Each time the volume register was altered, an audible click was produced. By quickly adjusting the amplifier's gain through the main 4-bit volume register, this bias could be modulated as [[Pulse-code modulation|PCM]], resulting in a "virtual" fourth channel allowing 4-bit digital sample playback. The glitch was known and used from an early point on, first by [[Electronic Speech Systems]] to produce sampled speech in games such as ''[[Impossible Mission]]'' (1984, [[Epyx]]) and ''[[Ghostbusters video games|Ghostbusters]]'' (1984, [[Activision]]). The first instance of samples being used in actual musical compositions was by [[Martin Galway]] in ''[[Arkanoid]]'' (1987, Imagine), although he had copied the idea from an earlier drum synthesizer package called Digidrums. The length of sampled sound playback was limited first by memory and later technique. Kung Fu Fighting (1986), a popular early sample, has a playback length measured in seconds. c64mp3 (2010) and Cubase64 (2010) demonstrate playback lengths measured in minutes. Also, it was hugely [[CPU]] intensive - one had to output the samples very fast (in comparison to the speed of the [[MOS Technology 6510|6510]] CPU). The better manufacturing technology in the 8580 used in the later revisions of [[Commodore 64C]] and the Commodore 128 DCR caused the bias to almost entirely disappear, causing the digitized sound samples to become very quiet. Fortunately, the volume level could be mostly restored with either a hardware modification (biasing the audio-in pin), or more commonly a software trick involving using the Pulse waveform to intentionally recreate the required bias. The software trick generally renders one voice temporarily unusable, although clever musical compositions can make this problem less noticeable. An excellent example of this quality improvement noticeably reducing a sampled channel can be found in the introduction to Electronic Arts' game Skate or Die (1987). The guitar riff played is all but missing when played on the Commodore 64c or the Commodore 128. At the X'2008 demo party, a completely new method of playing digitized samples was unveiled. The method allows for an unprecedented four (software-mixed) channels of 8-bit samples with optional filtering on top of all samples, as well as two ordinary SID sound channels.<ref name="C64music">{{cite web |url=http://c64music.blogspot.com/2008/11/new-revolutionary-c64-music-routine.html |title=New revolutionary C64 music routine unveiled |publisher=1xn.org |date=2008-11-04 |url-status=live |archive-url=https://web.archive.org/web/20120204163217/http://c64music.blogspot.com/2008/11/new-revolutionary-c64-music-routine.html |archive-date=2012-02-04 }}</ref><ref name="CSDb">{{cite web |url=https://csdb.dk/release/?id=72678 |title=Vicious Sid (2008) |author=Mixer |author2=SounDemoN |author3=The Human Code Machine |publisher=Commodore 64 Scene Database |date=2008-10-29 |url-status=live |archive-url=https://web.archive.org/web/20190704134637/https://csdb.dk/release/?id=72678 |archive-date=2019-07-04 }}</ref> The method works by resetting the oscillator using the waveform generator test bit, quickly ramping up the new waveform with the Triangle waveform selected, and then disabling all waveforms, resulting in the DAC continuing to output the last value---which is the desired sample. This continues for as long as two scanlines, which is ample time for glitch-free, arbitrary sample output. It is however more CPU-intensive than the 4-bit volume register DAC trick described above. Because the filtering in a SID chip is applied after the waveform generators, samples produced this way can be filtered normally. The original manual for the SID mentions that if several waveforms are enabled at the same time, the result will be a binary AND between them. What happens in reality is that the input to the waveform DAC pins receives several waveforms at once. For instance, the Triangle waveform is made with a separate XOR circuit and a shift-to-left circuit. The top bit drives whether the XOR circuit inverts the accumulator value seen by the DAC. Thus, enabling triangle and sawtooth simultaneously causes adjacent accumulator bits in the DAC input to mix. (The XOR circuit does not come to play because it is always disabled whenever the sawtooth waveform is selected.) The pulse waveform is built by joining all the DAC bits together via a long strip of polysilicon, connected to the pulse control logic that digitally compares current accumulator value to the pulse width value. Thus, selecting the pulse waveform together with any other waveform causes every bit on the DAC to partially mix, and the loudness of the waveform is affected by the state of the pulse. The noise generator is implemented as a 23-bit-length [[linear-feedback shift register#Fibonacci LFSRs|Fibonacci LFSR]] (Feedback polynomial: x^22+x^17+1).<ref name="oxyron">{{cite web |url=http://www.oxyron.de/html/registers_sid.html |title=SID 6581/8580 (Sound Interface Device) reference |author=Graham |work=8 bit IC register reference |publisher=Oxyron |date=2014 |url-status=live |archive-url=https://web.archive.org/web/20190704135328/http://www.oxyron.de/html/registers_sid.html |archive-date=2019-07-04 }}</ref><ref name="codebase64">{{cite web |url=https://codebase64.org/doku.php?id=base:noise_waveform#the_noise-waveform |title=Examination of SID noise waveform |last=Alstrup |first=Asger |work=SID - Sound & Music |publisher=Codebase64 |date=2015-04-17 |url-status=live |archive-url=https://web.archive.org/web/20190704135621/https://codebase64.org/doku.php?id=base:noise_waveform |archive-date=2019-07-04 }}</ref> When using noise waveform simultaneously with any other waveform, the pull-down via waveform selector tends to quickly reduce the XOR shift register to 0 for all bits that are connected to the output DAC. As the zeroes shift in the register when the noise is clocked, and no 1-bits are produced to replace them, a situation can arise where the XOR shift register becomes fully zeroed. Luckily, the situation can be remedied by using the waveform control test bit, which in that condition injects one 1-bit into the XOR shift register. Some musicians are also known to use noise's combined waveforms and test bit to construct unusual sounds. The 6581 and 8580 differ from each other in several ways. The original 6581 was manufactured using the older [[NMOS logic|NMOS]] process, which used 12V [[Direct current|DC]] to operate. The 6581 is very sensitive to static discharge and if they weren't handled properly the filters would stop working, explaining the large number of dead 6581s in the market. The 8580 was made using the HMOS-II process, which requires less power (9V DC), and therefore makes the [[Integrated circuit|IC]] run cooler. The 8580 is thus far more durable than the 6581. Also, due to more stable waveform generators, the bit-mixing effects are less noticeable and thus the combined waveforms come close to matching the original SID specification (which stated that they will be combined as a binary AND). The filter is also very different between the two models. The 6581 cutoff range resembles a [[sigmoid function]] on a log scale and varies wildly between chips, while the cutoff range on the 8580 is a straight line on a linear scale and is both more consistent between chips and close to the designers' actual specifications. The 8580 filter can achieve higher resonances as well. Additionally, a better separation between the analog and the digital circuits made the 8580's output less noisy and distorted. The noise in 6xxx-series systems can be reduced by disconnecting the audio-in pin. The consumer version of the 8580 was rebadged the 6582, even though the die on the chip is identical to a stock 8580 chip, including the '8580R5' mark. Dr. Evil Laboratories used it in their SID Symphony expansion cartridge (sold to [[Creative Micro Designs]] in 1991), and it was used in a few other places as well, including one PC sound-card. Despite its documented shortcomings, many SID musicians prefer the flawed 6581 chip over the corrected 8580 chip, some even seeing the flaws as actual 'features' that made the SID chip distinct from other sound chips at the time. The main reason for this is that the filter produces strong distortion that is sometimes used to produce simulation of instruments such as a distorted electric guitar. Also, the highpass component of the filter was mixed in 3 dB attenuated compared to the other outputs, making the sound more bassy. In addition to nonlinearities in filter, the D/A circuitry used in the waveform generators produces yet more additional distortion that made its sound richer in character.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)