Nice post aybe. -- Paul
Did you have a hard time implementing the Artist/Search API ? (tutorial inside)
Hotttest songs without duplicates
Aquarius - Yes, the duplicates are a pain in the neck. We are working on an overarching solution. Until then, there are a couple of options for you to generate lists of hot songs with no dups.
One way, is, as you suggest, to use the playlist API. The best option for your use case is to create a playlist of genre-radio type. Use either the 'pop' genre or one of our pseudo-genres:'hot', 'current' or 'discovery'. Here's the call:
http://developer.echonest.com/api/v4/playlist/static?api_key=YOUR_API_KEY&type=genre-radio&genre=hot
You can also easily filter out song duplicates using the technique in this demo:
http://static.echonest.com/demo/songhottt/song-hottt.html
This approach takes advantage of the fact that duplicate songs almost always share the same hotttnesss. This app creates a song hash function that consists of the artist id and the song hotttnesss and eliminates dups by simply keeping a set of the these hashes and dropping any new songs that already have a hash in the set.
Here's the salient code:
var dups = {}; // used to eliminate dup songs
function isGoodSong(song) {
var hash = getDupHash(song);
if (! (hash in dups)) {
dups[hash] = song;
return true;
} else {
return false;
}
}
function getDupHash(song) {
return song.artist_id + song.song_hotttnesss;
}
Hope this helps.
Paul
Recognizing a song from a radio station
Hello everybody,
I have a little problem: I have two identical Music clips of the Song “Stand up tall” by Ryan Sheridan, the original from the CD and a recording from a radio station (SWR3, Germany). They have the same length, speed, pitch and volume and I created them with the same editing program, but “Echonest” recognizes only the original cut.
WHY???
I have identified the songs with the following line of code:
curl -F "api_key=######" -F "filetype=mp3" -F "track=@Stand up tall.mp3""http://developer.echonest.com/api/v4/track/upload"
Here are the Files:
MP3 Original: https://docs.google.com/file/d/0B2rpsXPx9PGZUVVYRTgwa3ktQmM/edit?usp=sharing
MP3 Radio: https://docs.google.com/file/d/0B2rpsXPx9PGZMm9rc2wtbkU3QW8/edit?usp=sharing
TXT Original: https://docs.google.com/file/d/0B2rpsXPx9PGZSGtwVVZ2SnFIdzQ/edit?usp=sharing
TXT Radio: https://docs.google.com/file/d/0B2rpsXPx9PGZNWJGbjYxSE53aEE/edit?usp=sharing
XML Original: https://docs.google.com/file/d/0B2rpsXPx9PGZTXRVbWxEbkxQTGs/edit?usp=sharing
XML Radio: https://docs.google.com/file/d/0B2rpsXPx9PGZcjJTbDdDeVRrZEE/edit?usp=sharing
ID Original: TRUEMPB13FBD3AC581
ID Radio: TRBBSWH13FBD3CC9FD
Why recognizes “Echonest” only the original?
P.S.: Sorry for my bad English, I’m from Germany.
Soundcloud URLs for Artist
thanks for the suggestion.
Paul
Hotttest songs without duplicates
Paul,
Ahaha, pseudo-genres! They are clearly the answer. Nice. I must have missed that they exist :) I don't want to strip dupes myself because it breaks counting -- if I say "I want ten results", then I don't know how many to fetch from EN in order to get ten unduped results. But the pseudo-genres seem to be the right approach. Thanks!
Stuart
"limit" parameter with multiple buckets?
I'd like to create mixes based on my own catalog and some remote service. To achieve this I use multiple bucket values, eg.:
http://developer.echonest.com/api/v4/playlist/dynamic/create?bucket=id%3Arhapsody-US&bucket=tracks&bucket=id%3ACAxxxxxxxx&artist=King%20Crimson&artist=Yes&type=artist-radio
When using rhapsody, I would get many songs back which come without any ID, neither from my catalog nor from rhapsody. Using Deezer I would get either or, or even both. That's a bit odd, as using rhapsody alone seems to not return those songs without a rhapsody ID.
I tried to use the "limit" parameter. Its description says "if 'true', limit the results to any of the given idspaces or catalogs". Does this mean the API would pick just one of my list, and use this one exclusively? That's what I'm seeing. But I would have expected the mix to then only return songs which are in at least one of my id spaces. Is this wrong?
"limit" parameter with multiple buckets?
mherger - if limit=true, you should get a song that is guaranteed to be in one of your specified ID spaces. We'll take a look to see if there's some issue.
-- Paul
Did you have a hard time implementing the Artist/Search API ? (tutorial inside)
Thank you.
"limit" parameter with multiple buckets?
Thanks Paul. Here's what I'm seeing:
- deezer & local library catalog, limit not set: I'm getting a mix of both sources
- rhapsody, limit not set: I'm getting tons of tracks without an actual track list: { tracks: [], artist_id: "ARX2R1M1187FB37CB7", id: "SOEXZEK1369F187A19", artist_name: "King Crimson", title: "Moonchild" },
- rhapsody, limit=true: I'm getting Rhapsody only tracks with track ID list
- rhapsody & local library catalog, limit not set: mix of local and rhapsody tracks, many of which don't have a tracks ID list
- rhapsody & local library catalog, limit=true: I would only get tracks from my own catalog, but with rhapsody track IDs
New enforcement of Echo Nest Taste Profile size limits
Greetings Developers:
We are releasing an update to our API that may affect your application. Here's what's changing:
As described in our API documentation here:
http://developer.echonest.com/docs/v4/catalog.html#update
our catalog (a.k.a. Taste Profile) API has a documented limit of 100,000 items per taste profile. Although this is a documented limit, until today, this limit has never been enforced. Starting today we are enforcing this limit. This means if you try to add more than 100K items to a Taste Profile, the call will fail with an error. Taste Profiles that are already larger than 100K items will retain their full set of items, but you will not be able to add any more items to them. You may want to check your catalog update code to make sure that you handle this new behavior properly.
track/upload tracks remain stuck in "pending"
himanshugupta2010ss,
Are you seeing some tracks still in "pending" status? Can you provide a TRID or MD5 to identify?
= David =
New enforcement of Echo Nest Taste Profile size limits
Paul - I don't have enough tracks to test this limitation :-). Could you please give use more information about the error we are to expected? Eg. a json dump of the full result message? Would be great - thanks!
Michael
Identifies a song given an Echoprint
Hi : Mr Justin Haygood had give us two patches. I try it ,the score had improve .So why didn't you to add them to your codes? May be it will have some harm I don't know? Thank you .
Minimum sample size of PCM stream
Justin Haygood
Apr 6
Hello Mario!
3-5 seconds might be to short, but there's a few changes we did to make it better for short (15-30) content with OTA recognition. I've attached 2 patches that we used that made it work a lot better, however, fingerprints generated aren't compatible with stock libcodegen (however, reference fingerprints created using the patched libcodegen matches sample fingerprints created using the patched libcodegen).
The changes basically involve:
- Increasing density of fingerprints (more data in less time) to increase match rate for short samples
- Reducing false positive rate by skipping over "empty" hashes.
However, we've seen much better match rates (though 3-5 seconds is probably on the short side even then) with some of the proprietary ACR technologies. I highly recommend you take a look at them.
- show quoted text -
- show quoted text - -- You received this message because you are subscribed to a topic in the Google Groups "echoprint" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/echoprint/J7MQftCfpCM/unsubscribe?hl=en. To unsubscribe from this group and all its topics, send an email to echoprint+...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Attachments (2)
changeset_SecondScreen_trunk_Libraries_libcodegen_r51612.diff 774 B View Download
changeset_SecondScreen_trunk_Libraries_libcodegen_r51391.diff 836 B View Download
在 2013-06-27 22:06:47,"Andrew Nesbit"anesbit@echonest.com写道: - 显示引用文字 -
How well does voice fingerprinting work?
We don't support this. Please ask on the echoprint google group.
Error:java.lang.Exception: Unknown error
Please could you redirect your questions to the Echoprint Google Group, and provide more details about exactly what is and isn't working.
Thanks!
Andrew
How long does the install take?
I hired someone to install the api for me. They said its going to take 5-6 days. What is the average time for someone with general knowledge in this field? I'm just wondering if someone is pulling my leg or not.
thanks for reading
How did you make "What's your stereotype?"
Hi there,
Thanks for an awesome API!
I was curious as to whether you had any additional information on how the lab project "What's your stereotype?" (http://labs.echonest.com/stereotypes/) was created, and how I might go about re-producing something similar using the EchoNest API.
For example, how does one say "You are a typical tweeny bopper, drama filled, teenager. You’re that girl.." based on the artists alone, is there a tremendous amount of human input involved in this process or might some of this be generated automatically from data?
Setting up Remix: en-ffmpeg not found
I am currently attempting to get the Echo Nest Remix API to work in python, but I am getting the following error:
RuntimeError
en-ffmpeg not found! Please make sure ffmpeg is installed and create a link as follows:
sudo ln -s `which ffmpeg` /usr/local/bin/en-ffmpeg");
/usr/local/bin is on my system path, and en-ffmpeg exists in there. I tried manually copying in the Mac version of en-ffmpeg from the Remix source (external/en-ffmpeg/mac/en-ffmpeg), as well as compiling ffmpeg myself, and copying it to /usr/local/bin/en-ffmpeg.
Does anyone know why I could be getting this error?
Setting up Remix: en-ffmpeg not found
If you type en-ffmpeg from your terminal do you see its usage string?
If so, what happens when you try this:
# python
>>> import os
>>> os.system("en-ffmpeg")
There's nothing special about the way Remix calls ffmpeg, it just system shells via Popen. That error indicates that when it tried to do that it received "command not found" (it actually looks for this string)
Setting up Remix: en-ffmpeg not found
I see the usage string when I type en-ffmpeg into my shell.
When I run those python commands though, I get a "command not found" error.
I am also using PyCharm for the first time, so maybe I am having some sort of problem with its interpreter. I tried explicitly adding /usr/local/bin to its list of paths, but that also did not work.