I use a Logitech Harmony One IR remote to control my various home entertainment systems which includes a mac running iTunes1 Most of my smart playlists select tracks based in part on the ratings of each track. To help encourage myself to rate more of the tracks I’ve create a small utility called Iris.

Song Rating

Iris works in conjunction with the Harmony One remote (and potentially many other smart remotes) to allow the currently playing track to be rated by pressing 1..5 or 0 to clear the rating. In addition the “info” button will speak the current track or album rating. This is handy for re-rating a song I’ve lost interest in so that it doesn’t get included quite as often.

As a large part of my library is currently unrated, Iris will optionally announce at the start of each track if the track is “unrated”.

Delayed Rating

Whilst the iOS remote apps allow checking and changing the rating of the current track, I find it a little slow to use and changing a rating whilst a track is playing often causes the track to be removed from my smart playlists that do live updating. Iris solves this problem by delaying the rating change until the track finishes. In addition picking up the remote and pressing 1-5 is much quicker than unlocking the iPhone, waiting for the remote app to reconnect and then navigating to the ratings panel.

There are still a few features needed to make the app a little more user friendly and useful, it doesn’t even save your preferences yet. However, it’s usable and doing the job I needed it for so I thought I’d make it available to anyone who wants it.

Source code for Iris can be found on GitHub.

Iris is a free utility released under the GPLv3.


  1. Shortly after making this post, my mac mini, the last non Linux machine I own, gave up its valiant but ultimately futile resistance and now runs Debian Linux. As I no longer have access to a machine running any version of OSX, there will be no further updates to this util. The source remains available (GPL3) for anyone who wishes to use it. ↩︎