Running Boodler under Ubuntu
Recently I heard back from Topher, a fellow Boodler who had asked me some time ago about some difficulties he’s been having running it under Ubuntu. While I have a PC here that dual-boots to Kubuntu 6.06, I confess that Gentoo is my desktop distro of choice, and Boodler seems to co-exist nicely without requiring any extra effort on my part.
Well, unfortunately the same isn’t true for Ubuntu. What Topher wanted to do, in effect, was run Boodler using the ALSA driver so it would co-exist with other audio applications, so that he could listen to music over a background of sound effects, for example.
The problem we both encountered was in attempting to compile Boodler to work with ALSA—a bunch of unresolved symbols caused the compile task to fail. Using the OSS driver on the other hand works just dandy… except for the part where Boodler requires exclusive access to the device.
Fortunately, with a little digging and experimentation I’ve come up with a nice and easy solution. Here’s what I did:
sudo apt-get install alsa-oss cd /path/to/boodler export BOODLER_SOUND_PATH="/path/to/boodler/boodler-snd" export BOODLER_EFFECTS_PATH="/path/to/boodler/effects" python configure.py --driver oss aoss python boodler.py owstorm.RainForever
The fix is surprisingly simple: I compile Boodler to run using the OSS driver, then call the Boodler script with the “ALSA-OSS” wrapper application, which redirects OSS output to an ALSA-based OSS emulator. I can start a Boodle going and listen to music from Amarok at the same time with no problems.
If you’re going to be using Boodler with relative frequency, save yourself some extra hassle by creating a bash script to run it with the aoss wrapper for you.
Incidentally, if you’re wondering why you can’t compile Boodler with direct ALSA support, the reason is simple: the ALSA library has changed significantly since it was written, but Boodler’s support hasn’t kept up—Unfortunately Andrew hasn’t been able to keep up development as he’s been busy with other priorities (like keeping a roof over his head). OSS on the other hand is deprecated, so it hasn’t undergone any development changes in years.
Dude, you rock. :)
Thanks, Topher! It was my pleasure. I only wish I knew more about Ubuntu so I could have helped you (and any other Ubuntu Boodler users) out sooner.
It’s also possible to set up ALSA so that your OSS emulation is always mixed with whatever else ALSA is outputting at the time. Instructions here: http://alsa.opensrc.org/DmixPlugin. May not work with all cards or with all sound samples.