Week 32

Another week, another update and my initial feeling is that the last week wasn’t that productive (especially as I took a day out to get some stuff around the house done) but will see what it was actually like as I collate this update. So without any further messing around, let’s see what happened…

So the first thing is to thank those who took the time to reply about the installer questions (how to handle the AVS and Milkdrop plug-ins) and also regarding the album artwork look-up control and ordering.

The general view on the installer side is leave AVS / Milkdrop as an option in the installer and have them be downloaded only if they are selected. This way it’s still possible to get them ‘normally’ (but also as standalone as I suspect would end up being used by a number of non-Winamp users) without keeping the files included just in-case.

With the albumart artwork, feedback was a lot less but what was received went for making it more customisable than the preview image I’d shown (re-included below).


I’d somewhat guessed the ‘more customisable’ view would be the general response on this and so I’ve already put a bit of thought into it. From the UI side of things, I’m thinking changing the above preference page to instead be a list where it’s then possible to move up / down or select / de-select the items to achieve the desired behaviour. Internally that makes things somewhat more complex than I’ve initially coded the replacement (which was more focused on getting something working) but it fits in with the general idea of what I’ve already gotten implemented.

The next thing involved looking at the best way to get station listings from the Icecast Directory which sadly appears to require just getting one large data blob and working with that instead of being able to just do specific queries (at least not that I could find to do via the ‘recommended’ way or via the ‘experimental’ api which seems to be dead).

I was looking into this based on something that had been raised on reddit as eventually (subject to access api) replace Winamp’s online radio view with something that fits with the current skin and not looking like a sore thumb (i.e. going back to how it used to be many years ago before it all got screwed up).

Having worked with the SHOUTcast data API and knowing how that did it’s best to sanitise the data that is provided, looking at the Icecast data set was not a fun experience as it seems to just allow anything and everything with no form or sanitising the data to make it consistent to find genres, etc within the stations that are provided. So it looks like if I end up using this data, I’d need to do some additional processing to make it more consistent so it could work with the ideas that I’m thinking off doing for this at some point next year (or sooner if I pull my finger out). So not as productive as I’d hoped from a quick look into this but it gives me something to think about in preparation for implementing a plug-in / service later on.

Moving onto the next thing, some who follow me on twitter will have already an idea of what I’m going to talk about now and it’s ‘Yule Log‘ which at this current time is being developed as an Advanced Title Formatting (ATF) based currently playing text logger with a silly name.

I know there’s been plenty of these plug-ins created over the years as it was one of the most common plug-in types I remember having to review on the old winamp.com site (when the review site worked). However most either don’t play well with unicode or don’t save their settings in the correct place (which I don’t believe disabling UAC or changing folder permissions is a solution but each to their own) or they’re just too restrictive.


In it’s initial form (as per the screenshot above) I see it as being something that is helpful for tracking what Winamp is playing in helping to work out royalty payments when it comes to streaming (as was the request that came in which led to me starting on this) and the crap that all legal broadcasters have to deal with to keep the range of media authorities happy.

However with a bit more work later on, this plug-in could be made to do logging to somewhere other than a local file (even going as far as spamming twitter follower, muwhahaha).

The final thing which was from my Sunday night research slot is looking into what would be needed to make a replacement Ogg Vorbis decoder along with whether it’s possible to include Opus support.

Why the two together you might ask (or not) ? The first reason is because they both are typically provided within an Ogg container format so if my understanding of things is correct, there is a potential for a fair amount of code overlap to support at least the basic access of the contained audio data (Vorbis or Opus[/url]).

The second reason is I’ve always been intrigued as to whether it could work or not from thoughts I’d had for SHOUTcast and increasing codec support (which whether it was right or not was turned down as being allowed to be worked on). As I personally thought it made sense to expand the codec support (even if it wasn’t directly used on the likes of shoutcast.com) as there is clearly some demand based on alternative solutions supporting these and other other formats.

So as it’s all on my time now, I thought I’d have a look and that’s about as far as I got as opus doesn’t have a clean way to just compile it on Windows (at least not for what I want to use) without having to use VS2015 and then use that as a guide to re-create the project files as needed (as it’s all generally setup for being built with GCC-like compilers). But there’s pre-compiled dlls already provided and that’s true but just looking at what gets provided is messy and so I wanted to see if it was possible to get to down to one or two supporting dlls at most).

As it didn’t progress that far to even getting something basic up and running (I got as far as getting the test program building and passing tests correctly with the compiler I use), this will go back to be something that I’ll look into again later on as the existing native Winamp vorbis plug-in doesn’t really fit in with how the better developed plug-ins work (iirc it’s still the plug-in that Peter created many years ago with some tweaks).

So that’s this update of what’s been going on over the last week. Here’s a general summary of what was talked about:

  • Appreciation for the feedback received (more is always welcome)
  • Making a new plug-in - Yule Log for currently playing tracking to text file
  • The Icecast Directory data set quality makes me a sad panda :(
  • Looking at getting Vorbis and Opus support in a single input plug-in