Prediction [archive]

… Christiana was in town, having sublet her place near mine and electing instead to stay at the 104th Y down and across from me as a youth counselor in a tiny room she populated with a subset of her extensive Limoges collection and an AM transistor radio. … The only station she listened to on her transistor carried Top 40 from 5 years ago, exactly synchronized to the day. But after nine it switched to an all-weather talk station, with open lines and a vocal DJ with an affected lisp (”The Cumulocumber Hour with DJ Randy Steed.”)

I could never tune to it regularly as my corner apartment fended off high-hundreds kHz through the snaked path of alleys and rusty fire escapes but she exclaimed at times to be in love, serious love, love past an eyelash with a regular caller DJ Randy knighted “The Criminal.” The Criminal would call (presumably from some plate-reverb chamber that made his voice seem to sit atop the station’s bandwidth) to interrupt the usual discussion of upper-atmospherics and Coriolis controls with a meterological prediction for the next day. At first DJ Randy tried to cut him off, the house rule “Don’t Predict—You’ll Contradict” spit through his lavalier mic. But The Criminal persisted. Eventually other regulars (Sammy G, Marcus the Baker, Dr. Saul, Ph.D. from an Ivy League University) started keeping score and found a mystifying correlation: The Criminal was always wrong. If The Criminal said it was going to snow, it wouldn’t, with one-hundred-per-cent accuracy. If he said it wasn’t going to rain, it would, every time. DJ Randy brought this up to him one day, with characteristic flair: “Criminy, I give you this: when you’re wrong, you’re right. I know our networked friends” (Randy was positive that his silent listenership included the local faces of meteorology—the network weathermen—) “have been taking notes, and I don’t blame them. But don’t you look out the window?” and The Criminal, sighs ringing around an infinite response, boomed “The sky I see is always true.” And hung up.

I can’t say I blame Christiana for the draft she feels when that voice cuts through the static —

The Rainer Buchty Ratio [archive]

The original “Web2.0 AJAX Popup” was the amazing Rainer Buchty’s Create your own customized SQ80 OS V1.8 version (CYOCSOV), online since at least 1998. Those were heady times, when a reluctant genius could release a Web Application that provided a real value-add for Ensoniq SQ80, ESQ-1, or ESQ-M (NOT SQ1) owners. CYOCSOV (too many letters– has to be “four letters, many vowels” — let’s say SqaT –) performed the valuable Web Service of generating a new firmware for these three hybrid analog-digital synths.

When you’re an electronic musician, you always want to know that your stuff can sound different from other people’s stuff. It only took $200 and a Western Union fee to get my ESQ-M and enabling the “Hidden Waveforms” checkbox in SqaT sounded like the ticket. Kid606, Cex, Luckykitchen, Unagi Patrol, Zammuto, Colognib, Lexaunculpt, Data”chi, Cathars– don’t mind me as I take a trip down 1999 indie IDM lane– those guys would be proper FLUMMOXED. I’d get up there at Brownie’s on a Wednesday and show Toddy-Rock what was who. Maybe someone would come to the gig.

But the SqaT runs up to the eponymous “Rainer Buchty Ratio.” When you make something that people are going to use, you need to compute some variant of the following equation:

RBR = 1 – (p_c * p_k * p_h)

Where p_c is the probability that someone would think your thing is cool, p_k is the probability that someone has the know-how to set up and operate the thing, and p_h is the probability that someone has the hardware / tools necessary to use your thing. The RBR is the RBR because the SqaT has the highest RBR ever, We need a normalising metric as most Things squash up on the top, so we set the RBR of SqaT to 1. Not a true probability, and I don’t think a true RBR of 0 exists. SqaT’s p_c is not bad, at least for his target market, and let’s face it, it remains one of the coolest things on the internet. But the p_k and p_h are dreadful. I had an ESQ-M, but hell if I knew what to do with the OSLOL6legz file that thing spit out. Helpfully:

download the patched images and burn them into 27C256 EPROMs to replace your current OSLO and OSHI EPROMs.

Not only did you need a relatively obscure synth and the desire to access “hidden waveforms,” you had to have an EPROM burner and the ability to pop open your case and swap the chips. God knows if they were socketed. By the time I did all that, Push Button Objects would have released four 12″s on SKAM, all with SimTunes run through an underwater spring reverb.

I often come back to the SqaT when I work at The Echo Nest. As we near “phase 1 completion” I faint slightly at our RBR. We can start with the high number: “How many people like music!” But with every decision you make in a company, the RBR grows slightly. You can only hope that your p_c is off the charts. Sometimes, even when you’ve never picked up a soldering iron, those Hidden Waveforms call you in like a 7-bit siren to the creased bindings of a Forrest Mims book.

Pushpin is Real [archive]

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.


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.

Armed Forces in Alphabetical Order [archive]

An enormous global pet peeve since Digital Music collapsed from long unsegmented strings of PCM into inodes on a filesystem is Armed Forces in Alphabetical Order. The first ID3 spec, meant to associate the audio-only information in the MPEG stream with some “real world” characteristics, was pitiful: audio gets 1MB per minute but the concordant ground truth was allowed only 128 bytes. We allowed 30 for artist, 30 for album, 30 for song title, 30 for ‘comment,’ four for year, three for a header, and one tiny byte for genre (I guess they got one thing right, anyone who ever disagreed with me on the futility of genres need only to glance at the original genre specification, which thoughtfully included an entry for “Primus.” It looks like they had room for about 108 more artists, I could have given them an ordered list.)

I can deal with a song called (What’s So Funny ‘Bout) Peace but I could never brook the destruction of the album order. My 2000 Nomad Jukebox software sometimes added track numbers to the beginning of the file name but it was a rock tumble if my various plastic MP3CD players would latch onto that helpful clue. The worst bit is that it would always trick you: sometimes filesystems would put the “(What’s So..” at the end, so you’d start with the normal Accidents Will Happen, pleased with the world. But instead of Senior Service you’d then hear Big Boys, and you knew there was some engineer staring at a hex editor who never, and I promise never, had any romantic trouble or maybe in general just hated music?