Pd running MIDI to an ArduinoBoy controlling a Game Boy running trash80’s mGB software to generate triumphant RPG music in real time.
This simple(-ish) Pure Data patch generates four channels of MIDI, corresponding with the four channels of the Game Boy’s sound: two pulse waves (channels 1&2), a triangle wave (channel 3), and noise (channel 4).
The arpeggio on pulse channel 2 is just a simple sequencer, with some “echos” created with [pipe] objects. The “drums” are created by a sequencer triggering random notes on a sequence too.
The remaining channels are slightly more sophisticated. First, we select a rhythm for each measure, then trigger notes on pulse channel 1 at that rhythm. There are only five notes (from a hemitonic pentatonic scale), and each note has two or three possible harmony notes, to be played by the triangle channel.
I’ve put together some videos on using microcontrollers (like Arduino) for music and sound applications.
In these first few videos I go over how to do some simple synthesis with an Arduino, controlling pitch and timbre with potentiometers and light-dependent resistors (LDRs)–essentially putting together some Arduino chiptunes!
I originally made these instructional videos for my class, but I’m hoping to continue to build on this playlist if there’s interest.
Since last time, I added MIDI control and transferred things to a smaller circuit board (and Arduino) in order to fit everything back in the original case.
So what does this little synth do? It takes MIDI notes (from a keyboard or DAW), and uses them to trigger the sounds built in to the Intellivoice chip, which, as it turns out, consist of mostly numbers.
Check it out:
I might look into a few more tweaks. Currently, each word will always play to the end, even if another word is performed before it’s finished. I’m not sure if this is a property of the Intellivoice chip, or something I could fix in my Arduino program.
Why pursue a project like this one?
Games and gaming hardware are mass-produced devices with planned obsolescence and few serviceable parts. By “hacking” and customizing gaming hardware we regain personal ownership of these devices, and we can turn obsolete equipment into performable, expressive instruments.
An earlier version of this synth actually appears in the electronics of my new commissioned work, Hirazumi (more about the piece here and here), and I think the hacked Intellivoice fits perfectly into the post-digital, cyberpunk aesthetic.
Back to the Sega Genesis Mods! If you’re catching up, check out Part 1 and Part 2.
Where we left off, I had found my glitch points, and I was going to get digging in to some kind of button control before moving on to MIDI control.
Here are the pins of the VRAM with some wires from some selected spots. Purists might fault me for not running off of all of the 44 available points (48 minus the two VCCs and two grounds), but I didn’t have that many buttons anyway.
After taping things down, I ran the wires to a set of headers. The reason for using headers is to keep the ability to remove the top of the Genesis if I want to get back inside for any reason.
I had a phone keyboard kicking around, and I figured this would be a simple alternative to setting up a matrix of buttons. How this works, then, is any one button connects two points (which two points hardly matters), and if one holds down multiple buttons at the same time, several data points start cross-talking with different visual results
Are you ready for this?
Here’s a video of it in action:
Now, of course, while I’m stoked about my new toy, this instrument is not yet what I set out to do (and what the title of these posts proclaims).
MIDI-Control, though is just a quick hop away. Next time, I’m going to get a new Teensy, install it in the Genesis, and program it to control the connections via USB MIDI control (likely with some simple transistor work).
Continuing my Sega Genesis Project, now that I’ve got the video in a form my TV can understand, time to start messing with things.
Repeating my disclaimer: Messing with things plugged into an outlet is dangerous! I’m only doing this because the Genesis has an adapter that converts the voltage to 10V DC long before the power gets anywhere near the board.
When in doubt, only circuit-bend things that are battery powered. Think of how embarrassing it would be for your parents (or wife and son) to explain that you died trying to get glitchy video from a game system.
Anyway, that said, time to start poking around a bit.
These are the Video RAM chips whose connections I’m going to bridge. They have 24 connectors apiece, and one on each is the power, one on each is the ground, everything else (I believe) is data. So all we’re going to do is send some of that data to the wrong places.
I’m going to poke around the bottom here, because the contacts are more accessible.
(By the way, the resistor and capacitor you see here are not my work, just an afterthought by the designers of the PCB.)
That looks pretty glitchy to me.
I’ve found a few points that give a variety of effects (relatively). The next step (next time) is going to be installing a way to control these. I’ve decided I’m going to start with a push-button system before moving on to the MIDI control for two reasons:
1.) Moving in small steps seems wise.
2.) I’ve used up this month’s tinkering budget, and I’m going to need a Teensy to get the MIDI working.
The Genesis uses a Yamaha FM synthesis chip for sound, which might be interesting to dig into at some point, but my main goal in cracking this machine open was to try some video circuit-bending: apparently pretty easy to do, bridging the legs of the VRAM.
First, though, I didn’t have the little box that I need to hook the Genesis up to the TV, so, instead of trying to track one down, I decided to install component video RCA outs.
So, away we go!
After some poking around on the internet, I found that there are lots of different revisions to the Genesis circuit board, and this, the VA7, is apparently the least desirable. The audio is actually synthesized on a different chip, but Sega didn’t account for the difference in output volume of the new chip in the internal amplifier, so the sound has all kinds of digital distortion.
Well, that just means if I fry this thing, I won’t feel so bad.
Quick disclaimer: Messing with things plugged into an outlet is dangerous! I’m only doing this because the Genesis has an adapter that converts the voltage to 10V DC long before the power gets anywhere near the board.
When in doubt, only circuit-bend things that are battery powered. Think of how embarrassing it would be for your parents to explain that you died trying to get glitchy video from a game system.
Hearing the complaints about the sound on the VA7, I did a quick adjustment by adding a resistor to pull things down a bit, and a capacitor to roll off some highs (I think that’s how it works. Someone please correct me if I’m wrong).
I’ve since found someone designed a Crystal Clear Audio Mod, which seems a lot more involved (and likely better) than my “quick and dirty” solution.
Success! Next step: start glitching that video feed.
Check back for Part 2 soon.
“Inspiration does exist, but it must find you working.” – Pablo Picasso
Since the winter break, I’ve been tinkering around with somechiptuneprojects, and I’ve got quite caught up in the simultaneous progressive and regressive sound design of composing with chips of the 1980s and 90s. Perhaps its a stretch, but I believe this kind of cultural re-appropriation as directly akin to drawing influences from outside Western Music.
Philosophy aside for the moment, as my first gaming system was the original Game Boy, I’m particularly interested in the circuit-bending and customization artists are doing with these old devices, so I’ve been getting my hands dirty for the last couple of months customizing these two Game Boys that I picked up on Craigslist.
While a lot of the work was purely cosmetic, I did a “Pro Sound” mod on both of them, which basically is just bypassing the internal (noisy) headphone amplifier and putting in some RCA jacks. On the Game Boy Color here, I also bypassed the existing audio output capacitors with some bigger ones, which supposedly gives a bass boost. While I hope to do some more experimenting in the future, most of what I did to these two units was a matter of just following instructions.
I’m calling the original Game Boy “MIKAN.” Customizations:
Orange screen backlight
“Pro Sound” RCA Mod
Custom buttons, ON/OFF switch, screen lens, link cover, orange LED, and battery cover
The Game Boy Color, “BUDO,” has:
Original (broken) speaker replaced with Nintendo DS speaker
“Pro Sound” with bass boost capacitors to RCA outs
“Anti-noise” decoupling capacitor
They both have their own peculiarities in terms of sound. BUDO has some sub-audio in its output (perhaps a result of the bass boost), and MIKAN, without a decoupling capacitor, sometimes has “clicks” at the start of sounds (perhaps related to the DC power somehow). I’ll post some sound samples as I keep working on my current project.
I have to say it’s really fun and rewarding to do these customizations. While I’m working on a piece now that uses these “instruments,” I’m also trolling Craigslist for another cheap Game Boy so I can do the customizations again (and try some new things).
This is a synthesizer made from four SN76489 chips. These chips appeared as a cheap audio solution in a number of old computers and game consoles, including the ColecoVision, NeoGeo Pocket, Sega Genesis (although the Genesis had another chip capable of FM Synthesis).
Because these chips are cheap, this ends up being the cheapest synth on my rack: