Showing posts with label SID. Show all posts
Showing posts with label SID. Show all posts

Saturday, 12 November 2016

INSIDIOUS 6581 Part 4: What makes the SID sound like the SID is not the SID

Part 3, "When a filter doesn't behave" is available here.

Not Unique

Aside from the filter, the SID chip does not do anything particularly special. It didn't demonstrate any newly-invented synthesis, it didn't have better capabilities than other actual synthesizers of the time, but what it did do was produce reasonably complex sounds for a very low price.

If you just take a standard SID chip connected to a keyboard and play the oscillators like a usual synthesizer, it really doesn't sound like anything unique. Listen to the SID tune below that I started a while back. Until the drums come in, you really can't tell that it was produced using SID chips. I deliberately had to put in C64-type drums and fast arpeggios to give it that SID sound.

So what is it that makes "that SID sound"? Well I'll tell you...it's the television. Ok, there's more to it than that, but for the most part the nature of the television standards coupled with the detailed control allowed by direct programming of the CPU is responsible for the general sound that is associated with the SID chip.

I shall explain.

Pulse Width Madness

Firstly, I want to get PWM (pulse width modulation) out of the way. The PWM 'neeeeoooowwwww' sound is something that is particularly attributable to the SID for SID fans. Although it's available on most early synthesizers, it has never been widely used in the raw, brash way in which it is used on the SID. The reason it is so used in SID tunes is because of processing cost. If you only write SID music using the standard waveforms, the sound you get is very static and rudimentary, much like music on the earliest games or on almost every other computer sound chip. For example, take a listen to the music from the 1983 game Slalom, which uses only the raw sawtooth wave on every channel. It is tonally simplistic and a far cry from the music produced in later years after audio specialist musician/programmers came along and started to use PWM and other more advanced techniques.

PWM gives a tonally complex sound and, as mentioned before, is very cheap in terms of processor usage and audio channel usage. All other complex tonal features on the SID (such as ring mod or chorus) require the usage of 2 audio channels, but PWM can be implemented using just one and takes almost no processor time. It's the natural choice and so is found in most of the classic SID music.

So PWM is a reasonably big deal in contributing to the sound of the C64. Most tracks use it because it's cheap and dynamic, and although PWM is not unique and can be found on most synthesizers, its use in C64 music is rather in-your-face.

Graphics constrain sound

Now about that television thing...first it's necessary to know something about how graphics are processed, especially in the context of games.

I will go into the technical details about the hows and whys in another post, but fundamentally what you need to know is that a TV refreshes its screen at a regular interval and every time the refresh happens, the parameters for audio are updated.

This means that the audio can not be updated more frequently than 50 times per second (or 60 if using an American TV). Pitch can not be changed, waveforms can not be changed, the filter can not be changed. These things can only occur when the TV screen refreshes. For the more worldly among you, this is the reason that music plays faster on an American C64 than on a European one; American TVs update 60 times per second rather than 50, so the audio updates occur 20% more often. For the rest of this post I will refer to only 50Hz updates.

It should be noted that this is the case for every other gaming soundchip at the time when the TV was king. Atari, NES, Gameboy, Amiga they all work in the same way. Even the handhelds have a hardware design that is based on the idea of regular screen updates at the rate of a television.

The SID chip has got three channels; it can play three sounds simultaneously. It also has a limited number of waveforms. Once you've reached the limit of this configuration, what is there to do? Well let's say you wanted to play a three note chord. You can either use all three channels or you can use one channel and run through each note in the chord as fast as you can. "How fast would that be?", you ask. "Why, 50 times per second of course", I reply. The video to the right demonstrates the effect. The video regards the same effect in NES music, but begins with a C64 tune.

Faking it

How about if you want to make the sound of a snare drum? Fundamentally, a snare sound consists of the impact tone of the drumstick against the skin resonating inside the drum itself plus the noisy sounds of the snare wires rattling underneath the drum. This can be emulated using two channels, one for the impact tone and one for the noise of the snares.

In fact, this is exactly what Tim Follin did for the L.E.D. Storm music. Have a listen on the right.

