The C64 was limited to a single SID sound chip and Simon could only program in BASIC at the time, but he thought that one day it would be great to make a MIDI-controlled synthesizer out of it. “Delving deeper, I found that the designer of the SID chip, Bob Yannes, also had ideas of making a polyphonic synthesizer out of it but it never happened. I thought I would make it happen after all.”
Simon realised his polyphonic synth would have a rich, fat sound if he dedicated one SID chip per channel, and so six chips would make it possible to play six notes at once. “I wanted to make it sound like an original C64 computer and so using eighties silicon was going to be the way [rather than emulating sounds].”
Sourcing six original MOS6581 SID chips on eBay, he designed a PCB to accommodate each chip. After hand-assembling the six board units, he stacked them on top of a Raspberry Pi 4 which ‘pokes’ their registers to control them.
From a PC-based software synthesizer he’d written in Python some years ago, Simon ported the MIDI control part of the code to Raspberry Pi and modified it to control external circuit boards.
The biggest challenge was getting the SID chips to make any sound at all. “I wrote a C-driver that manages the I/O to control the SID chips because Python was slow at dealing with I/O,” he says. “Since the filter of each SID chip has different characteristics, I had to plot the cut-off frequency vs filter setting of each channel and make a look-up table so that the chips behaved the same way.”
One downside of using multiple SID chips is how much background hiss they make. “When you have six chips mixed to one output and you are not playing anything, the chips all make low volume whirring noises out the audio output. The board design can go up to eight SID chips, but that is even more background noise.”
The Synth6581 offers two main modes. In the standard synthesizer mode, audio from the SIDs is played using a standard MIDI keyboard connected to Raspberry Pi via USB. As shown in Simon’s YouTube demo, the keyboard’s sliders and knobs are used to tweak various parameters of the SIDs’ voices. Filters can also be added so sounds evolve over time, while arpeggiator settings include the ability to modulate one oscillator to recreate that familiar ultra-fast arpeggio sound used in so many C64 tunes.
The second main mode for Synth6581 is music playback. This enables the playing of distinctive sounds reverse-engineered from music files of C64 games. A single key press can trigger playback of elements such as percussion loops and basslines.
The public response to Synth6581 has been very positive. “People have thanked me for reminding them of games played 30 years ago and enjoyed the reboot of those sounds,” says Simon. While he plans to make further improvements to it, he also has an eye on other musical projects. “One really big challenge would be to open up an old Roland synthesizer and use the Raspberry Pi to control its sound registers directly. It’s a great hobby, but very time-consuming.”