I have a corpus of several thousand sounds. Now I pick a sound sample S, and I want to find in my corpus the sound S' that is the most similar to S. The application is for music, for a composition that I am working on :) I found a lot of questions which are all related to speech recognition. The problem here is different as rhythm is the most important info for me, even before timbre. If S' has a different length than S, it must be somewhat of stretched version of it.
The samples are between 0.5 seconds to 2 seconds (approximately). I have tried to compute MFCCs, apply DTW, but I don't get convincing results. I still believe MFCCs are the way to go, however I started to think DTW is not suited for my purpose, because it removes the rhythm information. For example (and if I understood well), DTW would recognize that the sounds "Puuuum pum tchak"
and "Pum pum tchaaaak"
are the same. But obviously, when it comes to music, they are not, as the timing is crucial.
So, how to compare 2 matrices of MFCCs, keeping the time information? Or is my approach completely wrong?
I was currently looking into procrustes analysis, as I have read that it compares 2 shapes, removing scaling, ... and this sounded good to me.
EDIT
With DTW I might have :
distance("Pum pum tchak", "Pum pum tchaaaak") < distance("Pum pum tchak", "Puuum puuum tchaaak")
in other words, the time wraping doesn't care about the fact that "Puuum puuum tchaaak"
is just exactly the same as "Pum pum tchak"
but with slower tempo.