The problem with using two channels is, obviously, that it uses two channels, and taking up 66% of your channels for a snare drum while still keeping a full sound requires skills of the likes of Tim Follin. The compromise is to squeeze both sounds into one channel instead. How about switching between the two sounds very quickly to make it sound like two channels? Well, that's perfectly reasonable and if you could do it fast enough, you'd be hard-pressed to hear the difference. Unfortunately, C64 games couldn't go that fast without wasting too much CPU, but they could do it 50 times per second. At this frequency, it's very noticeable and that's what gives C64 drums their trill-like sound.


Take a look at this lovingly-prepared image of the snare sound from the title music of the game Delta. You can see how the sound switches between triangle and noise waves every 50th of a second. Click on the image to see a bigger version. Click on the play button beneath to hear how it sounds.

It's important to note that this technique of switching between sounds so quickly is only possible because the processor has direct control over the SID chip and it can be programmed to switch so frequently. Standard synthesizers do not allow anything like it, mostly due to the fact that they need a user-friendly interface and in general the friendlier the interface, the less flexible something is.

Can you imagine Nick Rhodes from Duran Duran programming sounds in the 80s for his synthesizers in assembly language? What a thrilling band practice that would have made:
"Nick, can you make that sound a bit less harsh? It's drowning out the guitar."
"Yep, hold on, just let me connect the computer and set up the cross-assembler. It'll take me about half an hour. Talk amongst yourselves in the meantime."
That's why he used a Roland Jupiter-8 and not a Commodore 64.

Smashing sounds together


The technique of switching sounds at this speed happens across all sorts of instruments, not just snare drum elements and it gives a very characteristic sound. One very common technique is to play a short percussion sound at the beginning and then switch to another sound like a bass or lead. On the left you can see an image of the snare/bass sound from Chris Huelsbeck's R-Type music. Click on it to see it in a larger view or click on the player button beneath it to hear it. It has snare elements right at the beginning and then continues with a bass sound for the rest of the instrument. There is an equivalent instrument that contains a kick drum in place of the snare and also one for the same bass sound without the snare or kick part.

This sort of thing can be found all over SID music to make it sound like there are more than 3 channels being played at once. The minimum switching speed of 1/50th of a second gives it a sort of scratchy stuttering sound that massively contributes to what people think of as being sound of the SID.

For comparison of how different things could sound without the 50Hz Vertical Blank timing restriction, here is the snare sound from 'I swore a vow on my dying breath' by Sascha Zeidler (a.k.a. Linus). In this track from 2006, there is no Vertical Blank restriction. The audio updates are done with the CIA timer at 200 times per second. There is a massive difference in the sound compared to the Delta snare sound above. It doesn't really sound like a SID drum sound at all.

Not Just Noise

This contribution to defining the sound style of the SID does not just apply to percussion sounds. The marvellous Lightforce by Rob Hubbard is rammed full of these 50Hz sound switches.

To the right is the tune itself. To the left is the sound used in the main arpeggio. The defining bloopiness of the sound is due to the waveform change and pitch change that you can see clearly in the image of the waveform.

Listen to the rest of the music and see if you can spot other areas where the above techniques are applied. They're all in there at various points.

And hopefully, now that you know what to look out for, you'll be able to hear the same thing across the gamut of SID music. Happy listening. Comments section for questions.

Next: "Tables. How to emulate SID switching without making the users insane."

Monday, 22 June 2015

INSIDIOUS 6581 Part 3: When a filter doesn't behave

Part 2, "How on earth does someone copy a 30-year old sound chip?" can be found here.

It is often that a mistake leads to greatness. There have been many times when I've been writing music when I've hit the wrong note or had the wrong sound selected and it's led me down a different, better path. And so it is that the filter of the 6581 is a great thing because it is broken.

'Mention that filter one more time
and I'll cut ya!', said Ben Daglish
Unfortunately, if you were a C64 musician back in the day, the choice to use the filter was fraught with peril. After spending hours making your sounds just right, you could then go and play it on a different Commodore 64 only to be presented with a completely different sound, maybe even resulting in an entire channel being muted.

The type of transistors used to make the 6581 SID meant that due to inaccuracies of the manufacturing process each one had slightly different amount of resistance. The effect of this is that the cutoff frequency of the filter is different for every chip. And so, as explained above, you could have a perfect filtered tone on one machine, a muffled mess on another and no detectable filtering at all on another. I wonder how many people loaded a game with heavily-filtered music by David Dunn and thought that the music was awful because of their SID filter.

