Jak wykryć BPM i tonację w utworze?

Nie wiem, jak to jest w przypadku innych osób parających się muzyką, ale mnie zaskakująco często potrzebna jest wiedza, jakie tempo (a czasem i tonację) ma jakiś plik wav czy mp3. Szczególnie przydatne staje się to, kiedy aranżujemy istniejący już utwór, ewentualnie chcemy do własnej kompozycji dodać np. perkusjonalia. W sytuacji, gdy wspomniane pliki dźwiękowe nie posiadają w metadanych informacji o tempie, fajnie byłoby to tempo jakoś wyznaczyć.

Zasadniczo niby DAW-y powinny posiadać odpowiednie narzędzia, np. FL Studio ma bardzo wygodną funkcję analizującą pliki pod kątem tempa:

Warto jednak posiadać dodatkową możliwość sprawdzenia liczby BPM. Uruchamianie drugiego DAW-a w tej sytuacji wydaje się dość ekscentryczne, pokażę Wam zatem inne narzędzia, małe i stosunkowo szybkie.

HoRNet SongKey Mk3

Jest to zdecydowanie najprostsze rozwiązanie, jeśli już siedzimy w jakimś DAW, bowiem jest to po prostu wtyczka VST. Zapinamy ją na kanale, gdzie mamy wrzucony "nieznany" plik dźwiękowy i włączamy odtwarzanie. Poza wykryciem tempa oraz tonacji, plugin próbuje też wykrywać na bieżąco odgrywane akordy, co również może być przydatne, więc myślę, że do typowo coverowej pracy jest to bardzo dobre narzędzie. Zakupić je można w cenie niespełna 13 euro na stronie producenta, co uważam za adekwatną cenę, a samą wtyczkę za przydatną.

AbyssMedia BPM Counter

To już dość stary program, którego podstawową zaletą jest to, że jest w miarę szybki w analizowaniu plików. Robi to jednak dość nieprecyzyjnie, a często wręcz nie pokazuje żadnych wartości, trudno jest mi go zatem polecić jako użyteczne narzędzie pracy, bardziej jako koło ratunkowe - nie zaszkodzi go mieć pod ręką na wszelki wypadek. Program działa w bardzo prosty sposób - po uruchomieniu wskazujemy folder z plikami dźwiękowymi, a program przeskanuje znalezione pliki i pokaże ich parametry. Poza możliwością wykrywania liczby uderzeń na minutę (czyli BPM) i ewentualnym zapisaniem tego w metadanych plików, niczego więcej się tutaj nie znajdzie, chociaż w aplikacji znajdziemy przyciski do konwersji, zmiany tempa, edytora audio i innych potencjalnie przydatnych funkcji, jednak wymagają one doinstalowania kolejnych aplikacji producenta.

AbyssMedia TuneXplorer

To nowsza i bardziej rozbudowana aplikacja niż BPM Counter. Trzeba za nią zapłacić prawie 19$, jednak warto napisać do twórców, bo mnie udało się zyskać "czarnopiątkową" zniżkę 50%, co już wydaje się ceną adekwatną do prezentowanej tu funkcjonalności. Program - podobne jak przodek, BPM Counter - potrafi wykrywać tempo plików dźwiękowych i zapisywać je w metadanych, ale dodatkowo umie też wykrywać tonację. Zasada działania jest podobna - wskazujemy plik lub folder, a program dokonuje jego analizy. W odróżnieniu od poprzednika, możliwa jest analiza rekursywna, czyli można zaznaczyć folder nadrzędny, a program przeanalizuje jego zawartość łącznie z podfolderami. I tutaj znajdziemy w menu powiązania z innymi narzędziami audio producenta, które trzeba zakupić i zainstalować oddzielnie.

FL Studio 20

Jako że FL Studio ma chyba najbardziej zaawansowany moduł rozpoznawania tempa z wszystkich dostępnych mi DAWów, będzie reprezentowało ten właśnie rodzaj oprogramowania. Moduł detekcji tempa nieco podpiera się współpracą z użytkownikiem, każąc mu zawęzić obszar docelowego tempa do jednego z zakresów. Może to być przydatne, bo powinno dać szansę uniknięcia podwajania tempa. Niestety, cały proces jest ciut długotrwały, jeśli mamy do sprawdzenia większą liczbę plików.

Porównanie

Z ciekawości postanowiłem sprawdzić, jak się powyższe rozwiązania sprawdzają w praktyce. Przygotowałem zestaw utworów, których tempo jest mi doskonale znane (bo sam je ustawiłem), po czym każdy z wymienionych programów mógł się wykazać dokładnością i skutecznością.

Efekty nie powalają. Niestety, okazuje się, że wykrycie tempa nie jest tak banalnym zadaniem, jak by się mogło wydawać - w zasadzie żaden z przedstawionych programów nie zdał egzaminu na piątkę. Najbliżej całkowitego sukcesu był SongKey od HoRNet - wprawdzie dwóch utworów nie udało mu się rozpoznać, ale tak naprawdę po prostu podwoił ich właściwe tempo, więc teoretycznie wszystko się zgadza. Nieźle poradziły sobie tuneXplorer i FL Studio 20, ten pierwszy ciut lepiej, bo nie trafił kompletnie tylko jednego utworu, dwa zaś podwoił tak jak SongKey (i to te same). Najgorzej wypadł BPM Counter, który w zasadzie trafił tylko dwa razy, przy czym jedno z tych trafień było podwojone.

Słowo na koniec

Uzyskane wyniki trzeba traktować mocno orientacyjnie. Czasem wartości mogą być podwojone, czasem rozmijać się z rzeczywistymi o 1-2 uderzenia na minutę, czasem być kompletnie nieprawidłowe. Dodatkowo warto zauważyć plusy i minusy każdego rozwiązania: SongKey sprawdzi się świetnie, jeśli chcemy wykryć tempo fragmentu wstawionego do DAW; jeśli używamy FL Studio 20, to ma ono całkiem sprawnie działające narzędzie detekcji tempa. Oba te rozwiązania są powolne, bo trzeba uruchomić DAW, wrzucić do niego badane pliki, dodać plugin albo uruchomić funkcję detekcji. W przypadku chęci sprawdzenia wielu plików lepiej skorzystać z tuneXplorera, który umożliwia w miarę precyzyjne obliczenie tempa wielu plików jednocześnie, co przy wyszukiwaniu czy uzupełnianiu informacji o wielu samplach może być bardzo pomocne. BMP Counter w zasadzie należy traktować jak ciekawostkę - czasem zadziała, ale w większości wypadków jest z tym słabo.

Przetestowałem jeszcze kilka tzw. managerów plików audio, czyli m.in. ADSR Sample Manager oraz Soundly, jednak ten pierwszy nie potrafił w ogóle wyznaczyć tempa ani tonacji (mimo że w interfejsie użytkownika widniały odpowiednie kolumny, pozostały one jednak puste), a drugi chyba w ogóle nie ma takiej funkcji. Jeśli ktoś zna podobnego typu narzędzie, które sprawdza się w praktyce, proszę o zostawienie wiadomości w komentarzu.

Komentarze