Down in the Trenches

The trouble with free software is, sometimes you get what you pay for. Today I’ve been trying to get Csound to read real-time MIDI input (from a physical keyboard) and play notes or respond to slider moves. No luck whatever.

Just to be clear — the reason I’m tying myself in knots over this is because Csound is incredibly powerful and produces amazing sounds. It’s just user-hostile, that’s all.

I posted a long “help!!!” message to the Csound mailing list, and got a couple of suggestions from seasoned Csounders, but the suggestions only sent me wading deeper into the quagmire. “Try running Csound from the DOS command prompt,” I was told, “instead of using the GUI front end.” So I tried that. I know barely enough about the command prompt to launch Csound at all, but I managed it. A variety of non-musical events ensued.

With one test file, I could play the keyboard and see messages in the DOS window that indicated the notes were being received — but I didn’t hear any output. And while this file is supposed to run for an hour, allowing uninterrupted real-time input, it closed after a few seconds. Another test file kept running, but failed to respond to MIDI at all. I don’t know what the relevant differences were.

When I went back to the GUI front end, I found I had a new problem. I had created a musical sketch, which played just fine yesterday from the GUI. (This sketch had no real-time MIDI input — it was just rendering to the computer’s audio output interface.) Today, the same file produced only horrible grinching noises. The one thing that had changed in the interim was, I switched from a USB audio interface to a FireWire audio interface. Both were set to the same sample rate, 44.1kHz.

Possibly the interface’s audio buffer size was different. But when I increased it from 256 samples to 1,024 and tried running Csound again, the grinching noises didn’t change.

The real issue here is not technical difficulties. Technical difficulties are to be expected with almost any music software. This week, for instance, I needed to move the large sound library for Camel Audio Alchemy to a different hard drive. I edited Alchemy’s config file, but that didn’t help. Eventually I tried reinstalling Alchemy. That worked.

Another example: The reason I switched from the USB interface to the FireWire interface (both of them slightly obsolete units from M-Audio) was because the USB interface was producing little clicking noises every once in a while.

Oh, and here’s another one from today: Spectrasonics Omnisphere worked fine a few months ago, when I reviewed it for Keyboard. Today I was getting buffer underrun errors — big pops and clicks when I played even one note. That was happening, it turned out, because I had the MIDI keyboard USB’ed to the same hub as the hard drive containing Omnisphere’s library. When I put the keyboard on a separate USB bus, directly into the computer, Omnisphere was able to read its files from the hard drive while playing notes.

As I said, this stuff is normal. No, the real issue with Csound is … well, there are several issues. First, Csound’s technical support is in the form of a mailing list. Knowledgeable people read the emails and respond to them, but they’re unpaid volunteers. And precisely because they’re knowledgeable, Csound works perfectly well for them! When it comes to diagnosing things that are going wrong with my system, all they can offer are educated guesses. Second, Csound is cross-platform, and a good-sized chunk of its user base comprises Linux users. They laugh at Windows, and they laugh at GUIs in general. They’re used to configuring long strings of options from the command line. As a result (third), reading the Csound documentation requires a B.S. in computer science.

I know what a path is, for instance. But I would have not the foggiest notion how to set a path, or find out what paths are set. I’ve done it several times in the past, when instructions were provided, but I don’t remember how to do it. And the Csound documentation does not explain this stuff, because, well, you’re a Linux user and you know how to do all that. If you don’t, ask your instructor.

What? You’re not using Csound in a college music lab? You’re an actual musician? Good luck, fella.

This entry was posted in music, technology. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s