In the words of Bob Yannes, designer of the SID chip, "the resistance of the FETs varied considerably with processing, so different lots of SID chips had different cutoff frequency characteristics. I knew it wouldn't work very well, but it was better than nothing and I didn't have time to make it better".

When used for recorded music production, the filter cutoff problem is mostly irrelevant. You just write the music how you want it for your particular chip and render the master file. The cutoff problem is not what makes the 6581 SID great. What makes it stand out above any old filter is the fact that another bug in the hardware causes it to distort. And it's not a nasty harsh clipping distortion, but a really nice warm one that is very musically pleasant.

What seems to happen is that the filter has a saturation point where the waveform gets squashed at its extremes. If you can make the waveform level push past this threshold, it then distorts exponentially. I can't easily recreate this exactly in Reaktor, so I just tried to model the above behaviour. It doesn't sound exactly like my real SIDs, but it sounds similar enough to sound good.

If you're wondering how I know this, it's because of Antti Lankila's excellent work on opening the secrets of the SID filter.

It's worth noting that the later 8580 SID chips do not benefit from this error as their filters are much more stable and sadly do not distort to any great extent. However, they do have a much better resonant peak than on the 6581. The maximum 6581 resonance is unfortunately pretty weak.

Here's how it works:


Starting from the left in the wiring above, we have A and B. These are the rotary controllers for root cutoff  frequency and resonance that you can see in the corresponding panel to the right, also labelled A and B. To the right of those, we have C, the Modulation module. This corresponds to the complete C panel on the right. It combines the results of all of the modulation controls and outputs a value for the cutoff frequency, which is then added to the value of A. In Reaktor, you can double-click on this to see inside. Moving on, we have D, the filter module. The signal is routed through here into a Reaktor filter module and filtered according to the controls and filter type selection. Again, this can be double-clicked in Reaktor to see the routing.

If the output of the Filter module was sent to the main output, it would result in a very clean, very boring standard filter, much like that in the SID 8580.

Section E is where the action really is. First, the signal passes through a parabolic saturator. This squashes the waveform as it approaches the threshold value (1.75 in this case) and gives it a bit of a growl. From there it gets split up and passed into a Clipper, which clips off the top edges of the waveform beyond values of 1.25. I then take the clipped signal and subtract it from the non-clipped signal to leave me a waveform that consists of just the very top and bottom of the wave. This represents the signal that has been pushed beyond the threshold point in the real SID. As I don't want this to get overblown, I route it through a high-pass filter; we really only want to add the fizz back in. Then I multiply this waveform by 4 to enhance those high frequencies. The SID is apparently exponential here, but a multiply seemed enough. Then I add that back on top of the original signal

After all that, I route it back into another parabolic saturator, labelled F, using a higher threshold value than before, just to calm it down a bit and dampen any new clipping that could result from the newly multiplied signal.

The result of all this is that for single channels, no distortion occurs, but when multiple channels are routed through it the input gets loud enough to gain a soft saturated distortion. This sounds especially good when the channels are set to modulate against each other, for example by detuning one channel.

Now that's all very well and good, but for all that work it's simply not right. It's a filter. It saturates and distorts with thresholds similar to the SID. But it's not the SID. In fact, when you really look into to, it's very far away from how the real thing sounds. So while writing this entry, I went back to the HardSID and started looking more closely at the actual SID output with a software oscilloscope. The results of that investigation will appear in a later article.

Next: "What makes the SID sound like a SID is not the SID"

Sunday, 14 June 2015

INSIDIOUS 6581 Part 2: How on earth does someone copy a 30-year old sound chip?

View part 1 of this series here.

Let's copy the SID chip. How hard can it be?

To get a reasonable approximation of the SID chip is not that difficult. To get a useful interface to control it, though, certainly is. There's a fine balance between a capable interface and ease of use. It's easy to make a complex, convoluted interface that exposes every possible function, but difficult to make an intuitive one that still allows all the control that you need. What I wanted was an emulation accurate enough to be able to recreate some actual Commodore 64 game music, but one with an interface that didn't require you to be a programmer to understand it. The interface would evolve as the sound capabilities in the ensemble evolved.
A single channel in INSIDIOUS 6581
Compact, flexible, and hopefully easy to understand
for people who aren't me
By now, the SID has been pretty well researched and there is quite a lot of information about it. I searched the internet for detailed specifications on the chip so that I could get those details right in my emulation.

