555 Contest Entry
[ Home ] [ 555 Entry #2 ]
Here are the details for my 555 Contest entry. It is a three channel music synthesiser, capable of four octaves per chanel. The 555's are used to generate each octave for each voice (or channel). There are twelve 555 timer IC's used for the synthesiser section and two more for tempo control and paper speed. It is sequenced by a Heathkit H-10 paper tape unit and programmed with a 486 PC running QBasic (seriously, it's easier).
There are a few reasons why I chose to use a paper tape machine instead of an EEPROM and counters, or a microcontroller. First, I wanted this project to be made with components available in the 1970's. Also, I think it looks better to have something moving with the music and I'm not a great fan of using IC's with bazillions of transistors in them.
Second video with fewer glitches:
Things to view:
Page 1 (png)
Page 2 (png)
Page 3 (png)
A picture of the board (jpg)
Bach's Invention 13 (mp3)
Source code for Invention 13 (bas)
Fugue in D Minor from BWV565 (9MB MP3, this is the second take, tuning is better)
This is what Fugue in D Minor looks like on paper tape:
First, the note to be played is applied to the data input. This is decoded into one of four options, depending on the two most significant bits (see Page 2). This decides whether the byte is to control one of the voices, or if it should activate the note duration timer. If it does trigger the note duration, the voices aren't affected. The circuit sending bytes should wait until the 555 has reset if a duration is selected.
If the two most significant bits control a voice, two things happen. First, the four least significant bits are decoded into a one-of-sixteen output. This actiavtes the appropriate transistor on the trimpot ladder, which then causes the voltage at the non-inverting input of the TL071 op-amp to drop. Different notes generate different voltages. At the same time, the appropriate voice is selected. This enables the voltage onto a sample and hold circuit (Page 1), which stores the note for the duration. The octave select bits (which are bits four and five) are also stored into a dual flip flop.
The actual synthesiser part works like a voltage controlled oscillator. A voltage is sampled on the input op-amp and applied to a current mirror via two tuning trimpots. This causes the current charging the capacitors, and therefore the frequency of oscillation, to change depending on the voltage. Each of the four octaves has an increasingly larger capacitor on it so the frequency it oscillates at is approximately half that of the previous stage. To ensure correct tuning accross all octaves, a 10k ohm resistor is linked between each 555 to make sure the frequencies and phases are locked.
To turn the channel off, a positive rail voltage is sampled, which causes no voltage drop across the current mirror, which then causes no current to flow into the 555 oscillators. This should prevent all oscillation, but in practice there is some leakage current which produces a regular pop sound. To stop this, a 2.7M ohm resistor is placed across the capacitor of the first octave. This means the first octave must be selected to completely stop the voice. The desired octave is then channeled through a multiplexer to a buffer and then to the amplifier.
Got that? No? Good. There will be a test on Friday.
Update 2011/2/14: Updated the circuit diagrams to reflect changes in circuit which prevent glitches and reproduce the music accurately. I will upload a video of it working soon.