Week 5

Week 5 has been (yet again) a continuation of what I’d been doing in the previous week and primarily looking at a replacement for the existing library database engine. Some of what I’ve been trying out hasn’t worked out as was hoped and there were some stability issues that took a lot longer than I’d have liked to get resolved.

So at the moment I’ve now gotten to a stage where my replacement library engine works (other than the library query editor is broken) and it’s performance isn’t as good as the native solution but it works (yay). And when I say performance isn’t as good, it’s around 10-20% on like for like views and comparisons to the original library engine which in reality isn’t all that noticeable in usage, being at most half a second in the worst case.

The result of getting that working is I’m now at a stage where I’ve been able to have a version which is able to disable the special handling that ‘The’ at the start of a string (e.g. artist) is treated in the search results for the simple library views (as the local library plug-in appears to still employ the special handling in a number of cases).

The best way to show this is how if you have ‘Chemical Brothers’ and ‘The Chemical Brothers’ as the artist, the existing behaviour is to treat them as the same thing. For some this will be fine and makes sense for it to do. However there are other cases where this effective ignoring of ‘The’ is not wanted and my version will have an option that allows for controlling this, with it defaulting to the existing behaviour of effectively ignoring the ‘The’.

Now that my library engine replacement is working, I’ve been hooking up some of the command-line options I’m wanting to provide for interacting with the library and history databases. These are at the moment based around the export functionality from my ML Exporter plug-in but with some restriction in functionality to cover the main usage cases I’ve seen with the plug-in.

In the coming week I’m intending on having it not just be a means to export the library data but also as a means to allow for adding files into the library. That will be ‘interesting’ as it is going to involve obtaining tag metadata from the files to be able to update the library information appropriately which if Winamp is not already running means the native plug-ins cannot be relied upon (at least not just be directly loading and using them).

Otherwise I’ve been trying to reach out to some plug-in authors of older plug-ins whose functionality that I think will be good to include without me having to reimplement the plug-in from scratch.

Sadly a number of contact addresses no longer work and responses to those that appear to be valid (no email bounce responses) haven’t been coming as of this being posted. So it seems like there’ll be a number of plug-ins that I’ll have to find the time to re-implement if I want to provide the functional changes I’d like to provide going forward but will see if any responses happen in the coming week.