• Chip Chat
  • Chip Chat

Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View

Article Group:
Computer Musician

Chip Chat

The new SID chip for the Commodore


Chip Chat is an occasional series that will make an appearance whenever there's a new chip with relevance to micro music that looks interesting. This month we're looking at one of the most intriguing slices of silicon to appear for some time, the 6581 Sound Interface Device (SID) from MOS Technology.

It's a sorry fact of life that most people coming to grips with computers and programming will have been relentlessly conditioned into the view that square waves are part and parcel of all micro music. The reason for that lies with the insistence of computer manufacturers to plonk a wretched programmable sound generator (PSG) of the Texas or General Instruments ilk somewhere on the Motherboard, in the hope that that alone will be sufficient to satisfy most enthusiasts' appetites for zaps, bleeps and the odd (out of tune) note or two. Thankfully, a few more enlightened companies are now breaking out of the traditional PSG straitjacket, and the Commodore 64 currently offers one of the brightest hopes when it comes to flexible musical (meaning what people rather than micro manufacturers would describe as musical) capabilities on a cheap(ish) machine. This time, musical motivation comes from an entirely new PSG, the 6581 Sound Interface Device, or SID for short. We'll leave aside considering how the 64 actually organises its platonic relationship with SID for a later article, when we'll also have a look at Simon's BASIC — a structured programming language that also provides high level commands for control of sound and graphics — together with the much-vaunted music keyboard add-on. This month, it's the turn of the SID chip itself for examination under the E&MM Chip Chat spotlight.

Let's start this investigation by looking at the genesis of the chip. The designer of the SID, Bob Yannes, is a well-respected American synthesist whose contributions to the PAiA in-house magazine Polyphony always guaranteed a wry smile, whether for his inimitable laid-back style or the wayward PCB designs that occasionally graced the magazine's pages. He also worked as an engineer for MOS Technology (now no longer extant after being bought up by Commodore), and it was they that commissioned the design of the SID from him. I use the past tense to describe his activities because he's now moved on to concentrate on his own company, Peripheral Visions, which seems set to continue the work he started at MOS Technology.

It would appear that Commodore's original idea was to produce a sound chip that would serve the games side of micro applications, but Yannes twisted their limited specifications to something more like a complete three-oscillator synthesiser-on-a-chip. In terms of raw specs, the SID chip looks mightily impressive: a hybrid digital/analogue device with a programmable ADSR envelope generator for each of its three voices, a choice of four different waveforms (pulse, triangle, sawtooth and noise) with 16-bit resolution over a nine-octave range, hard sync, reset, and ring modulation options, an external signal processing facility, a 'universal' volume control, and programmable low, high, band pass, and notch filters — and all in a 28-pin DIL package! The big question is whether or not it'll succeed in delivering the goods that its quart-in-a-pint-pot configuration suggests.

Figure 1. 6581 SID block diagram.
(Click image for higher resolution version)


POKEing SID



A quick glance at the SID's block diagram (Figure 1) shows that it's far from being a straightforward device — especially when compared to the very much more restricted synthesis options of the bog-standard square wave PSG. In fact, whereas a PSG like the Texas 76489 (used in the BBC Micro) makes do with just 8 internal registers for controlling the three tone generators, noise source, and respective attenuators, the SID has 29 (see Table 1) — that's 7 per voice before even getting to the filter section! This clearly shows that implementing all the control functions needed to patch a three-oscillator synthesiser-on-a-chip into action is a pretty formidable business. However, because all the envelope generation is done on-chip, rather than by scaling from amplitude data in memory, the micro driving the SID is freed for other operations between bouts of feeding the hungry mouths of all those registers. Furthermore, because the chip is 100% digitally-controlled, there's a complete (and welcome) absence of those customary multiplexed DACs used for directing CVs to all and sundry in the average micro-controlled synthesiser.

Where the SID scores an immediate and resounding success is in the oscillator side of things. After the poor frequency resolution of square wave PSGs, the 16-bit resolution of the SID comes like a breath of fresh air. Each of the Freq. High and Freq. Low registers can be loaded with a value in the range of zero to 255. However, because the High and Low registers act as coarse and fine frequency controls, respectively, with 256 steps of the Low register being equal to one step of the High register, a resolution of 1/50 Hz is achieved over the entire 9-octave range — so no more stair-step approximations to glissandi and portamenti! The ways and means of waveform selection are also pretty ingenious; apart from simply setting the relevant bit in the control register for one of the four waveform options, the user can also add these waveforms together to create 15 different mixed waveform combinations. On top of that, the High and Low Pulse Width registers allow very accurate definition of the duty cycle of the pulse wave, which means that PWM can be produced without discernible steps.

