Linux-based audio toys


Lately I have been playing with the Planet CCRMA audio metadistribution for Red Hat and
Fedora.

Stanford’s Center for Computer
Research in Music and Acoustics
is a very well-known computer
music institution, and they have set up an apt-rpm repository
which features two metapackages: one contains a low-latency (and soon,
preemptible) Linux 2.4 kernel and ALSA packages, and the other
contains over a hundred audio applications, including

  • csound software synthesis system
  • Ardour multitrack hard-disk recorder
    and DAW

  • Rosegarden MIDI sequencer (a
    Cubase clone)

  • Hydrogen drum machine
  • a CM/CLM/CMN environment
  • ecasound audio processing system
  • JACK patchbay

all built to interoperate. It also includes ALSA- and JACK-enabled
versions of common audio libraries and utilities like xmms and Ogg Vorbis. Two
“apt-get install” commands install the whole shebang once apt is
properly configured (which, on my multi-purpose and multi-repository
system, required pinning the CCRMA repository at a higher priority
than any other). If you want to dedicate a machine to audio, CCRMA
also has a Fedora mirror so you only need to deal with one
repository.

The Planet CCRMA docs include a full
list
of included software.

This means that I can finally do a bit of home recording, but even
better, it means I can start playing with all of the toys I was
playing with when I was studying computer music
at McGill. Since I left that program because of organizational
and life issues, and not because I didn’t enjoy computer music,
this is a Very Good Thing.

One thing that was missing from Planet CCRMA was the
MAX/MSP environment. I was very pleased to find that
despite the original having gone commercial, that
IRCAM (where MAX originated) has maintained an open-source version of
MAX with a Java frontend and C backend which is reasonably portable,
called jMax. I’ve had a bit of trouble getting it built
but I’m looking forward being able to pull out my old MAX patches and
start up where I left off in 1996.

All of this combined with my new guitar (which came back freshly set
up from Brian Dubbledam‘s
shop at the Ottawa
Folklore Centre
tonight) means that I have a new (well, old)
hobby building, and that you will probably be subjected to audio
soon. I make no claims of quality!

All in all, this is the best example I have seen yet of open
source software meeting the challenge. I have obtained for free the
equivalent of tens of thousands of dollars worth of audio software on
proprietary platforms, and I was able to get it all interoperating
easily thanks to the efforts of the CCRMA — efforts which would not
have been permitted or even possible if the packages were closed.

One problem I am going to encounter immediately is that I have only
an onboard (SBLive, sigh) sound card and no mics. While eventually I’m
sure I’ll accumulate a couple of decent microphones, appropriate preamps
and direct boxes, and an outboard audio interface for my PC, right
away I want to get away with the minimum investment necessary to get
sound from my guitar amplifier (no direct out) and a bass amp
(either no direct out or balanced, so practically no direct out)
into the sound card. Suggestions are welcome. I’m kicking myself for
having thrown out an old NAD tape deck with bad motors and a perfectly
good preamp section a couple of weeks ago.


6 responses to “Linux-based audio toys”

  1. Radio Shack (or canadian equivalent!)1/4″mono to 1/8″ mono adapter.
    Plug instruments directly in (no amp).
    Its easier to get away with this on the bass than on the guitar.
    You can plug the output of any stompbox you have directly in this way also, but you should not plug the output of any amp into your comp. If your guitar amp has an effects loop you could probably plug the ‘send’ into the comp safely, as the signal has been amplified at that point, but not to the point of being ready to drive speakers.

    My whole problem with Linux as a music platform is the interface. If you find a good audio card that is Linux-friendly, let me know!

  2. Hrm, you sure? Levels and impedances don’t seem to match up in my head. Guitar pickups have a huge impedance (somewhere in the range of 500Kohm!), so without a matching impedance on the other end it’s going to come across quiet and dull, since the soundcard side is going to be somewhere around 500 ohms. (That’s the same reason you wouldn’t plug a guitar straight into a board — the DI box handles impedance matching primarily and gain a far second.)

    I might be able to get away with it on the bass because it’s got an active preamp on board, but even then I suspect it’s designed to provide the sort of load that a passive pickup would provide.

    It’s been a long time though so I could be misremembering or miscalculating. Or am I stuck thinking about power transfer instead of voltage transfer?

  3. Woops, missed the second part of your comment, sorry!

    USB audio seems to have taken care of the “get the interface out of the noise-machine” solution for Linux. The kit from M-Audio comes highly recommended, and I know that a couple of people on the PlanetCCRMA mailing lists use the Quattro. Basically, though, anything that complies with the USB Audio Class Definition should work.

  4. I don’t know about the math.

    Bass is commonly recorded direct (though usually well-compressed). Guitars tend to not be recorded direct because they sound like ass that way, especially if you’re running through a distortion pedal.
    It is not preferred way, and you certainly would not want to record this way ‘for keeps’, but it should do in a pinch if you need to record some ideas in.

    Also: strike the whole audio driver thing. Some smrt monkey decompiled the drivers for the unused 8-channel audio card currently sitting on my shelf. When I find some time (HA!) I may have to fiddle with this stuff…

  5. Yeah, but when you record a bass direct, you go through a DI box (like this) to match impedances. In any case, it looks like I’m going to have to buy or borrow some kit to make this all work. I’ll probably just go cheap PC or karaoke mic to begin with, and maybe solder up an xlr-to-1/8″ cable to use the DI on my good bass amp.

  6. I’m using an M-Audio Delta 44 PCI card (4in/4out balanced or unbalanced 1/4″ jacks) with very good results under Planetccrma, and if you play with the jack paramaters you really can get the latency down under 5ms, suitable for using as a real-time guitar or mic effect. Jack-rack works like an effects rack, although the quality of the included effects in the version I’m using (which I admit is almost a year old) is hit and miss.

    I’m curious about the USB setups – does going over the serial bus introduce extra latency/bandwidth limitations? What if you share it with a mouse/keyboard/whatever?