Seven years ago Noah Vawter and I finished up âPushpin,â a Gameboy Color MIDI adapter. Pushpin allowed you to compose music on a computer or sequencer and use the GBC as an instrument. You didnât touch the GBC while it was playing other than to admire the fancy boot screen. It turned your $80 toy into a pretty good 4-bit waveform synth. Unfortunately, you probably donât have one, let alone believe that it ever existed. I am finally releasing Pushpin to the wild. You can read on for the story of Pushpin or more directly touch the Pushpin âproductâ page for a download link and schematic.
Hereâs the storyâŚ
During the summer of 2000 I went through a sort of decompensation that resulted in my sitting on one of those Amtrak NYC->Boston trains that somehow go through Springfield MA and take roughly $34 in box Amtrak dining car wine to get there. On the tray table was my trusty Palm VII, the same one that supported earlier developments as Egg Timer, Hedgehog (and baby Hedgehog), Tractor Pull and the nascent Capers API (more on these later) â head to head, kissing IR sensors with my prized clear purple Gameboy Color (aka âTetris DX Machine.â)
For some reason I got it in my head that I was put on this earth to make a MIDI to IR translator using the Palm and Geoff Smithâs Palm MIDI adaptor, and then a IR to sound cartridge (like you point a Palm at the GBC and play Hedgehog or something at it for the GBCâs sound chip.) I curiously found this reasonable, that IrDA was a perfectly good signaling protocol for 31,250bps 7-bit serial data (itâs not, trust me) and that my audience had an RBR of at least 0.95.
[Ridiculous aside time: – did you ever think the reason indie music hardware makers design their stuff to be so convoluted is a subconscious worry that someone will actually successfully use it? Like someone they didnât plan for â Iâm thinking Coldplay with a hardSID, or Amy Winehouse rocking pspseq. I am picturing Ethanâs face when he first reads about Amy using his software. Heâs looking down at the ground a little bitâŚ]
I actually did mock up the IR->MIDI translator on both ends but gave up quick when I realized the packet overhead of IRDA is just ridiculous. I donât give up easy, and one curious thing I found in my crawls was a discovery that the GBC had a vestigal digital input pin on the link cable. I reached Noah Vawter and got him to stop looking at micromusic long enough to help out. Within days Noah did up the hardware and we had it â bits signalling from a serial port showing on the GBCâs screen. It was amazing. Ken Kaarvikâs source code got us to 9600, and the bulk of the remaining development was timing â overclocking the GBC to âfastâ mode and then squeezing every little cycle we could to stably read bits at the MIDI baud rate.
The timing parts were painful yet satisfying. We were always so close: close enough to handle note ons first, then close enough to do real time controllers, then close enough for pitch bend, etc. The source you see on the svn site I believe is maximally optimized even with the overclocked GBC. I donât think many other features could get added. We had meant to include patches and program changes but never got around to it. The sound parts â figuring out what notes to play when the right MIDI code came in and figuring out which registers to twiddle when the right MIDI CCâs were tweaked â seemed like a walk in the park compared to the manual cycle counting I found myself doing on my living room floor for most of August 2000.
To this day, Pushpin was the most exciting hack-project Iâve ever done. From conception to actual working device took roughly two weeks. I think I had a job at the time but I doubt I actually went into the office.
Aftermath
We released Pushpin in the style of the times â with a flashy website, lots of documentation and screenshots, some sound samples, and no download link or information on purchase. Noah and I had about four Pushpins between us. We were of course crushed with emails. For the first and probably last time I had successfully predicted the product for the audience.
The main block with Pushpin was that it was a Game Boy cartridge. Nintendo doesnât let just anyone mail them a romdump for them to sell in stores, and you canât just let people download your thing. The point of existing-hardware hacks (like pspSeq / kick or iPhone things or Palm apps) is that you have a built in user base who doesnât have to buy new hardware. But a Game Boy Cartridge bridges the gap between software and hardware. We had flash cart programmers, of course, but few others did. We simply never got it together other than buying 20 4Mb blanks from Bung in Hong Kong (!!) â somewhere in Noahâs apartment is a box full of these things. The required hardware (MIDI to serial board) was another issue â although Noah had made twenty laser-etched boards what would we do then? Nowadays pick and place and send-away-for-etching is a bit more common. Maybe the make-your-own-stuff-by-reading-OâReilly-funded-websites movement is getting people more familiar with breadboards, they wonât need a kit.
This was seven years ago and in that time a lot has happened â but no one outside Noah and myself and I believe Keith has ever used a Pushpin. I played a few shows with it in NY in 2001, and it also was the topic of the first slot of the first ever Dorkbot meeting (Iâm very proud of this.) When Noah started at the lab in 2004 we promised we were going to put it out for real, maybe actually sell the 20 copies we had parts for. Itâs very hard to get this sort of thing together, but I got as far as hooking it up again to the Media Lab music studioâs workstation and programming some patterns in Logic 6 for it. (To see how far weâve come, the first testing environment for Pushpin was KeyKit.) I made some sample loops and they sounded great.
I never responded to those thousands of emails. People (slightly correctly) assumed it was vaporware. But it wasnât, I promise, and today Iâm releasing Pushpin to the world, for free â along with its GPL source. I am making a public promise to Noah to take him out to Emmaâs for a potato/cranberry/bacon pizza if the commit count on the Google code project ever goes over 2. But hereâs your slice of history.