« on: March 09, 2015, 01:19 PM »
I used to record a lot of music via the sound card, and have the recording program auto-name the tracks. But somehow the various programs never managed to name any Danish track, so over time I lost interest.
Will any of the solutions you are thinking about define anything but "American" music?-Curt (March 09, 2015, 11:56 AM)
So, there are several different ways to accomplish that and I have some suspicions as to what you had working / didn't have working there. First, there exists several programs that can rip from sound cards as standalone applications or as plugins to media players. 'Ripper' for WinAmp comes to mind. The majority of these rippers will simply look for meta data contained in the file/stream and build you a file with the song name, artist, etc., and append other found meta data to the file. In these cases, there is no real audio fingerprinting being done. The data is either there for the ripping application to grab or it is not.
The other option is the type of application that I made; which rips a sample from sound card and queries some centralized database for song information. Echoprint was amazing at this because EchoNest created a tool to work in bulk to build their samples, which ultimately were stored in the smallest necessary array. Further, the tool did not need to listen to the music at the speed you do, it could do what it needed to do very fast. With that encoding, one would need to query EchoNest's servers for the closest found code and they gave back a JSON object with all kinds of great information (artist, song name, album, 'hotness'). This could be used to rename files and/or add meta data.
The obvious question is, "How do they know what the meta data for this song is?". As far as we know, they had relied on the community to tell them with their bulk encoding/decoding and connecting to EchoNest to tell them what those songs were. That's pretty much what their bulk encoder did, it grabbed everything about the files you had and allowed you to send that to them. If your files had meta data then they got song encodings with accompanying meta data. Also, it's likely that the EchoNest partners (one of which is Spotify) is providing additional information to them. This is speculative, however, so I digress.
For your Danish track issue, the problem has different possible reasons. First, you may want to check how your application is actually attaching meta data to your music, whether offline or online. If the program works with files and can do it's job offline, then there's a pretty good chance that it's simply targeting meta data. In this case, you will want to find what is different about your Danish tracks as opposed to your others. Something as silly as the Danish tracks using UTF-8 in their meta data while your other tracks using Unicode could be all the reason for your issue. If, however, you find that your ripper only works to identify tracks online, then it is likely that it is fingerprinting the audio and connecting to a database for meta data information. In this case, you're somewhat stuck because you are at the mercy of the robustness of identifying database. For example, MooMa claims to have 7 million songs in their database. Spotify holds more than 20 million songs, so just that service alone would cause MooMa to potentially have less than 50% accuracy. This actually ends up not being the case because popular songs are identified more frequently and the more obscure ones are least likely to be identified. So in your case, if your software is connecting to a centralized database, then you would just need to be hopeful that there are enough Danish music lovers to have previously identified your song and uploaded that meta data to the server at least once.
I hope this helps and makes things a little bit clearer.
although this isn't something i'm interested in, just wanted to thank toastymah for a cool post -- it's always nice to hear from coders who have figured something out when it's outside my area of expertise.-mouser (March 09, 2015, 12:10 PM)
Thanks for the kudos. Happy to help when I can.