I’m working on designing an Arduino shield to work with old AY-3-8912 PSG chips. Here’s the results of my fist tests interfacing the chip with the Atari. The was based of Octobit’s work on the AY-3-8910 (available at http://playground.arduino.cc/Main/AY38910#.UwWYkZE2zwK), which was based off of kalshagar’s work on the related Yamaha YMZ294 (available at http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294). I had to modify Octobit’s work to accommodate the different pin arrangement of the AY-3-8912 and correct the wiring of the 2MHz clock (his diagram shows a Vcc line going to ground). I modified his starter code to write a few little tunes and play around with various aspects of the AY-3-8912’s synthesis.
0:00-0:08 : channel A playing a dinky square wave melody with no amplitude envelope
0:08-0:24 : a classic PSG timbre trick. This series of chips can produce three channels that contain square waves, linear feedback shift register (LFSR) noise, or both. One global amplitude envelope system could be applied to all of the channels. To get around the timbre limitations of just square waves + noise, composers would apply the global amplitude envelope very fast to get crude but varied AM timbres. Here, I’ve applied this technique very inelegantly by applying a very fast triangle wave amplitude modulator at random frequencies which change every few notes. It can actually be used to great effect by controlling the modulation:carrier ratio to place sidebands carefully (just like in FM synthesis).
0:24-0:40 : The same trick, with the melody at a lower octave.
0:40-1:02 : Using channels A & B to play a Bach-ish one-to-one counterpoint, with a more normal global amplitude envelope.
1:02-1:12 : Same thing, sped up really fast to give a Galaga-style sound effect.
1:12-1:22 : Same thing, but with the original melody. This one actually sounds a lot like Galaga…
1:22-1:54 : The original Melody, but with noise enabled on channel A. Each note, the period of the LFSR changes, giving different noise timbres each time.
The AY-3-8912 was a popular 3-voice PSG chip from the 1980s, which was used in the Intellivision and Vectrex video game consoles, as well as various arcade games and home computers. Even early on in the chip’s history, it was popular for hobbyists and hackers (as shown by at least one magazine article on its use in the context of the Atari). Today, several people have built off of early projects and maintain ongoing discussions focused on using the AY-3-8912 with microcontrollers. The sound of the chip remains popular enough that is has even been digitally modelled as part of Chipsounds, a commercial digital audio workstation (DAW) plugin by Plogue Art et Technologie and MAME (the multiple arcade machine emulator).