Our Drum Machine, hereafter lovingly referred to as "Jen", is composed of two Atmel chips working in tandem. One processor, an Atmel AT90S8535 running at 4Mhz, acted as the MIDI interface and the seqencer. The other, an Atmel AT90S8535 running at 8Mhz with external SRAM, did the audio synthesis at a blazing 22kHz.
The Audio Synthesis Board
Running off a 8Mhz crystal, this chip did a lot! In fact it did more. The chip has several modes of operation. When it first starts up it's in input mode. It connects to the computer via the UART and scans for a group of two ASCII numbers. When found it begins to convert these into sample data stored in the SRAM. The samples are created by us, and are terminated by an 'X'.
When the four samples are loaded it enters output mode. Here it outputs a sound when the play signal is recieved from the sequencer. The sounds are played on separate channels so that they do not cut each other off; they are combined to produce stunningly realistic effects! Each sound is maintained via a pointer to memory. Each pointer is read, incremented and combined. The result is then truncated to 8 bits and fired off chip into a DAC which converts our bits to hardcare jamming!
The MIDI Sequencer Board
This board was configured using a 4Mhz crystal. It was designed to take the MIDI signal in on a UART port that had been modified to convert the current driven MIDI signal into a voltage driven UART signal. The signal was then interpreted on the board as one of 4 possible "sounds".
There are two operating modes for this chip. It starts up in "record" mode. In this mode the user's input is written into memory while simultaneously playing back the memory in a loop. This loop is the heart of the sequencer. The user can then enter "Play Mode" by pushing a button.