Yes, I’m TiMid

Well, I actually am timid, that’s why I rarely go on new IRC channels, why I never go out with new people, why I will never be able to find a girl, but the blog title is mostly referring to TiMidity++ as you can see by the spelling.

So, a few nights ago I ended up looking up at timidity++ to keyword it for Gentoo/FreeBSD as new dependency for audacious; I never looked much at the package itself, as I never had/wanted to use it, I remember a friend of mine (Fabrizio), who told me that it was a bit strange to set up, and that it didn’t work out of the box, and I wasn’t sure why.. now I know why, it’s because of the need to use timidity-update to get the default patchset selected, unless the sound card have a native sequencer (mine seems not to).

Now, some time ago I added the post-dependency for either of the patchset, especially seeing that now the market is full of embedded sound cards (like mine) that does not really have a MIDI sequencer available, or needs the tables loaded, so considering the low overhead to force those patchsets, adding those was sensible.

Tonight, after bumping libmodplug, and seeing that even if upstream said it could play MIDI files using TiMidity++ patchsets it does not really work because the configuration files parser is not able to recur over the “source” keyword, I’ve decided to look at the issue more deeply and decided to replace timidity-update with an eselect module, after all that’s why we have eselect, isn’t it?

After some time spent writing a decent eselect-mode for emacs (Matthew, we need to start thinking about an eventual app-emacs/gentoo-modes, I don’t know much of elisp, nor of lisp itself, but I’m willing to learn the basis at least, it would be cool to have an emacs configured for Gentoo as vim is already), I was able to write the timidity eselect module, with support for switching both user and global timidity patchset, and then added it as dependency for timidity, and used it for the patchsets packages.

The result is that now a simple “emerge timidity++” will provide you with a working setup, and that building audacious-plugins with timidity useflag enabled will give you an Audacious capable of playing MIDI files without any other fiddling 🙂

Tomorrow on my TODO list, the support for “source” directive in Audacious’s libtimidity, as I promised Tony I would have looked for, so that it can also use the (eventually) complex configuration, and a maintainer’s guide for TiMidity++ so that when I’ll take some days of and a problem arises with this, I won’t be strictly needed.