Code

If it was easy, everybody would do it. That’s a motto that I’ve found to apply to quite a lot of human endeavors. Playing the cello, certainly — but also putting together a portable, yet highly functional workstation for playing microtonal electronic music. (Portable because I have some devious idea about being able to take this music out and play it for people.)

After struggling with the concept for a few days, I may have a first, very rough approximation. I’ve found that Csound can respond to MIDI input on the MacOS with low latency and good stability. In Windows, it’s a little glitchy, at least on my system. I haven’t yet tested whether it will play multiple notes on complex instruments in the Mac without spitting up. We’ll see.

One advantage of Csound is that it’s free and cross-platform. Another: It’s a very sophisticated audio programming environment. Yet another: Csound doesn’t try to enforce a 12-notes-per-octave tuning. You can devise whatever strategy you’d like for deploying pitches. The downside is, to create synthesizer sounds you have to write code. Likewise with composing: You get to type an event list. This is not an instantly gratifying activity.

I’m starting to see why drone music is so popular — not among listeners, perhaps, but among composers. You can generate a long piece more quickly if there’s a lot of repetition. Plus, it’s easier to conceive of a piece of music as an entirely intellectual process if it’s drone-based. Trying to remember a catchy melody long enough to type it into an event list is just a wee bit awkward.

Still, with the plentiful real-time inputs to Csound, a drone piece could be made very interactive. Hook up a bank of sliders and then stop and start loops by assigning them to MIDI buttons or keys. Yeah, this could be interesting.

The problem of mapping microtonal scales to a MIDI keyboard remains. I’ve written a simple Csound routine to trigger whatever pitches I’d like from the keyboard, and I can remap the keyboard to different pitches instantly, while playing. That’s the easy part. The hard conceptual work is figuring out what combinations of pitches I want to play from the keyboard, in pieces that I haven’t even written yet.

It’s like the old gag about the furnace repair man. He comes in, looks at the furnace, kicks it a couple of times, and it starts. He then hands the homeowner a bill for $100. The homeowner says, “That’s outrageous! A hundred dollars? All you did was kick it. I demand an itemized bill!” The furnace repair man takes the bill back and writes on it, “Kicking furnace, $5. Knowing where to kick, $95.”

Remapping pitches to the keyboard: easy. Knowing which pitches to play, and why, that’s more of a challenge.

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

4 Responses to Code

  1. Hi Jim,

    A popular forum for microtonal discussion is “The Tuning List” http://launch.groups.yahoo.com/group/tuning/
    There is a wealth of knowledge and experience to be drawn from people discussing similar topics there (many of them are also on the csound list, too). If you become active on it, some of the less productive members may try to draw you in to their decades-old arguments, but they are easily avoided if you’re not interested.

    Cheers,
    ~ andy.f

  2. Yonatan says:

    I’m not very familiar with CSound, but isn’t there a way of programming it so that you can record your MIDI data using a MIDI keyboard controller, as opposed to typing the event list? (or maybe I didn’t understand what you meant?)

    • midiguru says:

      I’m not aware of any built-in MIDI sequencing in Csound. You could build it yourself, of course, since Csound is a programming language. But if you did that, you’d face two obstacles.

      First, your recorded data would be far more difficult to edit than a Csound score, because it would be stored in tables — naked lists of numbers, with no indication of what the numbers mean. And second, your recorded MIDI tracks would not contain any of the interesting nuances that can easily be included in a Csound score. A Csound score can include an arbitrary number of parameters for each event, while a MIDI keyboard performance is limited to note number and velocity.

      • Yonatan says:

        The advantage is that you would only have to build it once (and in a generic way), and you would benefit from it in all subsequent compositions.
        The table issue may be a bit problematic, but maybe your code can convert each number to a meaningful note.
        Regarding other nuances, you can add them after you play the keyboard. The keyboard will at least save you entering the notes and velocity by hand, plus it will give the tune a more natural feel compared to entering velocities manually.
        Also you can use the pitch bend, modulation wheel, and other controllers. Entering pitch bend values manually must be a real headache (I think you wrote about it once).

        I think it may be an effort worth investing, but maybe it’s just me…

Leave a Reply

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

WordPress.com Logo

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

Facebook photo

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

Connecting to %s