Unfortunately, the amplitude control side of the chip looks less impressive, with only 4-bit resolution (ie. 16 possible values) for the Attack and Decay times (2 milliseconds to 8 seconds). Though this should be adequate for most purposes, it's not going to be like twiddling the four ADSR pots until you hit exactly the right settings. Curiously, there's no way of simply adjusting the level of one oscillator relative to another apart from fiddling with the envelope generator parameters. In fact, there is a further 4-bit volume register, but this works universally on the combined audio output of the chips, and the 16 amplitude steps make this no more musical than what goes on in the Texas or General Instruments PSGs.

Where SID comes back into favour is with the control register options. For instance, setting the Sync bit synchronises the fundamental frequencies for any two oscillators, thereby producing the hard sync effect that's so characteristic of the Prophet and others. A further control bit called Test, when reset, causes the selected waveform to go back to the starting line, and allows for complex phase or frequency modulation. In addition, another control bit effects the ring modulation of one oscillator by another.

The read-only registers that the SID provides (shown at the bottom of Table 1) are also rather interesting, because, by reading the values in these registers, the controlling micro is able to follow the rise and fall of the third oscillator waveform or envelope. So, if the chosen 3rd oscillator waveform was a low frequency triangle wave, the Osc/Random register would present a series of numbers representing the instantaneous amplitude of the cycling waveform. The micro could then take these values and plug them into the frequency registers of some other oscillator, with the result that you'd then have the equivalent of LFO modulation.

After being subjected to amplitude modulation, any or all of these oscillators, together with an external audio input, can then be routed to the filter section. Here, the High and Low Centre Frequency registers combine to give a 11-bit number that determines the linear range of cut-off frequencies, with the overall range determined by a couple of external capacitors (shown as Cap1a/b and Cap2a/b in the block diagram). A further 4-bit value selects the amount of resonance (again, too low in resolution for comfort). The bits in the Mode/Volume register determine the type of filter: either 12 dB/octave low pass, 6 dB/octave band pass, 12 dB/octave high pass, or any combination of these, ie, low pass plus high pass for a notch response. Curiously, no provision is made for controlling the filters from the envelope generators themselves, meaning that filter sweeps are only achieved by corresponding sweeps of values to the Centre Frequency registers. For something as standard as a low-pass filter sweep, that seems an awful waste of the processor's time. Mind you, the fact that the filter is digitally programmable opens up a lot of scope for timbral modulation.

There's one further sensible control point, namely the provision of inputs for reading a couple of potentiometers, ie. Pot. X and Pot. Y, and this facility can obviously be used for joystick control of this or that. Finally, there's the external signal input, over which lots of commentators seem to be waxing lyrical. I'm not sure about this. It'd be great if a pitch-to-voltage converter was incorporated, but routing through the filter seems a little too obvious, really.

So, in the final analysis (as they say), does SID just hiss, or does it do the tradition of the three-oscillator Minimoog proud? Well, the main spanner in the works that makes assessment a problem is that those 29 registers are a pain to program. So far, the Commodore 64 user has had the unenviable task of running the chip from BASIC with POKEs, which isn't fun when one's also obliged to set up screen displays with similarly tedious operations. To give you a taste of what's involved, here's a program for getting a Middle C from the 64: And that's not even using the filter!

Sample program for Commodore

10 POKE 54296,15: REM Loudest volume setting
20 POKE 54277,190: REM Sets Voice 1 attack and decay rates
30 POKE 54278,248: REM Sets Voice 1 sustain vol. and release rate
40 POKE 54273,17: REM Freq. High for Voice 1 Middle C
50 POKE 54272,37: REM Freq. Low for Voice 1 Middle C
60 POKE 54276,17: REM Choose triangle wave and initiate envelope
70 FOR DUR=1TO250: NEXT: REM Timing loop for duration
80 POKE 54276,0: REM Terminate envelope


