Archive for Linux

ChucK: Initial Impressions

I’ve been intrigued recently by a newer sound programming language, ChucK. I originally heard about it via an NPR piece on the Princeton Laptop Orchestra (PLOrk), which is just a cool idea in and of itself.

ChucK is, thankfully, being developed for all 3 major platforms, and there are versions of its smaller IDE, MiniAudicle, available for Linux, OS X, and Windows. Its development community is quite active, and the documentation is substantial without being overly-technical. ChucK’s concept and approach is not entirely dissimilar from that of SuperCollider. Though it is still in heavy, early development, and certain language features are broken or as-yet-unimplemented, I see a great deal of promise here. The code is released under the GPL, boding well for its ongoing development and expansion. There is a GUI control (sliders and such) package, but this only works on OS X.

I found that MiniAudicle was extremely easy to use and understand, with a crisp, simple interface. Language syntax is, to my eyes, straightforward and clear. I was modifying sample code within minutes, toying around for some time before even beginning to read its excellent documentation.

Other resources:

I tried to compile MiniAudicle on Ubuntu Intrepid, but this yielded only a slew of cryptic error messages. On, the other hand, there’s a working command-line-only ChucK package compiled for Jack in the repositories, so it’s no great loss.

I’ve been working on a ChucK class to generate chord progressions based on a flowchart. One attractive thing about the platform is that its midi out facilities could let me feed this kind of robo-improvisation to a VST host or Reason instrument. Or, I could use its synthesis engine and feed this to effects, via Jack.

When I reach a point at which I think the code might be of use for others, I’ll likely release this under the Creative Commons. Stay tuned.

SuperCollider on Ubuntu Studio: Success!

After some sessions using JACK to route audio from SuperCollider and other programs to effects, I must say that I’ve really enjoyed using Ubuntu Studio. Setting up JACK’s sound driver parameters was the main hurdle, but the Ubuntu documentation site helped me out for the umpteenth time. I used the settings in that how-to guide as a starting point, increasing the Period and Buffer sizes until I got no XRUNS, accommodating my sound hardware at a respectably low latency.

If you want to use SuperCollider, PureData, or similar software on Linux, I strongly recommend using a generic i386 installer, as opposed to a 64-bit kernel, even if your CPU can handle 64 bits. SC’s client will not run on a 64-bit system, Pd seems to have array bugs, the Flash player may not work, and some other sound software has issues with the amd64 distros. I actually went with the amd64 Ubuntu Studio release before giving up and re-installing with 32 bits. (As an alternative, you can run these programs in a 32-bit chroot, but this will probably entail long-term maintenance/upgrade difficulties in exchange for the near-nonexistent benefit of running a 64-bit OS. I could not justify the time and compatibility problems.) Once I installed the 32-bit version of Ubuntu and the Hardy SuperCollider packages, I was ready to go, with even the internal server functions working.

One facility of JACK is the ability to route each program’s inputs and outputs to each other, much like a patch bay. With all of the audio processing tools, including LADSPA plug-ins, that come pre-installed in Ubuntu Studio, I had quite a bit of toys at my disposal. Routing the outs from SC to FreqTweak produced some particularly interesting sounds suitable for real-time manipulation.

I’ll post some audio files soon to share results.

Unbuntu Studio install

So, after having a little time to audition Ubuntu, I decided to resize a Windows partition and install Ubuntu Studio. (I actually used the Ubuntu installer to re-partition, after some frustration with abortive efforts to create a GParted LiveUSB. Using the Ubuntu installer went off surprisingly well and easy, and, thankfully, I didn’t lose any data on the NTFS partition that donated the space.)

The installer for Studio is not nearly as slick as the Ubuntu install. It’s a text-based installer, which looks positively retro these days; as a former Slackware user, I was actually amused by this, at first.

I also had a serious problem. The Ubuntu Studio installer choked at the “scanning the mirror” stage. I waited an hour before going to bed, assuming it was working with no indication of progress. When I woke up this morning, it was still stuck at the same point. After reading a forum post about one user’s similar problem on an older release of Ubuntu, I switched to another virtual terminal and killed the installer processes (the last 3). This caused the installer to get back on track, asking what general sets of packages I’d like to install. Eventually, the install completed without further incident.

I had previously tried installing a number of the Ubuntu Studio packages, including the realtime Linux kernel, on my Ubuntu install under Wubi. Disk space quickly became an issue; though a virtual disk was in use, it seemed non-trivial to resize it, and moving /usr to a new virtual partition seems to have failed. I was not particularly impressed at the cryptic failure messages from Synaptic; I imagine a newbie would be positively bewildered. More graceful and obvious errors would go a long way here. On the other hand, I did create a fairly small virtual partition (only 5G) in the first place.