Interview with Robert Hamilton, Creator of q3osc

As a follow up to this article about the excellent q3osc musical environment built using ioquake3 I had a quick sit down with Robert Hamilton and talked about q3osc, ioq3 and everything in between.
If you haven’t heard of q3osc this will make for some great reading, after the break

Ok First off, why dont you tell everyone a little bit about yourself?

Sure, My name’s Rob Hamilton, I’m a composer and developer working mostly in the realms of interactive computer music. I spend my time building computer-based musical systems and then trying to understand how to best write music for these systems. I’m currently working towards my Ph.D at Stanford University in CA, at the CCRMA, which stands for the Center for Computer Research in Music and Acoustics, a center for computer music and audio research.

If you had to describe qsosc in as few words as possible to someone who knew nothing about development, what would you say?

q3osc takes the gaming world of ioquake3, with all the motions and gestures which gamers are used to making – like jumping or shooting a plasma ball – and outputs the information from each of those motions and gestures to a program which controls sound and music. This turns any motion a gamer makes, whether he or she is running across a map, jumping or crouching or shooting – into a way to control an instrument.
And with the built-in networking capabilities of ioquake3, gamers or musicians from around the world, or just around the room can all make music together.
We just did a performance last night here at CCRMA with 5 laptop players, a projector and 5 hemispherical speakers (6 speakers in a small dome) where players shooting around the map would shoot sound around the concert hall. It was great!

So how did you get interested in using a video game to generate music?

Well, I have a long life history of loving fps shooters, starting back with Doom and Duke Nukem as a teenager. About 5 or 6 years ago, I was studying music and computer systems at the Peabody Conservatory of the Johns Hopkins University, and I heard about a project called q3apd, by multi-media artists Julien Oliver and Stephen Pickles. q3apd was a mod of the quake 3 code, I don’t think it was ioquake3 based at the time, that output user positional data using a very basic protocol called FUDI, developed by Miller Puckette for his fantastic Pure Data open-source audio processing language (PD) I didn’t have a chance to try it out until 2 years ago, when I made an 8 channel work for q3apd and interactive performers, where each performer would control aspects of the composition by running around a map I made.

What led you to choose the ioquake3 project as a starting base for q3osc?

After playing with Julien’s code, I wanted a fresh start, especially one that improved on the basic open source packages that ID had given us. I found ioquake3 and the great work you guys had been doing and it seemed like the logical starting place. For my work, it’s great having the flexibility of the quake3 engine with the great add-on features and optimizing that’s been going on in ioquake3 for all this time.
Also the knowledge that there’s a community working towards keeping this excellent code-base up and running and viable makes it worth investing time into projects using it. I’m a big fan!

How did you find working with Ioquake3 (ioq3)

So far, I’ve been having a blast. It’s a large code base, that’s for sure, so the learning curve was a bit steep, but I’ve gotten used to it. By looking through the code, I’ve been finding great new ideas that I’ll hopefully be able to explore in my continued development of q3osc.

What would you like to see in the future from ioq3?

I think that in the future for any game engine like ioquake3 that wants to stay viable and useful for its community, an emphasis on keeping the code up-to-date in a graphic, audio and network sense are extremely important. ioquake3’s adoption of ogg vorbis, and its advances towards 32-bit graphics I think are a great step in the right direction. Keeping an old engine like this looking and feeling new and current are the best suggestions I could make.
In a sense, I think you end up competing with newer large networked platforms like Second Life, especially for less game-oriented projects like my own.with the move towards these large networked software environments, essentially FPS without the S, like Second Life, you start to see a strange mixture of gaming features and community driven features in the software. I think as a gaming platform, ioquake3 wouldn’t need to expand into that world so much, but for the developers working on building interactive systems with less of an FPS gaming perspective

For reference, here’s Julian Oliver’s site
Do you have anything further to add for all the readers of

For the developers out there I’d just say keep up the great work. It’s really encouraging to see all the great projects people are putting out there on their own time for the community to enjoy.

Ok lastly, Tell me – What kind of music do you listen to?

Hah, most of the time, I can be found listening to a mix of Fugazi, Radiohead, Beatles and a mashup of 20th century electronic and acoustic contemporary music like the works of Iannis Xenakis, Karlheinz Stockhausen and Gyorgy Ligeti. I like it all, mixed up, just to keep things interesting 🙂

A video of the performance:

You can find more about q3osc and Rob here