Name: Levi Ramsey
Member since: 2002-02-26 03:06:51
Last Login: N/A


I have contributed the occasional patch for the MandrakeLinux tools (such as msec). I am a CS student at the University of Massachusetts Amherst. I also maintain AudioCompress and Sawfish for Mandrake contribs.

My most recent project is xmmsao, which (as could easily be deduced) is an output plugin which allows xmms to output to libao2. The advantage of this over other output plugins is that it's sound-system-independent. Without changing plugins, EsounD, aRts, ALSA, and OSS (among others; those are the only ones I've tested) can be supported. It is now available in tarball form from

Email me at lramsey AT student DOT umass DOT edu


Recent blog entries by leviramsey

I'm looking into some way of making SDL output audio through libao. It's impossible to actually put the libao driving code into SDL, as the SDL is LGPL and libao is GPL.

What I've come up with is writing my own sound daemon that will link against libao and thus be GPL, but then writing an LGPL library which sends the data through a Unix socket to the daemon and having SDL use the LGPL library.

My question is, is this a violation of the letter or spirit of the GPL? Since Advogato doesn't allow comments to diaries, please reply through email.

xmmsao 0.6 is now available. A significant bug has been fixed and there are some new features. No RPM has been uploaded to Mandrake contribs, owing to an inability to login to the build cluster (though the cluster accepts my password...)

xmmsao 0.5 is now available. The main addition in this release is support for file-output. Unlike xmms-diskwriter, this plugin allows the use of effect plugins on the output.

For version 0.6, I doubt there will be many changes under the hood (the only one I can see at this point is maybe allowing simultaneous disk and live output), but there will probably be a change or two to the configuration dialog, with allowing selection of output file format leading the list.

Getting some type of software premixing is still on the TODO... I haven't forgotten about that!

Writing this has allowed me to see some of the misfeatures of xmms, and given me some ideas for improvements, to wit:

  • system-wide default configuration: at this point, the only options for an admin needing to have a custom configuration for multiple users are:
    • hacking xmms' source to set different defaults. This is butt-ugly and shouldn't be necessary.
    • somehow copying a default configuration file to each user's ~/.xmms directory. This is easy to do for existing users, but requires hacking user creation scripts for new users.
    I have a simple patch which allows a default configuration file to be stored in /etc/xmms if no user config file is found.
  • braindead EQ implementation: xmms leaves application of EQ settings to input plugins, while EQs are more properly the domain of either output or effect plugins. Look at any component system with an equalizer and note that there's one EQ for the entire system, not an EQ for each component. Unfortunately, this braindeadedness [probably] can't readily be fixed without massively changing the output plugin API.
  • no support for multiple effect plugins: There is a patch to xmms to allow this, but it requires a change to the way that output plugins are written. It seems to me that a meta-effect plugin (a single effect plugin which does nothing more than run its input through a sequence of other effect plugins) is a much better solution which does not break compatibility. I'll probably start work on this at some point this summer.

xmmsao is now released in friendly tarball form. Patches are welcome.

I'm really drinking the ao Kool Aid. I'm thinking of hacking aRts and EsounD to use ao for their audio output. This would allow both servers to coexist, and possibly even route their output through each other to the sound hardware.

29 May 2003 (updated 30 May 2003 at 03:08 UTC) »

Two more updates to Mandrake Contribs the past couple of days:

  • multi-gnome-terminal: Alexander Skwar seems to have let mgt languish. Basically, I just bumped the version number to 1.6.2...
  • xmmsao: a new version is out (and I'm reaching the point where I'm not so embarassed by it that I'll publish a tarball, instead of just a Mandrake SRPM and RPM... no guarantees on what sort of lag there will be between RPM and tarball releases though). I've finally got a configuration dialog coded (basically nailed it on my first try, despite my only GTK+ experience being with GTKmm... GTK+ in C isn't as painful as I was expecting) and got it to work with the xmms config system. Still TODO: rudimentary mixing and support for ao's file output system.
  • wallpaper-at: a packaging of the wallpapers contained in the debian package of the same name [UPDATE: the package seems to have been removed from contribs... i still have the SRPM if anyone's interested...].

Hopefully, Lenny will give me access to SRPMs in the incoming directory (where SRPMS uploaded by people who do not have write access to contrib are held)... there's a bit of a backlog there... I'll also have to get in touch with Guillaume sometime this summer about making xmmsao the default output plugin for xmms in Mandrake...

I see Nullsoft has released a new P2P collaboration system called waste... I'll have to see if it builds and is packageable also...

5 older entries...


leviramsey certified others as follows:

  • leviramsey certified gc as Master
  • leviramsey certified quintela as Master
  • leviramsey certified leviramsey as Journeyer
  • leviramsey certified apeiro as Journeyer
  • leviramsey certified fcrozat as Master
  • leviramsey certified fred as Master
  • leviramsey certified lerdsuwa as Master
  • leviramsey certified Denny as Journeyer
  • leviramsey certified chipx86 as Journeyer
  • leviramsey certified fxn as Journeyer
  • leviramsey certified ladypine as Journeyer
  • leviramsey certified BenFrantzDale as Journeyer
  • leviramsey certified robilad as Master
  • leviramsey certified fuzzynerd as Apprentice
  • leviramsey certified skribe as Apprentice
  • leviramsey certified rml as Master
  • leviramsey certified mrcsparker as Apprentice
  • leviramsey certified pencechp as Apprentice
  • leviramsey certified MisterP as Apprentice
  • leviramsey certified wspace as Apprentice
  • leviramsey certified havardk as Master
  • leviramsey certified wubby as Apprentice
  • leviramsey certified cortezcarlos as Apprentice
  • leviramsey certified Akira as Journeyer
  • leviramsey certified loadquo as Journeyer
  • leviramsey certified ciphergoth as Apprentice

Others have certified leviramsey as follows:

  • gc certified leviramsey as Apprentice
  • leviramsey certified leviramsey as Journeyer
  • apeiro certified leviramsey as Apprentice
  • Denny certified leviramsey as Apprentice
  • lerdsuwa certified leviramsey as Journeyer
  • fcrozat certified leviramsey as Apprentice
  • fxn certified leviramsey as Journeyer
  • cortezcarlos certified leviramsey as Journeyer
  • wspace certified leviramsey as Apprentice
  • pencechp certified leviramsey as Journeyer
  • robilad certified leviramsey as Apprentice
  • wubby certified leviramsey as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page