Beat Matching Algorithm

Viewed 3160

I've recently begun trying to create a mobile app (iOS/Android) that will automatically beat match (http://en.wikipedia.org/wiki/Beatmatching) two songs.

I know that this exists out there, and there have been others who have had some success, but I'm running into issues related to the accuracy of the players.

Specifically, I run into "sync" issues where the "beats" don't line up. The various methods used to date are:

  • Calculate the BPM in advance, identify a "beat" (using something like sonicapi.com), and trying to line up appropriately, and begin a mix in with its playback rate adjusted (tempo adjustment)

  • Utilizing a bunch of meta data to trigger specific starts and stops

What does NOT work:

  • Leveraging echonest's API (it beat matches on the server, we want to do it on the client)
  • Something like pydub (does not do it in realtime)

Who uses this algorithm today:

  • iwebdj

  • Traktor

Does anyone have any suggestions on how to solve this problem? I've seen lots of people do it, but doing it in real time on a mobile device seems to be an issue.

1 Answers
Related