The fundamentals

The SID chip is actually quite simple. It doesn't really do very much (although compared to most other sound chips, it's vastly more capable). A few waveforms, some combination modes and a filter. And that's about it.
Triangle, Sawtooth, Square and Noise waveforms
There are 4 fundamental waveforms: Triangle, Sawtooth, Square/Pulse and Noise. The reasons that these waveforms are present and not others like Sine is because they are easy to generate using counters and timers, which themselves are easy to create in hardware. A sawtooth wave, for example, can be created by regularly increasing a value by the same amount over time and then resetting it to zero when it reaches its limit. A square wave can be created by regularly flipping a value between zero and one. It's very simple stuff.

The SID can also combine these waveforms together to give some extra sounds. How it does this is even now still under debate as what the original hardware specification states does not match the sound that is produced.

A SID musician
Ring mod/Hard sync
are hard to demonstrate
in one image, so here's
an alpaca instead
The two most advanced features are ring modulation and hard sync. Both require two channels to operate:

Ring modulation is an effect where the amplitude of one waveform is modified very quickly by the shape of another. Basically, imagine if you could play waveform A with a volume knob that could go below zero and turn the sound upside down. You then turn its volume knob incredibly fast in a pattern that matches the shape of waveform B. Ring modulation is responsible for bell-type sounds and most of the weird screechy noises that litter Rob Hubbard tracks. It only works on the SID when waveform A is set to be a triangle waveform.

Hard sync is where one waveform plays at its own frequency, but gets reset back to its start every time the second waveform loops. It is responsible for the rising modulating sound in Ben Daglish's Wilderness music from The Last Ninja and the ludicrous intro noise in Martin Galway's Roland's Rat Race music.

Lastly, the SID has a filter that can be configured as Low-pass, Band-pass, High-pass or combinations of all of them. There is only one filter, but each sound channel can be selectively routed through it or not. It is the filter that can make the SID really stand out. A bug in the implementation means that it distorts quite easily giving a nice warm, growly tone. It was not very widely used in games because instability in the design and manufacturing process meant that the intensity of the filter could be massively different between two chips. Martin Galway, when asked about his best and worst memories of the C64 remarked, "Worst memory is that damn filter! I wish they were able to fix it."

The hardware has some other features, like the ability to route external audio through its filter, two analogue-to-digital converters (intended for reading paddle controllers) and there is are also a bug that allows sample playback, but they are not relevant for creating an emulation of its synthesis capabilities.


Starting the recreation

Reaktor's Tri Sync oscillator moduleRight at the very beginning, it became clear that choosing to use Reaktor was a good idea. Reaktor, being a modular synth, has a whole load of different diverse modules to wire together, a group of which are various oscillator types. Clearly seeing into the future and noticing that I wanted to copy the SID chip, Native Instrument provide oscillator modules for Sawtooth, Triangle and Pulse (Square) that have a facility for both ring modulation and hard sync. What a stroke of luck. I was expecting to have to construct the oscillators from scratch using Reaktor's 'Core Cell' facility, whereby you can perform very low-level operations on raw audio data, but it was already done for me.

The top-level of a single SID channel in INSIDIOUS 6581
Wiring up the three oscillators and adding an LFO to vary the pulse width on the pulse oscillator was very easy and instantly produced that whiny C64 lead PWM sound. It annoyingly varied the DC offset with the pulse width value, but that was easily solved by subtracting the pulse width value from the whole waveform to balance it back out again.

Who noise how to solve it?

Adding the noise channel was rather more of a problem. The noise oscillator in Reaktor is described in the manual as producing "a random signal containing equal amounts of all possible frequency components". That means that it is what is known as 'white noise'. To get theoretically perfect white noise you take an infinite number of sine waves at every possible frequency and add them all together at the same volume level. The problem is that the SID noise waveform is by no means white noise. It can be pitched up and down as can be clearly heard in the title music of Uridium by Steve Turner. Because white noise represents infinite frequencies, pitching it up or down makes no sense, so how to re-create the SID noise if not with the Reaktor noise oscillator?

