Saturday, February 28, 2015

2015-02 Control surface for audio processing

I've been considering a sound processing language for a while. Looked at supercollider and liked it but never really did anything with it. Tried again recently and found chuck. I had a play and liked it. Not sure why I prefer it but it's something like: less elegant but faster to code.
The missing bit was an interface so effects and apps writen in chuck could be conveniently controlled during performance or production.
Found interface.js which can use OSC to send messages to any osc aware system/program (which chuck is) and has a constrained but easy to use way to build a panel of controls. These panels are accessed as web pages served by an included server so a tablet can access it.
Presto:  The knobs, sliders and buttons are all touch sensitive on the tablet and you have a versatile touch sensitive control surface that can talk to chuck.

Details follow:

Notes on installing chuck.
I use Fedora both 20 and 21 on two different machines with the CCRMA repo (CCRMA fed21 repo here) with:

       sudo dnf install chuck
       sudo dnf install miniaudicle

The standard packages seem OK.  ( I did build from source to try to fix the windows in miniAudicle not remembering their locations between sessions: got bogged down in QT, but the build was process was reasonable )
The way I use it is to start  jack (with qjackctl) then run miniAudicle.
You'll get an IDE, a console window (shows error, information and print type debug messages) and an execution control window (called Virtual Machine). Like this:
The doc's are a bit out of date for the osc stuff but  these examples are current and will set you right.
You start the virtual machine then use the IDE to edit and run code. Lots of good examples to play with in the link above. (you don't have to use jack: there's  miniAudicle-pulse and miniAudicle-alsa if it suits you better)
Update: Nearly there. A bit stuck on the OSC stuff and chuck keeps locking the osc message stream. Nuts.

No comments: