In addition to the blog posts here, I will also be maintaining a github repo with the project, posts, ideas, work in progress, etc. Feel free to create issues if you have any suggestions or questions! The following is my original proposal (slightly modified). The beginnings of my next post will appear in the repo shortly. Feel free to check there for a sneak peak.


The Basics


This project will seek to create a union of the analog generation capabilities of the SN76477 and the digital control of the Beagle Bone Black. The SN76477 can produce many different types of sounds, so the final product would likely be composed of multiple independent circuits, to be physically or digitally swappable.


The input to the system would likely be midi, as this is what I have access to. It may or may not be capable of audio modification, like an effects pedal, but it would certainly be capable of audio generation. If possible, I would like to accept inputs from electric instruments, though this would likely fall under the category of audio manipulation rather than generation.


It would also be capable of saving to and loading from midi files, so as to not require an instrument. There is the possibility of being able to accompany oneself, though there would be some limitations as the chip can only have a single configuration (voice/instrument) at a time. Perhaps with the inclusion of multiple identical circuits, each individually controllable from the Beagle Bone Black.


I would also want it to be able to respond to all midi messages, such as to switch voices/instruments, etc. While having a display would be useful (and probably necessary for some configurations), I would also want it to be usable without the musician directly interacting with the device itself.


The final sound output would intend to be like classic chiptunes, but with more variability than the originals, possibly approaching the sounds generated by SN Voice (some of the circuity would likely be based upon this project).




I have always been interested in the programmatic generation of music, spending many hours making ringtones for my old brick cell phone. Recently a friend introduced me to this chip, and it fascinated me to no end. I have yet to make it controllable digitally, however. That is what this project is for.


The Chip


The SN76477 came to market in 1978, for creating what we now refer to as "chip tunes" (one specific example is Space Invaders). I will defer to those more knowledgeable than I in detailing it's exact functionality. From Lou Garner, Solid State, Popular Electronics magazine, October 1978.

[T]he SN76477 generates complex audio signal waveforms by combining the outputs of a low frequency oscillator, variable frequency (voltage controlled) oscillator, and noise source, modulating the resulting composite signal with a selected envelope and, finally, adjusting the signal's attack and decay periods. At each stage, the process can be controlled at the programming inputs of the signal modification and generation circuits, using control voltages, logic levels, or different resistor and capacitor values.

Additional Hardware


Outside of the Beagle Bone Black and the SN76477 chip (and the components required to make those work), there would not likely be much more hardware. Though there will likely be some digital-to-analog and analog-to-digital components.


Almost all of the demo circuitry utilizes rotary switches to select capacitor and resistor values. My digital alternative to this would be a (likely 8-bit) selector, allowing several components to be selected at a time via a bitmask, allowing for a much larger and controllable range than the demo circuitry. If the final result is modeled after the official demonstration circuit, there would be 4 of these for capacitors, and 2 for resistors.