White noise, probably
The noise waveform of the SID is generated by a pseudo-random number generator. It streams out random numbers at whatever frequency it is asked to. When the frequency is lower, the numbers change more slowly and when the frequency is higher, the numbers change faster. There are actually other noise and random generators in Reaktor, but they all have the same problem. I toyed with the idea of creating my own noise module to copy how the SID generates random numbers, but that would have been unnecessary. Whatever would have come out of the output would actually end up being no different than a recorded sample of white noise, which is a fixed set of random numbers. By pitching such a sample up and down, the output numbers change faster or slower, exactly like the SID. So that's what I did. I generated 3.5 seconds of white noise (long enough to not notice any repeating loop) and inserted it into a Reaktor sample player for use as the white noise channel. I then set the sample player to playback at 'poor' quality (so as not to have any smoothing) and tuned the root playback frequency so that the tone matched the other oscillators.

The combined waveforms


The Triangle + Square
waveform, which sounds as
scratchy as it looks
When you instruct a SID to use multiple waveforms at the same time on one channel, the hardware specification suggests that it performs a binary AND operation on the waves. It doesn't. It does something very weird. I tried to find out exactly what happens so that I could make a Core Cell to copy it exactly, but it's very difficult to get the right information. I didn't actually need to go that far because the output of the combined waveforms is deterministic; it always comes out the same for the same combination of waveforms.

The mostly useless
Triangle + Saw waveform
Whether I generated the waveforms in real-time or just played back a tiny sample from a real SID chip, the result would be exactly the same. It felt like cheating, but using samples is a whole lot easier, so that's what I did. Unfortunately, this is the worst-sounding part of the emulation. When the samples are pitched up, they alias quite badly. I tried to resolve this by having a separate sample for each octave, but the Sample player in Reaktor wouldn't work properly once I'd set it up. I do intend to resolve it somehow, but for now there is modulating aliasing on the combined waveforms.

I wanted to support every possible feature, so I needed to support hard sync on the combined waveforms. As they are samples and don't have a built-in Sync features like the fundamental oscillators, I had to hack it in. The sample player supports resetting the playing sample back to the start when it receives a positive signal at one of its inputs. I set up a mechanism to generate events with a value of one to restart the sample waveform every time the input sync waveform looped. It works, but Reaktor is not entirely happy about it and clicks and pops a bit. It's the best I could do and seeing as all but one of the combined waves are barely audible anyway, it's of very limited usage so its poor quality is not a deal-breaker for me. I don't think any C64 game music uses hard sync on a combined waveform.

The end?

Believe it or not, that is the complete implementation of all of the (documented) sound generation features of the SID chip. I could have stopped there, but all I would have been left with would have been a crappy-sounding monophonic synth. It needed the filter and some extra control features to make it sound how it should.

Next: "When a filter doesn't behave"

Friday, 12 June 2015

INSIDIOUS 6581 Part 1: Why on earth would anybody want to copy a 30-year old soundchip?

Answer: Because it's an extraordinary piece of unique-sounding hardware and I can only access my HardSID card from Windows XP.

Allow me to explain...

The SID

MOS Technologies 6581
A MOS 8580 and 6581R4
The MOS Technology 6581 Sound Interface Device is an amazing chip, designed in about five months by Bob Yannes (who went on to found synthesizer company Ensoniq) for usage in the Commodore 64 home computer in 1982. At the time, Charles Winterble, a colleague of Yannes said of the chip, "This thing is already 10 times better than anything out there and 20 times better than it needs to be". It was far more advanced than anything available at the time and indeed for many years thereafter.

Philips EL3302
A smartphone from the 70s
It was really the SID chip that started me on my career of making music for games. Zzap 64!, the biggest Commodore 64 magazine in the UK in the mid-to-late eighties spent a fair amount of time talking about the music in the games they reviewed, sometimes interviewing musicians and at one point going so far as to have a reader's chart of the best-voted game music. I even sometimes recorded various pieces of music onto tape by holding a cassette recorder near to the television speaker so that I could listen to it without having to spend 5 minutes or more loading the game from tape (and also to use it as annoying proof at school that my Commodore 64 was better than whatever computer the non-C64 owners had). It's fair to say that I revered the composers of the time.

