Dear Team,

After waiting for your reply for long time on Java wrapper for GNSDK (wanted to know the strategy to help you in development, but no reply), finally we've download GNSDK started checking samples. But we don't know whether we could do it, hoping for the best.



  1. Yesterday, we've recorded a song from Boney M's album track 'Rasputin' for 30secs from one mobile to other. it was saved in .amr format and we've converted it to .mp3.  here is the url:
  2. The recorded file we named it test.mp3 and placed in data directory of samples/musicid_file_trackid.
  3. Opened main.c file and commented lines which uses #define for audio names and added our same constant name but file was test.mp3
  4. Then, executed make command on shell from samples/musicid_file_trackid folder and we found some files generated.
  5. From the list of files, we run sample as ./sample clientid clienttag lincese.txt (clientid, clienttag, lincense got from the account) license.txt has the content below the license signature string.
  6. We got the album name wrong for that track.


We don't know what went wrong. We don't know much to play with C. When we recorded the song using gracenote's mobile client it identified, but when we're doing by inputing a recorded file on mobile client, then no results.


Our requirement is as follows:

  1. User will upload a single song (it can be partial/full song) to our website.
  2. We've to identify the album, track and artist name. That's it.


What we are planning:

  1. Store the file in a particular folder
  2. run the c file through command line/shell using PHP's shell_exec function.
  3. Our command will be in the following format
    ./identify clientid clienttag license.txt audio_track.mp3/wav
  4. as shell_exec returns the output as a string, we'll extract the album, track, artist name from that string using PHP.

Please help us in achieving the above. Correct us if we are wrong.



Sailesh Jaiswal


Hello Sailesh, sorry for the delay in responding.From your explanation it sounds like you are passing the mp3 directly into TrackID, correct?GNSDK does not do any decoding of the audio, so you must decode the file to a WAV file (or rather a raw PCM file, which is just a header-less WAV file). The command line application would then read from this WAV file to do the fingerprinting with the MusicID-File fingerprinting APIs. -Paul Quinn

Dear Paul,Tried the same with wav file too but no luch then only I've posted the above thread.(check the bold text in above thread mentioning /wav  file as input)..Paul, I'm here on gracenote for around 3 weeks but I didn't get any solution. I've left with this weekend to answer our client on audio recognising service. If I donot find any solutions, then have to break my head with EchoNest guys.Please respond back soooon... before I lose hopes.. Thank you, Sailesh Jaiswal  

Hi Sailesh,You wrote:

6. We got the album name wrong for that track

Getting the album name correct is generally hard as the same track will validly appear on many different albums. Ensuring the album name you expect appears in the result requires that you give TrackID some text data about the album. Without providing TrackID some hint about the album you expect, it will choose an album deemed most relevant and popular. If you can save the filename with information about the track, including the album name, then TrackID can use the filename data as a hint. Try this instead of writing the file to a fixed filename named 'test.wav' which has no relevant metadata that be gleaned from it. -Paul Quinn

Dear Paul,Yes, I agree there are many instances in the market. But when we've tested the same audio with Android version of yours it detected the song right that too in 5secs of time. We want the same to happen on web.As I mentioned, user will be uploading the song and we just want to check the audio is at gracenote database as it does on mobile. For this I need the 'C' language code, where your samples are not working for us.What we want is a simple 'C' code, where we input the clientid clienttag license.txt and audio.wav and output should be ablum name, track and artist name. The output can be a text data with some separator or xml or json.Please help us to write a 'C' code to achive the same, the same as what we've seen on android version of GNSDK. Code which take the wav file as input and output album, track and artist name.We're in process of buying the commercial license, to integrate such api in our web application. Thank you,Sailesh Jaiswal

Day by day, weeks are passing,thread by thread, hopes are losing...guys..... please help... You are the masters, you've written GNSDK and sample, can't you space some time to write a script for me.....................

Hello Sailesh,I now think that using MusicID-File is not the right product for your task. MusicID-Stream should work better for your scenario. MusicID-File is geared towards identifying sets of files on a users' local machine. MusicID-Stream is meant to recognize audio from mobile sources.The module you want to use is gnsdk_musicid. Use the APIs to generate a fingerprint (ie: gnsdk_musicid_query_fingerprint_begin) and use the GNSDK_MUSICID_FP_DATA_TYPE_STREAM3 flag as the fp_data_type parameter when doing so. This will fingerprint the audio in a way that will best support the mobile audio scenario. The results from this type of query will have a better chance of targetting the most popular album for the track, and should produce better results when no text metadata is provided. -Paul Quinn

I should also have noted that there is a musicid_stream sample in the SDK package that you can follow to implement what I described above. -Paul Quinn

Your system is working not well in this time then you need to delete cookies in internet explorer windows 10 and temporary files, that the most using way to removing cookies in the world wide. so you have also use this web portal in without facing any type of the requirement.