Log in

No account? Create an account
pinkie pie


Rich Lafferty's Journal

(mendelicious mendelusions)

Previous Entry Share Flag Next Entry
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.

  • 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!

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?

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...

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.

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.

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?

  • 1