The thing about the game music on the C64 was that it wasn't just a collection of beeps like on every other computer. It really was 'proper' music - Rob Hubbard's music for Thing On A Spring could have easily been the theme tune to a kid's TV show in 1985. The C64 music pioneers like Rob Hubbard and Martin Galway were not just extraordinary musicians, but excellent programmers as well and did a lot of work in squeezing new and interesting sounds from the chip. When at its best the music was (and remains) inventive, melodic, and tonally complex.

Moving onwards and backwards

When the Amiga took the place of the Commodore 64 I must admit to feeling a certain amount of disappointment in its lack of audio features. Initially, everything sounded amazing because everything was made from sampled sounds, but as I became a composer myself, it was clear that some things that were effortless on the SID chip were incredibly difficult on the Amiga with its pure sample playback and no filters or other support. If I'd known how to program properly at the time, it would have been easy to create Pulse-width modulation (PWM), which is the most characteristic sound of the SID, but programming didn't click with me for another few years and so, as with most Amiga composers, I used Soundtracker and its evolving variants Noisetracker, Startrekker and Protracker.

My very first professional game music work was in 1990 and was to convert the music for Last Ninja 2 from the C64 to the Amiga. I was only given 40KB of RAM for each tune. My first thought, being a big fan of the original, was just to copy the music as closely as possible and so I looked into using Future Composer, an Amiga music package that had a memory efficient music data format and could  sound SID-like with its PWM feature. Due to issues with getting the playroutine working in the game, it was impossible, so I went back to using Noisetracker (always in pink mode for those familiar with it).

In Noisetracker, each music pattern took up 1KB and a tune might typically use 10 to 15 patterns. That potentially left only 25KB available for sound samples. To put that into perspective, using 8-bit mono sound at the very low rate of 8Khz gives only 3.2 seconds worth of samples. I'd been making music on the Amiga non-stop for over a year and had messed around and experimented with all sorts of software that I came across. I'd previously discovered that I could make interesting noises in Audio Master II (a sample editor) by creating a very small sound of maybe only 64 samples, playing it as a loop and drawing over the waveform with the mouse while it was playing. That led on to me realising that I could draw a tiny raw waveform and use it as an instrument in Noisetracker.

