2010-02-14 11 views
6

Attualmente sto cercando in giro per un buon allround battere il rilevamento codice della libreria/sorgente in C++ da quando l'ho trovato davvero difficile ottenere risultati soddisfacenti con il codice di rilevamento battito io ho scritto usando questo tutorial: http://www.gamedev.net/reference/programming/features/beatdetection/Libreria di rilevamento battito FFT C++?

E 'particolarmente davvero difficile se vuoi farlo funzionare con qualsiasi tipo di musica, quindi mi chiedevo se c'è qualcosa di usabile là fuori già?

Grazie!

risposta

-1

È possibile che manchi qualcosa ma non riesco a capire perché non è possibile utilizzare la routine FFT della GNU Scientific Library (o qualsiasi altra come quelle incluse in BOOST)?

+0

Sto cercando un rilevamento di battito, che utilizza FFT come input e rileva che c'è un nuovo battito in un determinato intervallo o meno. Le librerie che hai fornito sono "solo" routine FFT se non sbaglio? – user240137

+1

Per rilevare un "battito" o fondamentalmente un picco periodico, tutto ciò che serve è la FFT? – dangerstat

+1

sì, in tutte le implementazioni di rilevamento del battito che ho visto fino ad ora, fondamentalmente si confronta la FFT con quella del frame prima e magari si eseguono alcune funzioni di smoothing su di esso per eliminare qualsiasi tipo di rumore. allora se la differenza è sopra una certa soglia dinamica hai un battito. – user240137

0

Ah, Vamp. Se solo quelli interessanti funzionassero in tempo reale.

user240137, non so se siete davvero in "accettare le risposte", ma dopo aver esaminato Vamp ho trovato Aubio (aubio.org) e ho trovato più facile hackerare le sue funzioni nei miei progetti per fare un lavoro in tempo reale (se è quello che cerchi).

Ultimo: se vuoi davvero gestire la tua FFT, usa kissFFT come alternativa più facile a FFTW.

4

Si potrebbe provare Aubio: http://aubio.org/

Non sembra funzionare (almeno per me, oggi) in finestre, ma funziona in OS/X

+0

dovrebbe funzionare bene su Windows al giorno d'oggi, provalo! – piem