2011-11-13 1 views

Répondre

2

Trouver le tempo d'un signal musical peut être une tâche très difficile. Pour un signal simple où une seule note est jouée avec un tempo fixe, peut-être que la méthode proposée par kol fonctionnerait mais, comme mentionné par Oli Charlesworth, je ne pense pas qu'elle serait assez robuste pour vous donner une bonne estimation de la tempo pour un signal musical plus complexe. Cela a beaucoup à voir avec musical acoustics (en particulier le fait que le contenu fréquentiel des notes jouées par les instruments de musique est beaucoup plus complexe qu'une collection d'ondes sinusoïdales) et psychoacoustics (en particulier le fait que la détermination du temps de début d'un Note est influencée par son contenu harmonique)

Un bon (mais peut-être difficile à lire la référence en fonction de l'arrière-plan) est: ftp://wgs.esat.kuleuven.ac.be/sista/bli/scheirer_jasa.pdf

Vous devriez également lire les réponses et commentaires à cette question sur le DSP: https://dsp.stackexchange.com/questions/386/autocorrelation-in-audio-analysis.

0

Si vous avez besoin d'un seul numéro pour une piste musicale complète, vous pouvez effectuer une FFT et trouver le plus grand pic de la bande de fréquences concernée. La fréquence du pic vous donnera le tempo.

+0

@OliCharlesworth Je te crois, mais pourquoi? – kol

+0

@OliCharlesworth Je veux dire que Filipe a besoin d'un «rythme de musique» global, qui, je suppose, donne la composante basse fréquence majeure du spectre de puissance. Il est très facile de baisser une réponse sans aucune explication. – kol

+2

Mon intuition me dit que l'information de fréquence-dehors d'une FFT sera si barbouillée qu'identifier un pic significatif serait très peu probable. Il y aura toutes sortes de produits intermod qui se chevaucheront. Je peux me tromper, mais je le croirai quand je le verrai ... (Je vais enlever mon downvote, parce que je ne peux pas prouver que ça ne marchera pas, cependant.) –

0

Je n'ai pas essayé this package de Columbia, mais peut-être répondrait-il à vos besoins. En particulier, il contient une fonction tempo.m qui calcule le BPM d'une forme d'onde audio. Il semble être disponible sous licence GPL.

Espérons que cela fonctionne pour vous!