As it turned out, a few other people had the same idea at around the same time and these single-cycle waveforms became the basis for what became known as 'chip tunes' on the Amiga (and indeed it's likely the reason that the whole reason that the retro music genre nowadays is called chip music). In my case I never originally thought about using them on their own, they were just a means to an end.

I realised that copying the C64 music data would still leave one sound channel free on the Amiga. This got me thinking of a way that I could keep memory usage down and get some sort of SID-style modulation. I could draw a single-cycle waveform in Audio Master and play that sound in two channels. By slightly increasing the pitch of one channel during playback I could get a chorus effect. The result was a modulating sound in a tiny amount of RAM at the expense of a sound channel. You can hear how it sounds when applied to three channels on a video on youtube.

All that messing about just to attempt something that the SID could do easily in a few bytes.
Even after the Amiga games market had had its day and we moved into the era of CD-based games with CD-quality audio, I still knew that there was something unique about the sound of the SID. It had a tone and grittiness to it that nothing I'd come across could come close to.

It must have been around 1996 that my fellow Psygnosis musician cohort Tim Wright had the idea to make a standalone MIDI synth using a SID chip. He looked around for parts and even ordered a few, but never got around to finally making it. A few years later, in 1999, it became clear that other people felt the same way about the chip as we did. Elektron's SidStation synth and Téli Sándor's HardSID ISA card for the PC were both released. I've never actually used one, but the SidStation always looked to me like a bit of a pain to use and was initially a very limited run of only 100 machines. The HardSID could play actual C64 tunes, had PC software with it and could be bought without sound chips, meaning that sales were not restricted to how many chips the manufacturer could source.

I didn't get one until five years after its initial release when I saw its next version, the HardSID Quattro (4 SID chips on one PCI card!) for sale at the Back In Time Live event in London in 2004. I snapped it up and then got my Mum to scour the car boot sales for C64s so that I could take the SID chips out of them. Various versions of the SID chip sound different due to flaws in the manufacturing process, but as luck would have it, I ended up with what is basically the complete set of major revisions of the SID chip: A 6581R2, 6581R3, 6581R4 and an 8580R5 (the 6581R1 version was just a prototype).

Over the years, I didn't actually use it very much for music production. I got a few sounds in a few tracks here and there, but it spent most of its time being used to playback C64 tunes from the High Voltage SID Collection. The software SID emulations like Sidplay were no match for the real thing; the difference in the sound quality was quite extreme at times, mostly because of the unique distorting filter of the real hardware. I must admit to being quite pleased with myself that I could always listen to the genuine article.

Recently, however, having the real hardware has become less important. Thanks to Antti Lankila's extraordinary work in analysing the SID's filter, Sidplay/w 2.6 with Antti's filter patch is basically indistinguishable from the real thing. I've done listening tests between my SID chips and this version of Sidplay with different filter settings, and I couldn't tell the difference. It completely destroys any reason to have the real hardware just to play C64 tunes, but it was definitely worth having for use in my own compositions. Unfortunately, this became a big issue.
My aging HardSID Quattro containing each major revision of the SID

Choosing between old and new

Over the last few years I have become a very heavy user of Native Instruments' Reaktor to the point where every track I create has Reaktor in it somewhere. About a year ago, Native Instruments changed their installer program so that it would only install on Windows 7 or later, so as you can imagine I wasn't happy when I couldn't update the software on my Windows XP music PC. Just to have a small rant at NI here, the latest versions of Reaktor and the other NI software run perfectly fine on Windows XP, it's just that their installer program quits if it finds itself running on anything less than Windows 7. This left me in a bit of a dilemma. The HardSID Quattro is from 2002 and drivers were only ever released for Windows XP; it doesn't work with Windows Vista or later. So do I upgrade my music PC to the upcoming Windows 8 and lose access to my HardSID card and possibly some other music software, or do I forgo upgrading Reaktor and my other Native Instruments software to the latest versions?

Progress won out and I bought Windows 8. The decision was swayed thanks largely to Antti Lankila's updates to Sidplay removing the requirement for real hardware to hear SID files correctly, but also because I knew I could keep XP on another partition and go back to it as necessary for real SID usage. Nevertheless, going back to XP just to play with the SIDs became more of a pain as time wore on and I wanted a VST of it to use in music. It was either that or spending a lot of money on Téli Sándor's hard-to-come-by last creation, the USB-based HardSID 4U unit.

The main problem with the set of available VSTs that claim to emulate the SID chip is that they are mostly, to be frank, utter crap. Most advertise themselves as being SID-like or are up-front that they are not emulations, but an attempt to create some self-defined facsimile of '8-bit' sound. I wanted to recreate the raw SID chip, not someone else's idea of how the SID should sound or any form of 'enhanced' or 'better' SID. There are only two products that seem acceptable to me, but both have their issues:

Plogue ChipsoundsPlogue Chipsounds is a good attempt at emulating all sorts of computer sound chips, but it is pretty high priced, the demo doesn't give nearly enough time for a proper evaluation, the GUI is very convoluted and the SID filter is awful.

HyperSynth SIDizer seems like it should be very good from its feature list. It looks like it's trying hard to be very accurate and the price seems much more reasonable than Plogue's plugin. However, it just crashes my DAW when I try to open it and I've never managed to hear it live.

There was little choice but to just do it myself. Ideally, I would make a VST in C++ that used the updated libsidplay (as used in the Sidplay program) and have it work as if it was accessing the real hardware, but the biggest problem would be the user interface. It would take far more time to program the interface than it would to get the sound going, and the interface is all-important in giving access to the relevant features via MIDI. A better choice would be to use something that already has an easy GUI framework and is extensible by the user.

And so, having become pretty adept over the years at making my own synths in Reaktor and knowing the SID chip pretty intimately, I loaded up said software and selected "New Ensemble".

Next: "How on earth does someone copy a 30-year old soundchip?"

Insidious 6581 for Reaktor is available at the Native Instruments User Library