Tuesday 22 September 2009

iTunes in the Mix — Fanboy Rant

About once a month or so I stumble across some software feature that reassures my faith in the genius of certain programmers/software designers. These tend to be in Apple, Google or Canon products, though plenty of smaller software companies/developers have pleasantly surprised me equally well (I'm on a bit of a Connected Flow fanboy-high at the moment, for example).

I've actually had two such pleasant surprises in the last week. Both with iTunes 9.

Compound Smart Playlist Rules
Last week, when I installed iTunes 9, the first thing I did (as with each new version) was check if they'd finally implemented a more comprehensive mechanism for settings 'rules' up for Smart Playlists. I was pretty happy to find they had finally done so.

Basically, instead of making a playlist that can match "any" or "all" of a single list of rules, you can now create sub-rules (effectively allowing brackets in search/logic terms). For example, you could have a playlist (for your iPod/iPhone) that includes all songs rated 3+ or that you've listened to more than 5 times, but excludes the ones you've listened to in the last week and excludes the classical music that you only listen to when working on your laptop...

This could be done in earlier versions as well, except that you had to create intermediate Smart Playlists for each sub-rule (i.e. one to match the sub-rules, like the "play count > 4" OR "rating > 2", and then another to match the outer 'all' rule). It was messy. This is less messy. I'm happy.

Failings / Suggestions
It's not perfect of course. I'd like to be able to make variables of my own, for example the ratio of Play Count to Skip Count (maybe I used to like a song a lot, but now I skip it all the time...). Also if the variables could be stored as part of the main database, I could make variables indicating how 'neglected' a song is (some formula to represent how much I like it from play-count/rating or dislike it from skip-count, and how recently I've played it) to put these songs onto my iPhone preferentially over others. I know, I know, I'm getting pretty picky here, but I thought I had to suggest something :P

Genius Mixes
Today's awesome feature discovery was iTunes 9's Genius Mixes feature. It's been sitting there for about a week now, but I only just realised what it actually does. Basically it's made 12 categories out of my music library, letting me select music based on mood/genre/some kind of qualitative term like that.

It seems to have made some very sensible groups for me (though I imagine it won't work for everyone's music collection), letting me easily put my music on shuffle with a specific theme or mood in mind. As someone who almost never listens to albums, always shuffles, this is great for me.

There are plenty of guides on how to set it up, but the basic gist is you need Genius enabled (see the Store menu) to get access to the mixes.

Failings / Suggestions
It does of course have a few issues. The names of each list really suck. I have six mixes called "Rock Mix" for example (sure, it's enumerated them, but that's not that useful). Whether that's because iTunes Genius classifies the songs as Rock or whether it's reading the Genre tags on my MP3s (which I think are mostly from CDDB), they're fairly silly Genius Mix titles. I like the clustering, but as with all classification problems, knowing exactly what you've classified isn't always easy. I'd suggest they allow people to rename the mixes, but that would assume/require that the clustering algorithm consistently generates the same song clusters (which I'm quite sure it won't — I'm quite sure my own listening habits and those of others contributing to Genius will change where boundaries are drawn between clusters over time).

So the names suck, but the Genius Mixes themselves are quite good, and I think they know this because they've listed a few artists under each mix to give you an idea of what is in it. If you know the artists in your music collection, you're going to know which mix you want to hear.

Another problem with it is that you can't see what's in each Genius Mix. There's currently no way to access a list of songs in the mix (or even a sample of the mix) except for the currently playing song (which, of course, you can only see by playing the mix). So might be good if they opened up the box a little on this one.

It'd be nice also if they had Genius mixes on the iPhone/iPod, generated automatically from the songs you've chosen to sync to the device. While you can sync the Genius Mixes themselves (though the interface only displays their sometimes-unhelpful-name, not the artists, so having 6 Rock Mixes kinda sucks for picking the one you like), you can't have it generate Genius Mixes automatically based on the (limited) library of your music device.

End Fanboy Rant
Anyway, I'm a fan of iTunes 9. Two pretty cool features that make it suck less, and make me a happier iTunes user.

Monday 14 September 2009

Aperture Bug — EXIF Data Missing in Exported Images

I really like Aperture. It's got a simple and intuitive interface, and gives you a lot of power to store, organise, prepare, manipulate, etc your photos. I've been using it for about a year now, and on the whole, it's great...

Of course, like any software, I have a few issues with it... some are simple UI annoyances, speed issues, the occasional, but temporary bug... but there's one that Apple seem to consistently ignore (I've sent them bug reports about it several times over the last year, and it still remains)... to the point where I wonder if somehow there's only a few of us suffering from this bug.

The bug in question is fairly simple, and completely repeatable (for me at least).

Step 1: You take a photo, and import it into Aperture.
Step 2: You do whatever it is you do in Aperture to your photos.
Step 3: You export the finished version (specifically the Version, not the Master).

This export step might be using basic "Export Version(s)" option of Aperture, or it might be using an export plug-in such as FlickrExport by Connected Flow (which essentially exports the versions to temporary files so the plug-in can do something with them). Either way, it's the same process of creating a JPEG file from your master, with your modifications applied.

Step 4: Notice the missing EXIF fields (e.g. in the 'more details' link on Flickr, using a program like ExifTool, or even importing the version into another photo application like iPhoto)

Now, perhaps for most people, nothing has gone wrong... The file has been exported, and it looks like it should. Unfortunately, Apple seem to have decided to not include a bunch of EXIF fields. Up until April 2009, this included things like Longitude and Latitude (which upset some people) — but that was fixed in 2.1.3 (not that they mentioned it in the release notes). Unfortunately, that was all they fixed — lens and flash information are still excluded for no apparent reason.

So you ask, why would anyone care, it's just some EXIF data that most people don't even know how to access? Mostly just education and/or curiosity on sites like Flickr, where you can see what settings and equipment people used to take specific photos. The internet is a great tool for learning, and with massive databases and information sources like Flickr, people can answer all sorts of questions and learn all sorts of things from the work of others.

So what are the actual differences?
I used ExifTool to read the EXIF data from a Master and Version of the same photo (with some modifications) and found the following notable differences.

Firstly some additional data is in the Version JPEG (which I would say is generally a Good Thing™, yay!)
  • File name, size, resolution, etc that have changed are of course updated in the Version as they should be.
  • Headline, Caption, Keywords etc from IPTC info are added. Cool.
  • A bunch of EXIF info is added to the Version regarding colour profiles (about 30 EXIF fields relating to colour profiles in fact... I won't list them all, but things like Color Space Data and Profile Description).
Then some information has been changed between the Version and Master JPEGs (some good, some odd)
  • GPS Longitude and GPS Latitude have lost some precision (tsk tsk, is someone carelessly type casting...?). In my example image, it's about 0.3 seconds, so not huge, but still unnecessary.
  • Focal Plane X Resolution and Focal Plane Y Resolution have also lost precision (a change of about 0.0001 — probably no big deal!)
  • Scale Factor to 35mm Equivalent, Circle Of Confusion, Field of View, 35mm Focal Length and Hyperfocal Distance have all been updated. I'm fairly sure this is because I cropped the image, so these are probably intelligent changes.
  • Y Cb Cr Sub Sampling changed from YCbCr4:2:0 (2 2) to YCbCr4:2:2 (2 1). Don't really know what this is, so not sure if it makes sense or not...
  • EXIF Byte Order changed from Little-endian (Intel, II) to Big-endian (Motorola, MM). No big deal, this is just the way the EXIF data is formatted at the bit/byte level.
And, as per my complaint, they've left out a bunch of EXIF fields. There's 165 in total that have been neglected, so I'll just list a few that I believe would be useful for some photographers...
  • Lens Type — Canon EF 50mm f/1.8 MkII (and other Lens related data), or
  • Lens Model — EF50mm f/1.8 II
  • Macro Mode — Normal
  • Self Timer — Off
  • Quality — Fine
  • Canon Flash Mode — External Flash
  • Flash Activity — 146
  • Flash Bits — E-TTL, External
  • Flash Exposure Compensation — -1
  • Flash Sync Speed Av — 1/200 Fixed
  • Continuous Drive — Single
  • Focus Mode — One-shot AF
  • Record Mode — JPEG
  • Canon Image Size — Medium
  • Canon Exposure Mode — Manual
  • Measured EV — 0.75
  • Picture Style — Standard
  • AF Mode — Single-point AF
  • and so on...
Some of these I think would be useful to gain a bit more info about the scene being shot and how it was shot, and in plenty of cases give people a bit more info on how other photographers use their camera (e.g. the flash information or even that I use a single AF point).

I realise that copying the camera settings of another photographer, much like copying their camera body or lenses doesn't make better photos, but it does give people ideas to try out. There have been plenty of times I've seen 'odd' settings in the 'more details' tab on Flickr, or seen people describe settings that I'd not normally use which have helped me learn more about my camera and how it works. So I think this would actually be quite useful for those of us who do have a look behind the scenes on photos we wish we could take ourselves.

I really wish Apple would stop ignoring this problem. If it bugs you too, please head over to the Aperture feedback form and tell them to fix it as well! Feel free to link to or copy sections of this post that you feel they should fix (e.g. the specific EXIF fields you want them to include in exported versions).

My experience is with a Canon EOS 450D (aka XSi or Kiss X2), so no doubt the EXIF data will be a little different for other Canons and other brands, so you might even want to use ExifTool to check out what Aperture is ignoring for you! I recommend using a 'diff' tool (such as FileMerge which comes with the Apple Developer Tools or the command line 'diff') to compare the outputs from ExifTool.