Muxic Beta 2, XMMS2 0.6 Macport

I finally got around to updating Muxic to the new xmms2-0.6DrMattDestruction API. There were a few changes to the xmms2 clientlib that needed attention.

While I was doing this, I noticed that the xmms2 CF clientlib isn’t just superficially unusable, but will rev up your CPU something awful if the xmms2d drops its connection after registration of the clientlib CF runloop event source. It needs a shutdown function, and that shutdown function needs some connection-specific CF variables from the init function. Hence we can’t use the API in its current state (unless there’s some way to inject mainloop-specific state into the xmmsc_connection_t that I don’t know about).

I’ve reported it and presented a patch as XMMS2 bug #2232, but essentially it means that the libxmmsclient-cf that currently comes with xmms2 is very bugged.

Update: patch accepted into xmms2-devel.git.

Since macports haven’t updated their port of xmms2, here is my xmms2 @0.6DrMattDestruction portfile. I would have liked to support variants, but whenever I add my own –with-optionals or –with-plugins options to waf configure, the build breaks with link errors. This happens even when I copy the exact list that waf configure automagically selects without arguments. I haven’t figured out why this is, and trying to trace the internals of waf is a bitch.

Anyway, presenting Muxic Beta 2, source code available in the Muxic git repository as usual.

Muxic beta 1

I have Muxic, my music player for Mac OS X, working to the point that it’s suitable for public consumption. There are still features to be added, but the basic previous/play/pause/stop/next stuff is working.

Caveats: it’s built against the macports xmms2 0.5 DrLecter, installed with the default prefix “/opt/local”, against the Mac OS X 10.5 SDK. Download and try the Muxic 1.0 Beta 1 binary, or check out the Muxic source with git:

git clone

Muxic – Minimal XMMS2 client for Mac OS X

XMMS2 is cool. In my experience, its architecture does everything The Right Way, and their support tools (git, mantis, mediawiki, doxygen-generated documentation) are all modern.

The clientlib is good enough that clients (frontends) can be very lightweight. FWICS there are some good Qt and GTK based clients that would probably run fine on OS X, if you can be bothered getting them and their dependencies working.

Even then, other Qt and GTK based applications I have on scud always feel slightly out of place (or very out of place for those using X11). There were no Cocoa/Application Kit based GUIs on the old clientlist. I set out to create a Cocoa UI.

I like Winamp Classic’s UI; it is functional and compact, especially in windowshade mode. If you are used to the keyboard shortcuts (and they make a lot of sense with a QWERTY keyboard), you don’t need huge buttons.

Hence I made a client with similar minimalism, without trying to be Winamp-skin-compatible. I’m quite happy to use the CLI and other clients for managing the media library, but for something that’s sitting on my desktop all the time I wanted small, and I wanted it to fit in with OS X. It’s got Growl support too!

Muxic Desktop screenshot
Introducing: Muxic.

Muxic is a minimal user interface to XMMS2. It should be ready for a release soon, meanwhile you can browse the Muxic source.