Hello all,
I'm wondering if anybody has explored the process of creating and retrieving audio "fingerprints". My experience with such a process is very limited, so please forgive me if my jargon is un-informed.
What I'm interested in is simple:
shapes, etc.? 3. test that fingerprint against a database/collection of other fingerprints 4. return a value dependent on whether or not a match was found and perhaps a value (percentage?) representing how reliable the 'match' would be.
I've taken a look at [choice] in the "extra" folder but it doesn't seem immediately applicable to this project. ? Perhaps I'm misunderstanding this object and its usage.?
The eventual goal would be to record a performance or excerpt of a performance and be able to determine which song is being played.
Many thanks, Dave S
On Tue, 26 Nov 2002, David Sabine wrote:
- test that fingerprint against a database/collection of other
fingerprints 4. return a value dependent on whether or not a match was found and perhaps a value (percentage?) representing how reliable the 'match' would be.
Has anyone used postgreSQL of mySQL to store such things and query them through PD? I'm thinking of using pyext to query a relational database filled with 'notes' and associated metadata...
any ideas/pointers welcome...
d
www.ariada.uea.ac.uk/~dcasal --)+
Hi, david casal hat gesagt: // david casal wrote:
Has anyone used postgreSQL of mySQL to store such things and query them through PD? I'm thinking of using pyext to query a relational database filled with 'notes' and associated metadata...
I have the vague memory, that there already is a PostgreSQL extenal out there. You might want to check the PureData-Base (of course)
Frank Barknecht _ ______footils.org__
i am also working on a db connection right now. for performance reasons (you don't want your audio to stutter just because you save something in a database) i am coding a message queue external for that purpose. also, someone might use perl or python on the db-end which are much easier to handle than c/c++.
i can forward a snapshot of the test-external to anyone who wants to contribute (and i hope, that there doesn't exist any mq-external yet).
works quite nice, yet functionality is minocre in the moment (most things hardcoded). yet since i use flext it would be finished in no time.
martin
On Thu, 28 Nov 2002, Frank Barknecht wrote:
Hi, david casal hat gesagt: // david casal wrote:
Has anyone used postgreSQL of mySQL to store such things and query them through PD? I'm thinking of using pyext to query a relational database filled with 'notes' and associated metadata...
I have the vague memory, that there already is a PostgreSQL extenal out there. You might want to check the PureData-Base (of course)
ciao
Frank Barknecht _ ______footils.org__
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
martin pi
http://attacksyour.net/pi
www.machfeld.net
On Thu, 28 Nov 2002, Frank Barknecht wrote:
Hi
I have the vague memory, that there already is a PostgreSQL extenal out there. You might want to check the PureData-Base (of course)
Indeed: http://www.reverberant.com/Pd/
Iain Mott's sqlsingle object, which talks to Postgres
...if Iain is listening...how would you (can it) handle retrieval of sound objects (samples)?
d
www.ariada.uea.ac.uk/~dcasal --)+
Hello all,
The past discussion on this topic has been primarily about the 'database' which might store the audio fingerprints.
However, the initial problem is not storage or retrieval of the fingerprint, but what does the fingerprint LOOK like? How does one create a 'stamp' or 'summary' or 'fingerprint' of a sound file? For example, if I were to make a 'fingerprint' of a 4 minute song...I might map the peak frequencies along a time code; or perhaps generate a 3 dimensional 'topography' of the entire song via FFT? These might be valuable references when comparing multiple audio 'fingerprints'. However, it seems like a clumsy way to do it - a method that might be reliable but would be incredibly slow if one were to compare one 'fingerprint' to a database of a thousand songs.
Does anybody have any experience with this?
Ideally, an audio 'fingerprint' would be a wonderfully small sequence of very important information that could be stored in any number of ways - perhaps a database, perhaps the new [pool] object, perhaps text files. But the storage of such a 'fingerprint' doesn't seem to ME to be as mysterious as the 'fingerprint' itself. What IS it? is it a coordinate map? is it an array of peak frequencies?
Regards, Dave S
hi david,
Am Freitag, 29. November 2002 05:30 schrieb David Sabine:
Hello all,
The past discussion on this topic has been primarily about the 'database' which might store the audio fingerprints.
However, the initial problem is not storage or retrieval of the fingerprint, but what does the fingerprint LOOK like? How does one create a 'stamp' or 'summary' or 'fingerprint' of a sound file? For example, if I
there are serveral ways. i digged into that topic a long time ago when i wanted to restore the titles of my mp3 files. btw, there are some open-source tools around that do that, and can work in conjunction with a song-database.....
first, you can count the beats in the file, secondly you can calc the number of beats for one minute, an you can create some kind of "beat pattern" to identify it. but thats not enough. you should also capture the avareage energys in specified frequency bands. you can also extract a pattern out of this to analyze sound material. for example, like : "after two times of high mid-frequency energy follow 3 times of low freq and one high freq" also the average loudness of a sound (also in "patterns" of serveral seconds each) can help. other characteristica may be the distribution of loud and silence phases in the material.
give all these "parameters" a weight, and such "fingerprint" where the most parameters are around the same weight's probably is the right one decribing a actual fingerprinted song.
Regards, Dave S
greets,
chris
hi again,
forgot some links in the previous mail, these may be some starting pointers for you :
http://bitzi.com/bitcollider/ - generates fingerprints by using cryptographic hashes
http://www.musicbrainz.org/ - look for trm, but also get the other stuff
greets,
chris