tremor-based alsaplayer?

Does anyone know of a simple, clean, ALSA-output ogg-vorbis audio player that links (statically or otherwise) against the tremor integer-only vorbis decoder? Here's why i want it:

I recently got a Linksys NSLU2 which i'm happily running debian etch on (with the sid kernel, thanks a million to the debian arm team!). “igor” is tiny, slow, fanless, silent, low-power ARM-based NIC/USB platform. It's plugged into a USB disk, and hooked into my network, NFS-mounting my music from a different server.

I recently added a USB audio adapter, which is working for basic stereo output. (getting the other 4 audo channels and the buttons on the USB device to work hasn't happened yet, but that's another weblog post, probably).

I can easily and simply play back the mp3s that i have stored, but i found i couldn't play back my ogg vorbis-formatted audio. Watching the state of the system with

vmstat 1

showed that playing mp3s (via alsaplayer, via libmad), \~25% of the CPU is spent in userland, and \~25% is spent in the kernel, leaving \~50% free for whatever else i want to do with igor. Not too bad for a wimpy 266Mhz machine with 32 MB of RAM.

However, when i try to play ogg vorbis files, the vmstat output is nasty: \~97% kernel, and the rest in userland. only the choppiest audio comes out. It's unacceptable, basically. On further review, i'm pretty sure that the problem is that libvorbis is using floating-point math, while libmad uses integer math. i think the NSLU2 lacks a hardware FPU, and does floating-point emulation in the kernel, which would account for the stats i've been seeing.

Enter Tremor, the integer-math-only ogg vorbis decoder. It appears that tremor isn't packaged for debian yet, though i could get the source to build pretty easily on igor. I'm willing to take a crack at packaging tremor for debian (though i don't know anything about library packaging), but i want to test it out first! i don't have any example players that link against it. My preferred simple CLI audio player these days is alsaplayer, but it links directly against libvorbis, and doesn't appear to know anything about tremor in the code.

Should i try to modify alsaplayer? Is there a simple tremor demo app that plays via alsa? Is there an alsaplayer patchset that i just missed in my web searches? I'll probably try to dig into this in the next couple of weeks, but if anyone has any suggestions, i'd appreciate hearing about them.