Skip to content

VFolders, History and Changelogs, Oh my! (And if you order now: A screenie and rundown of recent speed hacks!)

Tuesday, 19 August 2003  |  scott wheeler

JuK just got a couple of pretty nifty features in the last week or so. The implementations had a number of related issues to it made sense to solve them in tandem. This first of these is a history playlist which, when turned on, keeps a log of all of the things that you've played and the times that you played them. It's off by default, but you can turn it on via the view menu.

The next big thing is that I finally finished up the code for search playlists. Basically this rolls together an advanced search with some vfolder-like functionality. You create a search, in a dialog not unlike KMail's, that creates a new search playlist. This playlist is automagically updated when your collection changes.

Here's a screenie with some of the new goods:


Here you can see a search playlist that finds everything from the Afro Cuban All Stars and Buena Vista Social Club. Since these are actually the same group of folks the union makes sense, but it's one that's difficult to pick out in something like the tree view (though you could select both groups at once to see a dynamic playlist composed of the two). Notice that the search dialog continues to work; here I'm filtering for the year 1997. Also show here is the history playlist item and the new tree view.

The other thing that I've hacked out in the last week or so were some pretty hefty optimizations for those with large collections. I created a number of dummy files to boost my collection to up around 12,000 items and KCacheGrind and I fixed up some of the algorithms that should make using JuK with large collections -- say over 10000 files -- much nicer. I was frightened to notice that at the beginning of profiling start up time with 12,000 items was near a minute and a half. I had never tested with this many items so I was rather surprised. I'm now quite happy to say that even with 12,000 items start up time is in the range of 5 seconds.

I've also had a number of folks still using the 1.1 release ask what's been going on for the last several months. So, while this is certainly incomplete, here's a rough run down of the major features that have been implemented:

  • Incremental search
  • Search playlists or vfolders
  • Compact and tree view modes (for the list of playlists)
  • DCOP interface
  • Configurable key bindings
  • Configurable passive popups on track change
  • File name based tag guessing
  • MusicBrainz integration for file recognition and tag guessing
  • Playlist unions - selecting multiple playlists and seeing the contents of the two of them combined
  • A history playlist with a list of played items and the times that you played them
  • Search playlists / advanced search / vfolders - there is now an advanced search dialog which creates search playlists which are the results of a search that can contain multiple terms. The list is updated automatically when the values of the items change
  • Roughly 100 reported bugs fixed and dozens of smaller features added

So, what's next? TagLib. TagLib is the id3lib replacement that I've been working on for way too long. I had a kick of hacking on it a few weeks back where things are getting pretty close to working, but I've been neglecting it while I've worked on the features above. It's time for it to mature a bit and I want to cut JuK over to using it in the near future. Soon I'll be back to the JuK bug-bin but it's time for a context switch. Oh, and who knows what will happen at the developers meeting in Nove Hrady next week. :-)