Similarity designed for scaning music compositions and yes it's scans only 1 min of song. We think about how to solve problem with long durations.
I'm a new user, but I am a radio broadcast engineer with a bit of experience writing some audio apps for my job and personal use (VB6/VB.Net).
How about taking 3 or 4 short (30 second) samples across the length of a file. Say a 30 second sample at 0%, 25%, 50%, and 75% of the length of valid audio data (ignore those metadata headers / tails!). You would have to seek in past any silence at the head for the first sample (as the silence can vary even if the cut is the same).
In theory this would produce a "fingerprint" representative of most of the audio without having to scan the whole thing, and more accurate than judging the whole file by one sample.
If this data is compared to a duplicate, and the duplicate is the same audio and length, the data from each of the 4 samples should match up waveform-wise. If the length is different on the duplicate, say an extra interlude on a remix, the last 2 or 3 samples will not be the same as the original.
This would also detect if a file is corrupted half way through - samples 1 and 2 might match, but 3 and 4 are random noise on the bad cut.
One last caveat - I don't know how your comparison code works, but if the levels are different between the original and dupe, you would need to compensate (make the highest peak of the sample match, i.e. normalize the low sample to the hotter one) before comparing the waveforms.
Sorry for the long post