Can MSP do fingerprinting of audio files?

xma2's icon

Hi I'm new to the MaxMSP and I'm wondering if there's a way to fingerprint audio from different sources against a database, to determine if the sound is from the same source?

For example, the source in the database is from a high fidelity recording, but, the audio to compare it to can come from a low grade source such as the audio captured by a camcorder at a sporting event, tv, radio etc. with the audio (tune) played in the background.

I have go through tutorials but still couldn't think of a solution for it...Can anyone give me some ideas to do this?

Thanks
Shannon

Roman Thilenius's icon

maybe "comparing" would describe it better than "fingerprint" but all you need
to find out if two files are the same or not is [-~ ] and then something like [==~ 0]
and [maximum~].

-110

Luke Hall's icon

Roman's method will only work if you are comparing two identical recordings. It seems like what you are trying to do is a bit more complicated. It might be worth looking into the zsa descriptors or externals like [pitch~], [analyzer~] and [brightness~] from the CNMAT bundle. You could then see how good the match is across a number of different comparisons.

lh

xma2's icon

Thanks a lot for giving me ideas on what objects might be helpful , Roman and Luke~ >_<
I have download the CNMAT bundle and was trying to understand [pitch~], [analyzer~] and [brightness~]. They are used to analyze the properties of audio sources, right?
I was thinking to match the live captured sound, do I need to compare it to each pre-record sound file in the database in order to find which has the minimum difference? Will that take too much time ?

Tj Shredder's icon

I think its an interesting problem, but not as easy as it looks like. Certainly not a beginners task. There might exist java code for this purpose in the wild, you could adapt to mxj~.

You also might be able to access MusicBrainz or other services with some jit.uldl