In order to bring you more in depth coverage on how the tools behind the blips and bleeps are made, we asked musician Lazerbeat to sit down and chat with some of the innovators and creators of the scene. Here is part one of his two part interview with PSPSEQ developer Ethan Bordeaux. PSPSEQ is a “a free homebrew application for composing music on the Sony PSP handheld game system. PSPSeq contains both realtime synthesis and sample playback capability, along with multiple FX modules of widely varying types for modifying instruments in countless ways.”
LB: So, Hello Ethan, thanks very much for doing this.
ECB: You’re welcome. Happy to get the good word out on PSPSeq.
LB: Before we get into the details of PSPSeq, tell us a little about your background with programming.
ECB: Sure no problem… my day job is as an embedded systems programmer. I was hired by a company called Analog Devices where I first started off supporting their DSPs and then later on was transferred to a group where I wrote software algorithms for them, specifically for cell phones. Been doing that for the past 8 years or so. Mostly I work on speech and audio processing algorithms. It’s fun but when you’re doing that kind of work you are only writing a very small piece of the overall system. I wanted to do something where I owned the entire project; audio, UI, documentation, etc etc.
LB: Did you start programing as a hobby or was it something you learned specifically with a view to a career?
ECB: Well I’ve been into computers for a long time but didn’t do that much programming when I was a kid. Or, more precisely, I used to type in lots of programs from computer magazines but I didn’t really understand the details of how everything worked. I went to school (Tufts University) to study engineering but did very poorly in my programming classes so I figured I’d be doing more hardware rather than software work. However, when I got my first job out of school I found I was pretty decent at very low level programming (assembly for embedded systems) so I tended more and more towards that side of things once I was out of school. I think it comes down to that I like working on systems where I feel like all of the details are in my grasp, rather than real high level programming where the underlying hardware is abstracted away.
LB: What machines did you start out on as a kid?
ECB: My first computer was a TI-99 4/A, back in 1983. I had that for a few years and then I had an Apple IIc and later an Atari 1040ST.
LB: I guess the sound possibilities on the first two were fairly limited but did you get into tracking/music scene at all on the Atari?
ECB: Oh they’re definitely limited on the TI and apple. I don’t remember the details of the IIc’s sound chip but the TI has 3 channels of square(?) waves and a noise channel. Very little configurability. Though I do think about trying to make something interesting with it from time to time (I’ve held onto my TI and Atari computers, they’re under my desk right now). As for the Atari, I played the piano for a few years and had a Yamaha MIDI synth plugged into it. However, it was purely wavetable so there wasn’t much fun that could be had for it. As for the tracking scene, I wasn’t involved at all. I didn’t even know it existed. I wasn’t a part of the BBS culture. The only real audio software I had for the ST was (I believe) Dr T’s music studio, which I found utterly baffling at the time. If I ever messed around with music it was with more popular and less powerful audio apps like The Music Studio or Music Construction Set.
LB: So when did your interest in programing turn towards creating music software?
ECB: It really got started back in 2001. That was right around when I was hired to do primarily software engineering for my job. I felt like my programming skills were a little weak so I wanted to find a project I could work on on my own. I had a little DSP development board called the ADSP-2181 Ez-Kit Lite and thought it would be fun to try writing some audio algorithms for it. I had been into electronic music for years and tried making music with some PC tools like Fruityloops but didn’t have a lot of luck. Anyways, I just started writing some audio synthesis and effect functions for the Ez-Kit and eventually had enough options that I decided I’d try and create a sequencer as well so that I could control them to make music. That whole project took up a lot of my spare time for a couple years but I made some interesting music and did some work at the MIT Media Lab as well. The whole experience showed me that I really liked making synthesizers and that I had a bit of a knack for it as well.
LB: I’m very curious about the DSP development but first I have to ask, what electronic music were you listening to?
ECB: Mostly IDM; autechre was/is a favorite of mine and I dug a lot of the bigger artists on warp and schematic. Also I listened to some ambient, industrial, and a bit of power noise.
LB: Autechre and Warp is a good pedigree alright. When you started programming the Ez-Kit, did you have any experience with other hardware of software synthesizers or was is a totally new field?
ECB: Not a lot. I’d been playing around with a few PC apps like Fruityloops, Acid, Vaz, and a few others I’ve forgotten the names of for a couple years. Nothing serious and I never really made much music that I liked, but I at least had some idea of what features should be in a synthesizer. I also had a Nord Lead 2, but I ended up using that more to debug my own synthesizer and come up with ideas for features rather than to make music.
LB: Using a Nord Lead as a debugger is a new one on me, what were the first synths you created for the Ez-Kit?
ECB: Hah I’d have to go through the first few versions of my Ez-Kit software to see what synthesis options came first! I think I probably played around with Karplus-Strong (plucked string) synthesis first. There was already an implementation of that algorithm for the Ez-Kit because it’s really computationally cheap and it sounds pretty interesting. Later on I adapted it to make it a lot more flexible after reading more about the algorithm in Curtis Roads’ Computer Music Tutorial. Also, I wrote a simple wavetable playback function and then created tables of basic waveforms (sine, triangle, saw, square, etc) so I would have access to those types of sounds, and of course a noise generator. Gotta have one of those. It was all pretty basic stuff, but one neat thing was that because I had total control and visibility over all the software, I could do weird things like mess with intermediate variables to create sounds I’d never be able to make with a PC app.
LB: It sounds really interesting, did you produce much music with it and more to the point can we hear it?
ECB: I didn’t make a large amount of music, but I do have about 10 songs here… http://dspmusic.org/music.html. as an aside, I want to mention my favorite effect algorithm I made for this platform. It was a function that did nothing other than waste time. You could program how many cycles it would waste and that was it’s only purpose. The reason you’d do this is because you could cause all sorts of weird buffer overflows by making the audio generation functions not finish computing before a new set of data was requested. I used that function in the “Rivergods7” file on the music page I mentioned. That’s the sort of control I had when working on dedicated DSP hardware that you really couldn’t expect from a PC app.
LB: This might be getting a little ahead of ourselves but did “probabilistic sequencing” made an appearance on the Ez-Kit?
ECB: Yes definitely. I don’t remember how I thought of it, but it was very useful when writing music on the DSP hardware. I had a very small amount of memory (16k program memory, 16k data memory) so I had to be very careful about what I used memory for. By using probabilistic sequencing I could play the same loop a bunch of times in a row and it wouldn’t ever sound exactly the same. This worked especially well if you had a bunch of tracks that all had some hits that triggered 100% and others that triggered less frequently. Also, the step sequencer allowed for each track to have a unique track length so you could have tracks that would go in and out of phase with each other. The whole idea was to do the most with extremely limited resources. That, along with the feeling of complete ownership of the music and underlying processes, was why I found that project so much fun.
LB: I must admit, I hadn’t heard of it before, have you seen it in any other music software?
ECB: Not personally, but I had heard that it does exist in a couple other audio apps. There’s been some discussion on the Renoise forums on whether or not to add that feature in there. I would not be surprised if I thought of it first, since I made use of it in 2001.
LB: That sounds like a reasonable guess. How do you move from the Ez Kit to the PSP?
ECB: First off, all of the software on the Ez-Kit was written in assembly, so it was a pretty big task to port it to C. But I wanted to do this because I felt like it would be fun to take that entire environment (which I called SynDevKit) and get it running on the PC. So I spent a few months and ported all the synths, FX, sequencer, etc etc, so it could run on a PC though again there was no GUI to interact with it. You would have to write functions to fill in the sequencer buffers and drive the overall song. In 2005 a good friend of mine (and fellow Ez-Kit hacker Noah Vawter) got a PSP and wrote his own sequencer for it called PSPKick. He really liked the development environment and the hardware so, for my 30th birthday, my friends all chipped in and bought me one. There was some debate between that and a GP2X but because I had someone local who knew the PSP and also it seemed like it would be a more popular platform even for homebrew, they went that way. Once I had that I knew I had to port SynDevKit to it and make a GUI, and PSPSeq was born.
LB: When you started porting were you doing it with the PSP in mind as a final destination?
ECB: Nah, I just wanted to develop my C programming skills and this seemed like a good project. Plus I didn’t want to lose all that work I put into the version that ran on the DSP, so it was necessary to get it into a common language. It sat on my PC for about a year before I had a PSP. I didn’t do very much with it on my PC, even though it was more flexible and easier to make music with it was more fun to get everything running on the embedded hardware. The only cool thing was that I could get a lot more polyphony on the PC; in general I could only get about 12-14 channels of audio on the DSP but it could easily be 100 channels on the PC. Of course it’s a lot harder to control but I made some nice dense soundfields just with sinewaves.
LB: I’m interested in what could have been GP2Xseq! The screen space is a little more limited and I would guess the machine is far less powerful, Do you think it would have worked in a similar way to PSPSeq?
ECB: Yeah it would have been similar, but there are more limitations. The screen is lower resolution, it has fewer input controls, and it doesn’t do floating point math natively. The last one is actually the big reason I don’t have plans to port PSPSeq to the GP2X. it would be a ton of work to get everything back using fixed point math.
LB: That so weird, I never even knew that nearly happened! Were you aware of any of the Gameboy music software like LSDJ or Nanoloop? Also was Piggy Tracker on GP32/2X about at that time?
ECB: I definitely knew of Nanoloop and LSDJ in 2005 – I have the nanoloop compilation that came out on Disco Bruit in 2002 and had given LSDJ a shot but was utterly baffled by it. as for LGPT, I don’t think I knew about it when I got started but I have vaguely kept up on the GP2X homebrew scene to see how large it is and what people are doing over there.
LB: What are your thoughts on the upcoming Pandora?
ECB: I’m interested in Pandora though at this time I’m waiting to see some reviews of the hardware and form factor before I make up my mind if I want to get one. It probably wouldn’t be too hard to port PSPSeq to that platform so if it seems solid and there’s interest and a decent sized user base I might buy one and get PSPSeq up and running on it.
LB: One final platform choice question, did the option of the DS ever come up?
ECB: Yeah I thought about it for a bit. I like the interface (dual screen, touch screen) and the fact that hacking it is simpler than the PSP. However, the DS doesn’t have nearly the horsepower of a PSP and it has a very specific audio output system that isn’t as general purpose as the PSP. I thought it would be possible to make a synth on it (and the DS-10 is proof of that) but it’s not as easy to do it on that platform. I do have a DS and a flash cart to write homebrew so I might try doing something with it in the future but no plans at the moment. Chances are if I did write something it wouldn’t be a port of PSPSeq but rather something specially tuned for that platform.
LB: The PSP does seems like the right choice then, do you remember the FW version when you got into PSP hacking?
ECB: I don’t remember what was mainstream, but I know that my friend who wrote PSPKick and pushed me towards the PSP helped find one that has version 1.50 FW on it. At the time I got started you needed that or 1.0 to write homebrew. I stayed on 1.50 for a really long time as I wasn’t interested in playing commercial games. Only in the past 6 months did I upgrade to custom firmware (running 3.90 M33 on all my PSPs).
LB: All your PSPs? How many do you have?
ECB: I have 4 right now. One for me and 3 for a project I’m working on. Top secret stuff. ;)
LB: Ok, that’s just to intriguing, you have to give us a hint.
ECB: Man I’m terrible at hints… Hmm, it’s not a new program or way to interface PSPs together. Just some plans for promotion and get more people aware of and using PSPSeq.
LB: Very interesting. I can’t wait for more news.
PT 2 Tomorrow covers more in depth descriptions of the PSPSEQ architecture, where the project is heading, and more about the upcoming PSPSEQ VS LITTLEGPTRACKER Compilation.
Lazerbeat is the working name of Tokyo based retro tech musican David Adams. More info on his music can be found on his website.