The Gakken SX-150 is a really inexpensive analog synth (about $50, now available at the make store). This synth is included on a Japanese magazine (I wouldn’t expect less from them) so that makes it 2*2 times as cool.
Since its release, someone already has created a module to add midi support to it using the atmel attiny2313, but I’ve wanted to use an Arduino board to do it, to keep things easy to prototype and hack.
My implementation uses a single DAC IC chip, the MCP4921, which sells for about 2 bucks from Mouser. The current version uses the Arduino, only to read one byte, as a midi note, from the serial connection and sends that to the SX-150. I could have created the full midi circuit to make it a standalone solution, but that increases the cost and complexity of the physical connections. I’ll probably do that on a later revision.
So, in order to receive midi data, I wrote a small Processing sketch that receives midi, and sends the note information through the serial port to the Arduino.
The Arduino connection diagram looks like this:

And the final connections, like this:

And.. the whole thing sounds like this:
On the video, I’m using Ableton Live to send midi data to the processing sketch using a Network Midi connection on the Mac. On windows, you should be able to use Midi Yolke to accomplish the same thing. Then, I make sure that the processing sketch receives midi on that same virtual midi connection and sends the data through serial to the arduino. So, depending on your system configuration, you might have to tweak the Processing sketch a little bit to make sure it is reading and writing to the right midi and serial ports.
The flow of data from the sequencer to the synth looks like this:
Ableton Live => Virtual Midi Connection => Processing Sketch => Serial Port =≶ Arduino => DAC => SX-150
And finally, the source code:
Now, hook it up and make some noise!

HOW TO - Control a Gakken SX-150 using Arduino | eins78 | 24-Nov-08 at 7:50 am | Permalink
[...] So, in order to receive midi data, I wrote a small Processing sketch that receives midi, and sends the note information through the serial port to the Arduino. Very excellent - all code available on his site - Controlling a Gakken SX-150 synth with Arduino [...]
HOW TO - Control a Gakken SX-150 using Arduino | SquareCows | 24-Nov-08 at 5:39 pm | Permalink
[...] So, in order to receive midi data, I wrote a small Processing sketch that receives midi, and sends the note information through the serial port to the Arduino. Very excellent - all code available on his site - Controlling a Gakken SX-150 synth with Arduino [...]
Muzyka » Blog Archive » Controlling An SX-150 With Ableton Live, Arduino | 27-Nov-08 at 12:06 am | Permalink
[...] via MrBook [...]
Mrbook’s Stuff :: Gakken sx-150 arduino hack number two: Adding MIDI and Audio out | 18-Jun-09 at 6:45 am | Permalink
[...] finally got around to finishing the hack to my Gakken SX-150 mini synth. On the first part I added the ability to be controlled by Arduino through a virtual software midi port. On this [...]
Gakken $50 Synth controlled via Arduino | Key Of Grey | 20-Jun-09 at 3:53 pm | Permalink
[...] included links to the software used. The hack is a two-parter, so you’ll want to check out his first post on it for a more complete idea of how to roll your [...]
Djs Do It Better | $50 Gakken Synth Kit Meets MIDI, Ableton Live | 16-Jul-09 at 8:36 am | Permalink
[...] Very excellent – all code available on his site - Controlling a Gakken SX-150 synth with Arduino [...]
arduino / gakken synth control « sync24 | 19-Jul-09 at 2:26 am | Permalink
[...] arduino / gakken synth control http://mrbook.org/blog/2008/11/22/controlling-a-gakken-sx-150-synth-with-arduino/ [...]
MCP4921 12bit DAC voltage controller - sinneb | 05-Jun-10 at 6:24 am | Permalink
[...] Derived from mrBooks instructions! [...]