The appearance of Simon's BASIC and the music keyboard should make assessment of the chip's potential a darn sight easier, but there are various lucky people who've managed to get hold of some of these chips for experimentation with other machines, and realistic reports on the SID's pros and cons are starting to filter (note that word!) through. Some hint that all wasn't well was indicated by the lack of any mention of the programmable filter in Commodore's advertising for the 64. Seeing that timbral modulation is what most synthesists are after, that omission seemed curious.

An innovative Cambridge firm called Hybrid Technology has been assessing the SID chip for possible use as an add-on for the BBC Micro, and their conclusions show up a few problems which may conceivably explain the embargo placed on advertising the programmable filter facility. According to Peter Wolfers, one of the directors of Hybrid Technology, the main areas of concern are as follows:

1 The filter section distorts when more than one oscillator is fed into it (DC offsets from the attenuator sections) or when CVs are applied at either the top or bottom end of the cut-off range (clipping resulting from feed-through of the CVs to the output stage).

2 The envelope generators chop off abruptly and produce DC thumps if envelopes are retriggered.

Once again, it would appear that the ship's in danger of sinking for the sake of a ha'p'orth of tar! However, Hybrid Technology do say that the digital side of the chip works more-or-less perfectly, so things are still reasonably hopeful — especially since the oscillators can be very effectively synced together or used for FM synthesis. Another problem still to be overcome is the recalcitrance of Commodore in the States to release the SID chip for consumption by other 6502-based micros, and that's despite the fact that the chip was specifically designed to be interfaced with MOS Technology's 6500 series of micro chips. Not surprisingly, Hybrid Technology have decided for the time being to concentrate on producing their own music synthesis hardware for the BBC Micro. We'll let you know more about that in due course!

So, all in all, a preliminary assessment of the SID's performance reveals an exciting bag of tricks that's of rather less than uniform quality. But, to be fair to everyone, I'm reserving final judgement until I've had a chance to audition the complete Commodore synthesiser package, ie. Commodore 64, keyboard add-on, and Simon's BASIC. In fact, a piece of cartridge-based software has been announced in the States that allows SID to talk with the inflections of man, woman, child, or whatever else takes your fancy. If that's not just idle hogwash for the silly season, one can assume that somebody somewhere really knows the SID inside-out and has had more assistance from Commodore than all the potential but starved SID fans in this country!

SID source: Falk Baker Associates. (Contact Details). One-off price = $17.50 + $1.50 post.

Table 1. The SID's control registers

Register number Register name Register type
Voice 1/2/3:
0/7/14 Freq. Low (8 bits) Write-only
1/8/15 Freq. High (8 bits) Write-only
2/9/16 Pulse width Low (8 bits) Write-only
3/10/17 Pulse width High (4 bits) Write-only
4/11/18 Control register (5 bits) Write-only
5/12/19 Attack/Decay (4 bits each) Write-only
6/13/20 Sustain/Release (ditto) Write-only

Filter:
21 Centre freq. Low (3 bits) Write-only
22 Centre freq. High (8 bits) Write-only
23 Resonance/Input (4 bits each) Write-only
24 Mode/Volume (ditto) Write-only

Misc:
25 Pot. X (8 bits) Read-only
26 Pot. Y (8 bits) Read-only
27 Osc/Random (8 bits) Read-only
28 Env. 3 (8 bits) Read-only

Notes: 'Control register' includes bits for setting waveform type (Pulse, Sawtooth, Triangle or Noise), initiating envelope generation (Gate), synchronising oscillators (Sync), resetting oscillators (Test), or for ring modulation (Ring Mod); 'Input' determines which (if any) oscillators are to be patched to the filter; and 'Mode' selects filter type.



Previous Article in this issue

Studio Scene

Next article in this issue

Sounding Out the Micro


Electronics & Music Maker - Copyright: Music Maker Publications (UK), Future Publishing.

 

Electronics & Music Maker - Sep 1983

>

Should be left alone:


You can send us a note about this article, or let us know of a problem - select the type from the menu above.

(Please include your email address if you want to be contacted regarding your note.)

Computer Musician

Topic:

Computing


Feature

Previous article in this issue:

> Studio Scene

Next article in this issue:

> Sounding Out the Micro


Help Support The Things You Love

mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.

If you value this resource, you can support this project - it really helps!

If you're enjoying the site, please consider supporting me to help build this archive...

...with a one time Donation, or a recurring Donation of just £2 a month. It really helps - thank you!
muzines_logo_02

Small Print

Terms of usePrivacy