I was a MA/MST student at Stanford's Center for Computer Research in Music and Accoustics.
This is my weblog.
Click here for my main page.
I finally got a bit of time to do some programming at home for fun. I started off by generating bandlimited square and triangle waves for use with MilkyTracker. I've been wanting to track a module for a while now and this is another step towards getting my instruments ready. I used simple additive synthesis in Octave. MilkyTracker supports sixteen samples per instrument, so I generated sixteen different bandlimited waveforms which each could scale over six notes. The bandlimiting was set so that the highest harmonic was below half the final output sampling rate for the highest note in each group of six. Tim Stilson and Julius Smith wrote a paper on bandlimiting that had a good survey of other techniques as well. Making pulse trains with different duty cycles isn't as straightforward to do with additive synthesis; at least it's not as clear to me. I might try some of the other techniques if I can't get this to work out. Still definitely a work in progress but once I get something good I will try to write a tutorial and of course I will make some music (retro chiptune style). The paper noted that pitch error should be less than one tenth of a percent in order to be imperceptible. I was able to control the error to some degree by adjusting the sampling rate of the samples I generated (which in turn changed the number of samples that were generated per period). I'm not sure if MilkyTracker is doing some compensation for me, but they sound pretty good when I play them against other pieces of music. After that I threw together a simple effects chain in ChucK and re-wrote a polyphonic MIDI wrapper to the STK instruments that are built in to the language (forgot to copy my development version before I left the States). Having a more powerful laptop means I can run more effects, and have polyphony greater than 8, even with the standard kernel! It was a lot of fun to play around with. I've really come to like how easy it is to throw things together in ChucK. Its live-coding focus really shows. I also bought the SuperCollider book and have been meaning to dig into it at some point. SuperCollider is another computer music language, with a great history and large userbase. People from CCRMA have started a small group for going through the book, but since I'm in a different timezone I haven't been (virtually) attending. Still, it seems like it might offer a powerful way to think about some computer music concepts so I want to give it a shot. It's good to have various languages and APIs to tackle different types of problems with. ChucK is good for rapidly prototyping and time-dependent interactions. Faust is good for designing filters, and as I have learned at CCRMA "everything is a filter." And for things that are worth the extra time, manual LADSPA/DSSI/VST/LV2 (the last of which I have yet to really dig into) can provide something more "packaged" and efficient. Really what I feel like I'm missing the most is a higher-level compositional environment. I like Rosegarden a lot, but using a MIDI sequencer imposes certain constraints. Module trackers are great but I would say they have an even stronger influence on how the process feels. Full-fledged DAWs like Ardour or Pro Tools are nice for working with recordings but have limited synthesis control ability. And doing things manually in code, even in ChucK, can get pretty tedious. Of course, all of these are appropriate for certain types of problems or compositions and not for others. I still feel like there is a problem domain that I don't have a good tool for, and I'm hoping that SuperCollider can fill that gap. In the end we are all forced to use the best tools we have available (or create our own). So it's always good to know about more tools. And to use them to make music.