2010-02-14 14 views
6

Jestem obecnie rozglądać się za dobrym uniwersalnych pokonać wykrywania kodu biblioteki/źródło w C++, ponieważ uważam, że to bardzo trudne do osiągnięcia satysfakcjonujących wyników z kodem detekcji rytm pisałem sobie za pomocą tego samouczka: http://www.gamedev.net/reference/programming/features/beatdetection/C++ Biblioteka detekcji FFT?

Jest to szczególnie naprawdę ciężko, jeśli chcesz, aby działało z jakąkolwiek muzyką, więc zastanawiałem się, czy istnieje już coś użytecznego?

Dzięki!

Odpowiedz

-1

Może brakuje mi czegoś, ale nie rozumiem, dlaczego nie można użyć procedury FFT Biblioteki Naukowej GNU (lub jakichkolwiek innych podobnych do tych zawartych w BOOST)?

+0

Szukam detekcji Beat, która używa FFT jako wejścia i wykrywa, czy jest nowy beat w pewnym zakresie, czy nie. Dostarczone biblioteki są "tylko" procedurami FFT, jeśli się nie mylę? – user240137

+1

Aby wykryć "uderzenie" lub w zasadzie okresowy skok, potrzebujesz tylko FFT? – dangerstat

+1

Tak, we wszystkich implementacjach wykrywania rytmu widziałem do tej pory zasadniczo porównanie FFT z jedną z klatek przed i być może uruchomiono na niej jakieś funkcje wygładzające, aby odrzucić każdy rodzaj szumu. jeśli różnica jest powyżej pewnego progu dynamicznego, masz rytm. – user240137

0

Ah, Vamp. Gdyby tylko te interesujące działały w czasie rzeczywistym.

użytkownik240137, nie wiem, czy naprawdę jesteście aż tak "akceptujący odpowiedzi", ale po obejrzeniu wampira znalazłem Aubio (aubio.org) i stwierdziłem, że łatwiej jest zhakować jego funkcje w moje projekty, wykonuj pracę w czasie rzeczywistym (jeśli tego właśnie szukasz).

Ostatnia: jeśli naprawdę chcesz obsłużyć własną FFT, użyj kissFFT jako łatwiejszej alternatywy dla FFTW.

4

można spróbować Aubio: http://aubio.org/

To nie wydają się działać (przynajmniej dla mnie dzisiaj) w oknach, ale to nie działa w systemie OS/X

+0

powinien dobrze działać na windows w dzisiejszych czasach, wypróbuj go! – piem