Hi, I am new to the Gracenote technology. I wonder if I can use GNSDK or any of the open source files to build my own audio recognition server? So I can use my own sound files to generate fingerprints and import to the server? So that when my clients use the app to record part of the sound and the server can recognise from our own database instead of Gracenote database. Thanks!

Hi, your idea of a recognition server is a fine one. Sounds like you want to fingerprint on one machine, and send those fingerprints to another to do the query? GNSDK is probably the right tool for this job.

Since GNSDK is a C based API, you should be comfortable in C or C++ to get going with it quickly. If you want to build this as a web service you will need to build a server around GNSDK to handle the requests. But, before going that far try just doing a quick app to do fingerprinting and querying.

The 'musicid_lookup_album_toc' sample included with GNSDK is a good place to start to get GNSDK up an running for this use-case. That sample does CD TOC queries, so you will need to modify it to do fingerprinting.

For this case you can use the gnsdk_musicid module APIs to do most of what you need (you will also need the gnsdk_manager and gnsdk_dsp modules to be initialized). MusicID has the gnsdk_musicid_query_fingerprint_* APIs to generate fingerprints from decoded audio. You can choose to query the fingerprint directly after generating a fingerprint by calling gnsdk_musicid_query_find_albums(), or to get the actual fingerprint (to store or send elsewhere) use the gnsdk_musicid_query_get_fp_data() API. Querying the pre-generated fingerprints involves doing a MusicID query to which you set the fingerprint using the gnsdk_musicid_query_set_fp_data() API.

Hope this helps get you started.

-Paul Quinn

Hey again, just re-read your posting and realized I missed the part where you said "the server can recognise from our own database instead of Gracenote database".No, that is not something available through our SDKs. The recognition of fingerprints is such a complex, cpu and storage intensive process that we don't ever expect our developers would want the burden of creating such a solution.That's the solution we are here to provide! :) Thanks,-Paul Quinn

Paul, can you please confirm that using the GNSDK, new content can be submitted / included in gracenote's global database?

If so, can fingerprint queries/recognition be limited to the content that we have submitted?

An essential objective in P2P systems is that all customers give assets, including data transmission, storage room, and registering power. Consequently, as hubs arrive and request on the framework expands, the aggregate limit of the framework likewise increments.