Ну вообще на слух.
Я когда-то писал тулзу, в которую нужно нажимать на кнопку в такт музыке, и она бпм высчитывала.
Тут более апгрейднутая, но слегка недоделанная версия:
http://bemaniclub.com/Data/Users/imp/program/bpmassistant/1.0.0.0/BPM%20Assistant%20Live.exe (требует .net framework 3.5 runtime)
Тоже надо руками ритм вкняпывать. Но если делать это точно, то оно само сгенерит #BPMS секцию для вставки в симфайл руками (может помочь для всяких live версий с постоянно плавающим bpm). В этом режиме использовать или если наличествует хорошее чувство ритма и ровные пальцы, или если совсем уж впадел применять более православные методы, типа поиска вейвформ в аудиоредакторе.