2009-09-23 4 views
9

Sto provando a eseguire il rilevamento del passo in tempo reale utilizzando C++. Sto testando del codice da performous (http://performous.org/), perché tutto il resto non ha funzionato per me. So per certo che funziona, ma non riesco a farlo funzionare. Ci sto provando da alcune settimane e non sono riuscito a far funzionare alcun codice di rilevamento dell'intonazione.Rilevamento del passo in tempo reale utilizzando FFT

+5

"non riesco a mettermi al lavoro" significa ??? (non verrà compilato? non verrà eseguito? trasforma il tuo computer in una palla di fuoco?) –

+0

compila, ma emette frequenze che vanno da 0 a circa 1024 – Niall

+0

e cosa c'è di sbagliato in questo? Il mezzo C è 440 Hz, quindi la gamma sembra ragionevole se si campiona il microfono. Che frequenza ti aspetti? – AShelly

risposta

10

Invece di utilizzare l'input dal microfono, è necessario creare i dati di una singola frequenza nota ed eseguirli attraverso il programma e vedere se si ottiene il risultato corretto. Quindi puoi aggiungere delle armoniche e vedere se funziona. I dati del mondo reale sono troppo variabili per i test iniziali.

1

Codice audio performante con alcune ottimizzazioni, limiti di frequenza ed euristica che lo rendono adatto solo per il canto (e altri toni simili). La gamma ottimale è di circa 80-600 Hz.

1

C/C++/Obj-C Real-time algorithm to ascertain Note (not Pitch) from Vocal Input

Controllare la risposta accettata su questo link.

Ho setacciato SO per una risposta a questo problema, e questa è la risorsa più utile che ho trovato.

Sembra che Performous utilizza questo algoritmo, ma è difficile fare fuori dal codice Performous

EDIT: Ho finalmente riuscito una soluzione di lavoro. mandami una e-mail se interessato sunfish | gmail | c0m