Beat detection avec Cinder
Le 16 novembre 2011
Suite de mon exploration du framework Cinder. Pour le développement d’animations audio-réactives, j’ai commencé par réaliser la partie portant sur l’acquisition du son et la détection du tempo. De ce coté Cinder est vraiment bien foutu et les deux exemples fournis avec le framework permettent de comprendre rapidement l’utilisation de la classe audio et ses fonctions de traitement du son comme la discrétisation du signal. J’ai remarqué un seul petit problème avec la classe audio, qui n’est pour le moment apparemment toujours pas résolu. Avec certaines cartes son il semble qu’il y ait de temps en temps des plantages au démarrage, en tout cas sur mon mac book ça arrive. Mais étant donné que ce n’est qu’au lancement de l’application que ça se produit ce n’est pas franchement rédhibitoire. Par contre pour une installation multimédia permanente avec redémarrage et extinction automatique du programme ça peut néanmoins être ennuyeux.
En ce qui concerne l’algorithme de détection du tempo, je me suis basé sur une source Flash très efficace: beat detection in flash. Le principe est le suivant: on calcule l’énergie instantanée par frame en faisant la moyenne des énergies sur une certaine plage de fréquences et on compare la valeur avec la moyenne des dernières valeurs stockées dans une mémoire tampon. Si l’énergie instantanée est supérieure à la moyenne du tampon, on détecte un beat. A lire également, cet article très intéressant sur la détection du tempo.
Musique: Tractile – Silent Movie
Posté dans Cinder | Laisser un commentaire
Commentaires
Laisser une réaction