59 votes

Création de visualiseur de musique

Alors, comment créer un visualiseur de musique? J'ai regardé sur Google mais je n'ai rien trouvé qui parle de la programmation réelle; principalement des liens vers des plug-ins ou des applications de visualisation.

J'utilise iTunes mais je me rends compte que j'ai besoin de Xcode pour programmer pour cela (je suis actuellement déployé en Irak et je ne peux pas télécharger un fichier aussi volumineux). Donc pour le moment, je suis simplement intéressé par "la théorie" derrière, comme le traitement des fréquences et tout ce qui est nécessaire.

30voto

MusiGenesis Points 49273

Comme un outil de visualisation joue un morceau de fichier, il lit les données audio de très courtes tranches de temps (habituellement en moins de 20 millisecondes). Le visualiseur ne une transformée de Fourier sur chaque tranche, d'extraire les composantes de fréquence, et les mises à jour de l'affichage visuel à l'aide de la fréquence de l'information.

La façon dont l'affichage est mis à jour en réponse à la fréquence de l'info, c'est au programmeur. Généralement, les méthodes graphiques doivent être extrêmement rapide et léger afin de mettre à jour les visuels dans le temps avec la musique (et de ne pas ralentir le PC). Dans les premiers jours (et encore), visualiseurs souvent modifié la palette de couleurs dans Windows directement pour réaliser quelques jolis effets sympas.

L'une des caractéristiques de fréquence-composant à base de visualiseurs, c'est qu'ils n'ont pas souvent le semble répondre à la "bat" de la musique (comme les percussions de frappe, par exemple) de très bien. Plus intéressante et sensible visualiseurs peut être écrite qui combinent le domaine fréquentiel de l'information avec une prise de conscience de "pointes" dans l'audio qui correspondent souvent à la percussion hits.

24voto

Led Points 719

Pour la création de BeatHarness ( http://www.beatharness.com j'ai "simplement" utilisé une FFT pour obtenir le audiospectrum, puis utiliser certains de filtrage et de bord / début-détecteurs.

À propos de la transformée de Fourier Rapide : http://en.wikipedia.org/wiki/Fast_Fourier_transform

Si vous êtes habitué à de maths que vous voudrez peut-être lire Paul Bourke page : http://local.wasp.uwa.edu.au/~pbourke/divers/dft/

(Paul Bourke est un nom que vous voulez à google de toute façon, il a beaucoup d'informations sur les sujets que vous voulez savoir maintenant ou probablement dans les 2 prochaines années ;))

Si vous voulez lire le battement de tempo, de détection de google pour Masataka Goto, il a écrit quelques articles sélectionnés pour leur intérêt à ce sujet.

Edit:

Sa page d'accueil : http://staff.aist.go.jp/m.goto/ Lecture intéressante : http://staff.aist.go.jp/m.goto/PROJ/bts.html

Une fois que vous avez quelques valeurs pour par exemple la basse, moyens, aigus et volume(gauche et droite), c'est à votre imagination de quoi faire avec eux. Afficher une image, il faut multiplier la taille de la basse par exemple), vous obtiendrez une photo qui zoom sur l'beat, etc.

14voto

Mark Bessey Points 13931

En règle générale, vous prenez une certaine quantité de données audio, exécutez une analyse de fréquence sur elle, et utiliser ces données pour modifier une partie graphique affichée sur et sur. Le moyen le plus évident pour faire l'analyse de la fréquence est avec une FFT, mais la simple détection de tonalité peut tout aussi bien, avec une baisse plus faible de calcul des frais généraux.

Ainsi, par exemple, vous écrivez une routine qui attire continuellement une série de formes disposées en cercle. Vous pouvez ensuite utiliser les fréquences dominantes de déterminer la couleur des cercles, et d'utiliser la touche volume pour régler la taille.

6voto

Chris Johnson Points 3276

Il existe une variété de façons de traiter les données audio, le plus simple est juste de l'afficher comme une évolution rapide de la forme d'onde, et puis appliquer effet graphique pour que. De même, des choses comme le volume peut être calculé (et transmis comme paramètre à quelques graphiques de routine) sans faire de transformée de Fourier Rapide pour obtenir des fréquences: il suffit de calculer la moyenne de l'amplitude du signal.

La conversion des données pour le domaine fréquentiel à l'aide d'une FFT ou permet par ailleurs de plus des effets sophistiqués, y compris des choses comme les spectrogrammes. C'est faussement compliqué cependant de détecter même assez "évident" des choses comme la synchronisation des battements de tambour ou de la hauteur des notes directement à partir de la FFT de sortie

Fiable de détection du rythme et de la tonalité de détection sont des problèmes difficiles, en particulier en temps réel. Je ne suis pas expert, mais cette page fonctionne grâce à un simple exemple d'algorithmes et de leurs résultats.

5voto

Pragmaticyankee Points 51

Si vous êtes à la recherche d'un petit téléchargement, assez portable d'outils pour jouer avec (et une enragée de la communauté de tirer sur) je suggère de Traitement (http://www.processing.org), en particulier http://processing.org/learning/libraries/ en vertu de l'ESS. Cela devrait vous prendre vers le bas le trou de lapin. Ne pas en faire une iTunes visualizer, mais a été utilisé pour le prototypage ce : http://www.barbariangroup.com/software/magnetosphere qui est devenu le défaut iTunes visualizer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X