2004-10-18 · in Ideas · 281 words

I've thought about doing video processing in occam before, but there's a much simpler application that also fits the model quite nicely: guitar effects boxes.

For those who've never encountered these before: various companies sell effects pedals that you can use to alter the sound of a guitar (or other electronic instrument). Each box has quarter-inch jacks for input and output, a few controls on the top, a footswitch to enable or disable it, and some circuitry to process the sound passing through it. These are typically very simple -- distortion, AGC ("sustain"), delay, echo, and so on -- but some companies offer pedals that provide multiple effects based on a DSP. Other audio devices also fit into this model; for instance, a mixing desk has many inputs and a few outputs.

I'd like a programmable effects box that ran occam. The user would be provided with a load of stock occam processes equivalent to "simple" pedals; they'd take channels of sound in and out and have some preset and alterable parameters. The user could then hook these together using some simple interface on a conventional machine and upload the compiled programs to the effects box, which would have a few minimal controls that could switch between effects programs and act as control inputs. The programs could also be run on a PC using a soundcard (or a software patchfield like JACK) for input and output.

Many of the effects processes would be trivially simple. The chief concern when doing audio processing is latency between the input and output; this should be much less of a concern with the KRoC runtime (and particularly on RMoX) than with multiple processes on a conventional OS.