I have considered computing at sync time, actually, since you have to read the file in to sync it -- I don't know if the order works out (I think tags are synced first, but I need to check).

As far as md5sum speed -- I don't think Java's going to get anywhere near that 47 in 30s, but I'll test it out to see ... incidentally, I used to use MD5 but switched to a CRC32.

ms