ABSTRACT:
The SID Groove is a monophonic audio synthesizer module based on the MOS 6581 "SID" (Sound Interface Device) IC. Based loosely on the concept of the SIDstation, the unit has a variety of input methods for the various controls: MIDI, an array of potentiometers, and a multipoint touchpad. Handling the synthesis functions is the SID chip from the Commodore 64. A pair of PIC 16F877 microcontrollers interface the inputs with the SID, and allow many of the SID's parameters to be controllable via the potentiometers. A Tactex MTC Express touchpad is utilized to control several other functions of the SID, such as the cutoff frequency and resonance of the built-in filter.
TABLE OF CONTENTS:
Two PIC16F877 microcontrollers handle the major processing functions of the SIDgroove. The slave MCU takes care of communications with the MTC Express touchpad; initializing communications, parsing data, and doing the necessary compuations to extract useful data. This data is then passed over a high-speed SPI serial link to the master MCU. The master MCU reads the front panel controls via ADC inputs, as well as parsing note data from its MIDI serial input. Instrument and note data is passed to the MOS 6581 SID chip by the master 16F877.
The MOS 6581 includes an impressive array of features considering the era in which it was designed. Of importance to this project are the three oscillators (0 - 4 kHz), multiple waveforms per oscillator (triangle, sawtooth, variable pulse, noise), amplitude modulators, envelope generators (attack / decay / sustain / release), and a programmable filter. While reducing the polyphony (number of simultaneous notes) of the synth to just 1 (aka, a monosynth), using all three oscillators in unison will allow for a very thick, fat sound which is favoured in electronic music today.
The SID Groove is a proof-of-concept device, to be used as the basis of a more powerful synthesizer later on. It is a working prototype, playable via a MIDI keyboard and controlled by the various inputs. The touchpad is a very unique method for controlling the resonance and cutoff frequencies of the SID's output filter. With proper software algorithms, the touchpad can allow the user to create very original sounds with the unit, and in turn also create a new method of musical performance.
The schematics for the SIDgroove are as follows:
CURRENT STATUS: April 20, 2001
The SIDgroove still needs to have a front panel made, as well as additional debugging of hardware and software. Code has not yet been loaded onto PIC16F877s due to lack of a PIC programmer. Tests of a home-built PIC16F877 programmer to follow.
HARDWARE REVISION 1.1: April 5, 2001
Removed multiplexed address/data bus from master.gif, added slave.gif to design.
SOFTWARE REVISION 1.2: March 29, 2001
Added multi-note MIDI stack to master.
SOFTWARE REVISION 1.1: March 3, 2001
Merged code examples and initialization code for master, now assembles correctly.
SOFTWARE REVISION 1.0: February 13, 2001
Initial release of memory map and software for master PIC.
HARDWARE REVISION 1.0: January 14, 2001
Initial release of hardware schematics. Involves phase 1 of the system: midi_adc.gif, sid.gif, and master.gif. This old version of master.gif (unavailable now) includes a multiplexed address/data bus using a 74LS374 to latch the address.
The only publication related to the SIDgroove project is the EECE 496 final report, released April 5, 2001. This document is only available in print form at the current time.
Demonstration of the SIDgroove is relatively straightforward. First, hook up the main breadboard to a powersupply, approximately +13 to +15V. Connect one end of a standard MIDI cable to an external keyboard and the other end to the 5-pin female DIN connector of the SIDstation. Connect the MTC Express touchpad to the DB9 serial port connector. Apply power to the keyboard and MTC Express. Then apply power to the SIDgroove.
Next, connect the 1/4" audio output of the SIDgroove to either headphones or any other device that accepts an audio input; this is to hear the output from the SIDgroove. Set the MIDI keyboard to transmit on Channel 1, and play a note. The SIDgroove should now output sound through its audio output. Turn the ADSR (attack / decay / sustain / release) knobs of the SIDgroove to change the volume envelope of the instrument. Move a finger around on the touchpad and change the resonant filter output of the SIDgroove.
There are a number of downloads for the project; code, schematics (above) and datasheets:
The following is a list of people who were involved in the development of the SIDgroove:
Parts of the design were inspired by Thorsten Klose's MIDIbox Plus. The base ideas was inspired by the Elektron SIDstation.
The SIDgroove was created for the Benzene electronic music production group. Further development info on future versions of the SIDgroove, as well as music produced with the SIDgroove, will be found there.