Well, I haven’t blogged here in quite awhile, but it’s been a pretty busy year! One project I’ve been spending a fair amount of time on is Exaile, a cross platform music player for GTK+ (its free and works on Windows, Linux, and even OSX — though, the installation for OSX is rather tricky). I’ve been DJ’ing Lindy Hop dances for almost a year now, and I’ve been fixing up Exaile to be an awesome music player for DJing — adding a BPM counter, secondary output device support (sometimes called pre-listening), and other things that I’ve found to be useful.
One feature in particular I want to highlight is a plugin I’ve created called GroupTagger. This super-useful plugin is distributed with the latest stable version of Exaile. This plugin allows you to easily and rapidly organize your music using the ‘Grouping’ tag in your audio files. The best part about this is that the data is stored in your MP3/OGG/FLAC/whatever audio files, so you can use the data with your favorite audio player if it supports it (Winamp, iTunes, others already do). A lot of people already categorize their music using this tag, and this plugin can manage music that is already tagged this way. To illustrate how useful this is, here are some screenshots and a mini-tutorial.
Enable the GroupTagger Plugin and find your unmarked Tracks
After launching Exaile you’re going to want to enable the GroupTagger plugin. In Preferences -> Plugins, it’s in the ‘Tagging’ category. Next, I like to have a smart playlist that can tell me what tracks in my music collection aren’t tagged yet. Just go to the Playlists panel on the left, right click on ‘Smart Playlists’, and select ‘Create New Smart Playlist’. The tag is ‘Grouping’, and the criteria will be ‘is not set’. Like shown to the right.
Add your first tag
After you do this, you can open the smart playlist and it will show all of the tracks you have in your collection that don’t currently have a ‘grouping’ field set on it. Now, select the ‘GroupTagger’ panel on the left. It will show all the groups you’ve created so far, and as you select tracks in your playlist (or as songs are played), it will show checkboxes next to the tags that you’ve added to the track. Of course, right now it’s empty and just shows ‘Uncategorized’. You can click ‘Add Group’, and that will add a new group to the panel, and also add it to the currently selected track. So add a few tags to one of your tracks, and it’ll look something like this (I also enabled the ‘grouping’ column in Exaile so that we can easily see what tags a track has without having to select it).
More Tags
After tagging your first track, when you select the next track you’ll notice that the groups are still showing, but no longer checked. If any of those tags apply to this song, you can click the checkbox and they’ll automatically be added to the file. As you add more and more tags, tagging new tracks becomes super-easy and super-fast because you already have a bunch of tags that you can select from. I’ve been able to sort through and tag over 100 songs in an hour using this plugin.
Easy Searching using tags
Once you get your music properly tagged, the GroupTagger plugin also provides quick ways to search through the music using the tags. Just right click on the tag, and select the option to ‘Show tracks tagged with X’. This will display a new playlist (called ‘Grouping: tagname’) in the playlist panel that shows all songs in your collection that have that tag. You can do this with multiple selected tags too, and there’s a custom search that will let you do AND/OR/NOT queries on tags too. Searching through your collection is super easy using this — and as a DJ, this has been invaluable to me when trying to remember just the right song in the heat of the moment! 🙂
Categorizing your tags
After awhile, you accumulate *lots* of tags shown in the panel, and it can be a bit challenging to sort through them all when you want to perform a search or add new tags to a file. Thankfully, you can categorize the groups. Just right click somewhere in the GroupTagger panel, and select ‘Add new category’. You can then drag and drop your tags into that category, create new categories, and so on. Check out the screenshot shown to the right for an example of this. Note: the categories are not stored in the audio file, only the group tag.
You can also create smart playlists/views based on the data you setup using Exaile, iTunes, Winamp, or any other player that supports the ‘Grouping’ tag (also called ‘Category’ in some audio players). One important thing to remember when creating smart playlists — if you use GroupTagger to tag a file using a group that is multiple words (like ‘my favorites’), then it will replace the space with an underscore (or _ ) before storing it in the audio file. This allows the plugin to easily store human-readable/searchable lists without any special metadata that might get lost.
I hope you find this useful! Of course, this isn’t the only DJ-friendly feature that I’ve added to Exaile… I’ll highlight more of them in future blog posts. If you have ideas for improvement or find bugs, let me know (or file a bug on Launchpad).