Weekend Project: Try Tomahawk, A Different Kind of Music Player for Linux


There is no drought in the audio player market for desktop Linux users these days; every desktop environment has several of its own, plus there are cross-platform applications, integrated media players, and network-centric apps tailored to the streaming service flavor-of-the-month. Consequently, you need a pretty compelling reason to start using a new one, but theTomahawk music player may have found just such an angle. It hooks into multiple services behind the scenes, and presents you with a single, play-anything-from-anywhere interface.

Concept Rock

Don’t misunderstand me: there are plenty of other audio players that provide plug-ins to access third-party music stores, web sites, and services. But those plug-ins always serve as separate music silos — you can click on a tab to listen to your local music collection, or a tab to listen to Spotify, or a tab to browse the Amazon MP3 store, etc. Tomahawk merges them all together into what it calls the “Super Collection.” You search for an artist or track, and the player queries all of the installed content “resolvers” simultaneously, and gives you results from all of them.

The glue that holds this mechanism together is the Playdar resolver framework. Playdar is a matching system that attempts to identify the metadata of a track, independent of its origin. In other words, it figures out that an oddly-named YouTube video is the same as an MP3 for sale at Jamendo, even if that would not be obvious to a human observer. In practice, Tomahawk does reverse-lookups on Playdar: it finds every available source for the search parameters you enter.

You can run simple searches using this mechanism, but you can also create personal Pandora-esque “stations” that find music similar to your search parameters. The stations are persistent, and unlike simple searches, you can add multiple matching criteria.

By default, Tomahawk only ships with one content resolver installed: one that scans the local network for music shares. But all of the “official” resolvers are but one beat away; just open the “Settings” menu, click on “Resolvers,” and check all of the sources you are interested in. At present, the list includes YouTube, Last.fm, SoundCloud, Spotify, Grooveshark, Jamendo, 4Share, Skreemr, Official.fm, Ex.fm, Dilandau, and support for Ampache streaming servers. I can’t say whether or not that list incorporates your personal favorite, but it includes more than I even knew existed.

A Test Spin

Tomahawk is Qt-based, but builds are provided for Linux, Windows, and Mac OS X. The Linux builds include packages for Ubuntu, OpenSUSE, ArchLinux, Gentoo, Fedora, Chakra, and Exherbo. The latest release is version 0.3.2, from November 23, 2011.

Tomahawk SearchWhen you first launch Tomahawk, the set-up wizard invites you to configure social media accounts (in the current release, Twitter, Google Chat, and general XMPP are supported). This feature is optional, and uses the messaging service to send playlist and favorites information to participating friends. It could be fun, but for my money isn’t the main attraction. You’ll also need to tell the app where your local music resides (assuming you want to listen to your existing music collection as well as what you can stream for free over the Internet).

The local-collection playback is on par with most other standard music players: playlists and “smart” playlists are supported, album art is automatically imported, and for the most part every file type you can think of with play without incident. But don’t expect fancy playback-candy like cross-fading, trippy OpenGL visualizations, or embedded information panels cramming lyrics and Wikipedia bios onto the screen. I don’t lose sleep over those features, in case you can’t tell; I just want jitter-free playback and fast browsing of my 40GB of audio, and Tomahawk delivers on both counts.

When it comes to the Super Collection, I activated all of the resolvers I could, and initiated some searches to see what turned up. Speed-wise, I have no complaints: you get results almost instantly, even on mediocre broadband, and by and large what I was looking for was at or near the top of the results list. On the other hand, I was quite disappointed to find that no search operators are supported: if you search for Highway 61, you get results featuring Highway and results featuring 61, and no quotes or plus-signs can narrow it down. I was also disappointed that so many results come back that match the search term in the wrong field (e.g., Artist instead of Title).

For a lot of the user-contributed services like YouTube, the field-swapping was attributable to bad metadata parsing, like having the YouTube user’s name appear as the “Artist.” Yet somehow the sorting algorithm still grabbed the right tracks most of the time. Chalk that up to good work on the part of Playdar; the various resolvers may simply need more polish when presenting their results to the user.

The various network-service resolvers offer different configuration options, which you must access through the Tomahawk “Settings” window. Some allow you to access subscriber-only service, but others have preferences that affect what search results you see, such as live versions of tracks or covers. Keeping these preferences per-service is wise; I may want to hear covers of a song through SoundCloud, but YouTube covers are a whole different beast.Tomahawk Resolvers

The other nice feature is custom stations. I ran stress-tests against this feature by querying obscure and inactive artists, and Tomahawk routinely served up better matches than Pandora does. On the down side, it did not turn up very many. Generally I got five to eight picks at once, and others trickled in as I progressed through the playlist. I assume that this is by design, to not overwhelm the network with hits, but I don’t know. I also don’t understand why search results sometimes appear and then disappear. In both cases, more choices are better.

The last interesting feature (which I only discovered at install-time) was Tomahawk’s built-in “Charts” panel. This is an index into the current best-seller and radio playlists published by online music services, from Billboard to iTunes, with album and song lists for every genre. So if you want to sound plugged-in to pop culture, it couldn’t get any easier. Both the Charts interface and the “tracks your friends have favorite-ed” options are listed under the Super Collection tab, but you can also simply search and browse the Super Collection for random, new, or popular artists. To be honest, it is a little unclear how some of these views on the Super Collection differ, but it isn’t hard to find what you want to hear in any of them.

Cutting Room Floor

As much as I like Tomahawk’s easy access to the disparate streaming services vying for our attention, the program still has some rough corners that belie its 0.3.x release number. For instance, the file selector where you must tell Tomahawk how to find your local music collection does not understand symlinks. A minor point for some, a colossal hassle for others.

There there is the user interface design. As I already mentioned, the grouping of some of the features does not make sense: most of the network-related services are grouped under Super Collection, but custom stations (which also use the Super Collection for their content) appear under My Collection. The currently-playing track is also listed next to the My Collection header, even when it is not a song from, well, my collection.

Tomahawk StationsOn top of that, Tomahawk is a Qt app, but it does not use desktop conventions for icons or font selections. There are randomly bold-ed words, varying font sizes, and awkward looking icons for things where freedesktop.org stock icons should be used instead — such as playback controls and +/- buttons. I unearth a lot of UI problems simply by running a light-text-on-dark-background widget theme, but Tomahawk has problems that extend beyond that: the resolver installer window is a mess; the “install” button is impossible to read (in both the Installed and uninstalled state) and there is too much useless information crammed into a tiny display row — which is then mis-aligned between columns.

I was also disappointed in the social-networking-integration. It is touted as a feature on the home page, but its controls are buried two-levels deep in configuration dialogs. That is not hyperbole; if you want to send out a tweet about what you are listening to, you have to open “Settings,” go to “Accounts,” and open the Twitter set-up window.

Still, overall Tomahawk provides a slick interface to the hodgepodge of overlapping, often similar music services available today — and a far slicker interface than Rhythmbox, Banshee, Amarok, or the like. Those apps may still reign supreme for local music listening, but Tomahawk has them beat on the networked media front. I have high hopes for the future of the app, which still lacks support for some key services and protocols, like UPnP, Google Music, and MusicBrainz. The forums seem active enough, so it is worth keeping an eye out for the next release.

If you are a music nut, Tomahawk is worth downloading today. The wrinkles are all survivable, there are no major crash-bugs, and the listening experience is far better than what the competition provides. As more resolvers get added, it will only get better.