Recent blog entries for 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...

More news on the xmmsao front. I'm now at version 0.3 (will be uploaded to Mandrake Contribs as soon as I post this ;o) ). Present in this release: buffering (enabled by default now) and [some] effect plugin support. Now adding volume/EQ support and actually making a configuration dialog are the new priorities.

I'm being more active in Mandrake Cooker development... at the moment, I'm hacking out something I'm surprised no one's done yet: an xmms output plugin for libao2. The main benefit for this is that libao2 supports (among other sound output systems) OSS, ALSA, EsounD, and aRts, automatically detecting which to use. This is nifty for use in distributions that support both KDE and GNOME as a default xmms output plugin. At the moment, it can play audio and in general behave like a nice xmms-plugin. Effect plugins are the only TODO before I release and upload it to contribs (which I should have write access to shortly... ;o) ).

Beyond that release, the only thing I can see me implementing is support for volume control... I may just do that in software; making hardware calls just seems yucky for a hardware-independent library. I've also noticed (of course, I could be wrong... I haven't checked code or anything...) that the EsounD output plugin doesn't support the xmms EQ, so that may be a TODO. I may add some rudimentary prebuffering support into the plugin, as it looks like effect support may add enough overhead to make that worthwhile.

Now that sawfish has been moved to Mandrake contribs, I have become its unofficial maintainer, starting with the newly released version 1.2.

It's been a while (nearly 6 months...) since my last entry. NotSlash is being rebuilt from the ground up, though the basic design is fairly similar to my original vision.

Today, my RPM of xmms-compress was accepted into Mandrake contribs. Woo hoo!

12 Mar 2002 (updated 14 Mar 2002 at 13:19 UTC) »

Continued working on my PHP/MySQL-based Slashdot clone. I'm nowhere near finished putting in every feature, but you can check it out in pre-alpha form. At this moment, I'm hacking a story queue system. I may eventually release the code as free software, but at this stage it's much to ugly and incomplete.

TODO (in no order)

  • Comments
  • Moderation
  • Meta-mod
  • Actual user logins
  • And much more stuff that I'm probably forgetting

I'm having a bitch of a time getting an XFree86 src rpm that checks out...

I'm finally listed by name for a patch in a changelog... check out the allegro rpms in Mandrake contribs....

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!