q: what's this site all about?

a: this site contains information on the music i've made with DSPs from Analog Devices, primarily with the ADSP-2181 and ADSP-2187N processors, along with information on the musical development environment i designed to support construction of new music. some of of the latest development on this project (specifically my collaberative work) are also contained here. this page is dedicated to music i've written and the development environment i've created.

i also have a page for my work on the Sony PSP in creating a sequencer/synthesizer i call PSPSeq.

q: what's a DSP?

a: a DSP is similar to a microprocessor (like a pentium/athalon/whatnot) but specially designed for processing data very quickly and efficiently.

q: how do you write music for a DSP?

a: well, before you can write music for a DSP, you need to have a circuit board with a DSP on it, along with a method of writing code which it can then execute. i started by working with the ADSP-2181 EZKIT LITE. eventually i made some friends at the MIT Media Lab, and we designed a new board with a faster processor (which we call chiclet). as for actually writing music, thus far it is all done in assembly language. when we move to a more modern processor, it will be a mix of assembly and C.

a DSP is a blank slate, just like any microprocessor. fucntions are written to generate different sounds (wavetable generators, noise generators, karplus-strong, etc etc), along with effects and methods to sequence sounds through time. at first this was done in a horribly ad-hoc "methodology", though eventually as i learned more about building an environment for writing music i developed a framework and method for working much more quickly and safely. the environment is called SynDevKit, and hopefully will be available shortly for anyone to experiment with.

q: eek! why would you write music like this rather than on a computer using regular compositional software?

a: many reasons.

a) by writing everything from scratch it forced me to really try to understand what makes music work, both with the individual sounds and the composition. when i was writing music on a PC i often felt like an "assembler of curious sounds" rather than a composer with some level of control.

b) while programs like reaktor, cSound, and MAX/MSP do give a level of control similar to what i've made for myself, i enjoy working on simpler platforms like embedded processors more than on PCs. having concrete limits (all signal generation must happen in real-time, extremely small amount of available memory) helps give me a bit more focus to my work.

c) often times i'll make mistakes in coding a generator or effect which will be more interesting than what i was actually aiming for. these sorts of error-filled functions most likely don't exist on PCs. additionally, i can more safely get away with all sorts of dangerous bugs such as buffer under/overflow errors. doing this on a PC is either guarded against, a quick way to crash an OS, or seen as behaviour analagous to a virus.

d) i'm interested in applications of portable generative/algorithmic music. you could have a song whose sounds are controlled by ambient temperature, light, walking pace... most anything for which sensor exist. synchronicity between music and the rest of the world is a powerful and rare thing & i'd like it to happen a little more often in my life. :) a DSP board can run for hours off of standard batteries and can fit in your pocket, where generative music on a PC has spatial limitations.

e) one of our long-term goals is to develop the first-ever hardware/software music release. because of this, we needed to design our own hardware to serve as a platform for the music we write.

f) i program these processors for a living so it's natural for me to try to adapt what i've learned there into projects which are personally intruiging.

q: this is neat! how do i get in on the fun?

a: first off, you will need a board with a DSP. unfortunately, the hardware that was designed at the MIT Media Lab is not currently avaialble for general consumption (we have little desire to become tech support gurus). however, i am currently working with third parties who design similar DSP development boards so that a complete hardware/software strategy and platform will be available for intrepid DSP developers. information on this is forthcoming soon... i promise!

another option is to use the ADSP-2181 EZ-Kit Lite. this is an older DSP board and runs at approximately 40% the clock speed of the newer DSP hardware. however, if you already have an ADSP-2181 EZ-Kit Lite, this is a no-cost way to determine if SynDevKit is good for you. any code that you write for SynDevKit targeting the ADSP-2181 EZKit Lite will work on newer DSP hardware without any changes.

for more information, check out the SynDevKit page.

return to main