so i realized one of the problems here ... the slowness is in calculating that hash value. But ultimately, to be able to find a duplicate later, you HAVE to calculate the hash value when you import a new tune. That means you have one of two cases:

1) the quick lookup doesn't find any hits, so this tune is new, but then you have to calc it's hash so you can look for its duplicates next time
2) the quick lookup matches, then to know for sure if it's a match or not, you have to calc the hash

so it seems that you have to end up computing that hash for every tune no matter what. am I being stupid here and missing something obvious?