Forty years ago, the SN76477 was born: a legendary chip designed by Texas Instruments to create sound effects in arcade games. If you’ve ever played Space Invaders, you’ve listened to the SN76477.
In those primitive times, controlling this chip was a challenge for hobbyists. You could use rotary switches and pushbuttons (as I’ll suggest below), but if you got ambitious and hoped, maybe, you could run it from the cassette port on an Apple II — well, maybe not.
Everything is now much easier, because many functions of the SN76477 are set via logic inputs. Just send high or low signals from an Arduino or any other 5V microcontroller, and you can sequence a cacophony of rifle shots, sirens, the puffing of a steam locomotive, and a sentimental lullaby. Better still, all of the sounds will share that retro arcade ambience.
Despite the age and obsolescence of the SN76477, you can still buy samples from multiple eBay suppliers for around $15. Apply a 9V battery, and the chip contains its own voltage regulator which converts the power to 5V internally and also makes it available (up to 10mA) from a 5V output. This you can use to power the logic inputs.
Sound from the chip has to be amplified, and the manufacturer recommends using a couple of transistors. I found that a single 2N3904 would work.
A scan of the original datasheet is kindly maintained by Experimentalists Anonymous at experimentalistsanonymous. Before playing with the SN76477, you should download a copy. Careful study of this seminal document showed me that the chip synthesizes sound from three sources inside itself, as shown above. A voltage-controlled oscillator (VCO) creates tones that vary in pitch with voltage, and a super-low frequency oscillator (SLF) can control the VCO, creating the irritating whoop-whoop or weoo-weoo-weoo sounds that will induce paroxysms of nostalgia in arcade dwellers of the 1980s. An additional noise generator creates white noise, which is useful to simulate explosions.
A mixer can blend any two or all three of the sources, and an envelope generator can modify the attack and decay of one-shot sounds such as a bird chirping.
The mixer merges sounds by ANDing them. If you want to hear sounds that can be distinguished from each other even though they occur simultaneously (for instance, bird song during a nuclear explosion) you have to alternate the mixer inputs at a rate of around 50kHz. This can be done with a 555 timer and a multiplexer.
All the sound attributes are adjustable with external resistors and capacitors. If you prefer to select capacitors using a microcontroller rather than rotary switches, you’ll need more multiplexers. I don’t have space to get into that topic here, but if you have my book Make: More Electronics, it describes multiplexers in some detail. You may also consider using digital potentiometers anywhere you see potentiometers in the schematic, because digital pots are specifically designed to be microcontroller-friendly.
This figure is a test circuit that I derived from a version helpfully supplied by Texas Instruments when the chip was first introduced. This is not as complicated as it may seem. To breadboard it, I used three single-bus boards side by side, as shown below. Instead of rotary switches, I used movable jumper wires.
Here’s a handy label that you can cut out and stick on the chip to keep track of the pin numbering.
So now if you’ve been putting off the chore of synthesizing the sound of a crashing car while an electronic organ plays “Twinkle, Twinkle, Little Star,” you have no further excuses. The SN76477 can do it all.
SN76477 PIN FUNCTIONS AND COMPONENT VALUES
I have retained most of the original component values suggested by Texas Instruments, but you can substitute standard values that are similar. Switched capacitors are used to establish a broad range for each key feature, while potentiometers make adjustments within each range.
1. Logic input. Applies a sound envelope in conjunction with pin 28.
2. Negative ground.
3. External clock input for noise generator (optional). Maximum 10V.
4. Closing the switch enables the internal noise clock. The 47K resistor may be increased up to 100K to get a lower-frequency noise.
5. Low-pass noise filter adjustment.
6. Low-pass noise filter range.
7. Decay activation switch and adjustment. Determines the discharge time of the attack/decay range capacitor applied to pin 8. Open switch causes instant-off (no decay time).
8. Attack/decay range.
9. Logic input. Logic high inhibits sound output, logic low (or open switch) enables sound, and high-low transition with the pushbutton triggers the one-shot function. If the input goes high during a sound, the sound will be interrupted. Envelope selection pin 1 must be high and pin 28 must be low for the one-shot to work.
10. Attack activation switch and adjustment. Determines the charge time of the attack/decay range capacitor applied to pin 8. Open switch causes instant-on (no attack time).
11. Audio output level.
12. Feedback from amplifier output.
13. Amplifier output to base of transistor.
14. 9VDC power input. Also supplies collector of transistor.
15. 5VDC power input if pin 14 is unconnected, or 5VDC power output if 9VDC is applied to pin 14.
16. External VCO input, or internal VCO adjustment. Maximum range of external source: 0V to 2.35V. Exceeding this range saturates the audio output and causes distortion.
17. VCO range.
18. VCO activation switch and adjustment.
19. Pitch adjustment via pulse-width modulation of the VCO output. Leaving the switch open gives a 50% duty cycle of the VCO.
20. Super-low-frequency oscillator activation switch and adjustment.
21. Super-low-frequency oscillator range.
22. Logic input. Logic high controls VCO with internal capacitors, logic low selects external control with pin 16.
23. One-shot duration range.
24. One-shot duration adjustment.
25. Logic input. Logic high selects Mixer B.
26. Logic input. Logic high selects Mixer A.
27. Logic input. Logic high selects Mixer C.
28. Logic input. Applies a sound envelope in conjunction with pin 1.
The result of combining the logic states of pins 25, 26, and 27 to select mixer inputs is shown below.
The result of combining the logic states of pins 1 and 28 to select sound envelopes is shown below. For example, if pin 1 is low and pin 28 is high, the mixer output is fed continuously to the amplifier without any envelope being applied.
The mixing of sound sources is controlled by the logic states of pins 25, 26, and 27.
After setting an envelope for your sound (i.e. attack, sustain, and decay) you decide how to apply it by setting logic states of pins 1 and 28.