Je veux apprendre à programmer une application de musique qui analysera des chansons. P>
Comment puis-je commencer dans ceci et y a-t-il une bibliothèque pour analyser les ondes sonores? P>
Je sais que C, C ++, Java, Python, un peu d'assemblage et certains Perl. P>
5 Réponses :
Vous aimerez peut-être commencer par regarder le format MIDI, il est raisonnable simple par rapport aux formats compressés, et vous pouvez générer des choses agréables. P>
dépend de ce que vous voulez faire vraiment. P>
Je veux analyser des chansons pop et voir s'il y a des points communs entre les populaires. Cela a probablement été fait, mais c'est plus d'exercice de programmation pour moi.
Ensuite, vous devrez le casser. Prenez un MP3, ramenez-le à son format natif et analysez-le comme vous le souhaitez. Vous pouvez essayer de chercher Sourceforge, si vous le souhaitez, pour que les bibliothèques fassent cela.
Oui - 3 accords;) e, am et dm. C'est tout ce dont vous avez besoin pour 90% des chansons pop. Ajoutez C et G et vous venez de couvrir 5% de plus
Hahaha. Ouais. C'est à peu près ça. Mais je veux aussi regarder certaines parties communes entre les signatures de temps et ce qui fait exactement une chanson populaire. Je veux savoir comment j'allais l'analyser également.
Analyser les ondes sonores, vous avez besoin d'une sorte de transformation de Fourier (FFT), vous pouvez donc diviser la chanson dans ses fréquences et leur évolution au fil du temps. Il existe un support FFT à Numpy, je ne l'ai pas utilisé, alors je ne sais pas si c'est bon. Mais ce serait un endroit idéal pour commencer. P>
Après cela, vous devez ensuite faire une sorte d'analyse statistique sur les fréquences et les modèles, puis je n'ai plus aucune idée de ce dont je parle. P>
Cool Stuff cependant, allez-y! P>
Une fois que vous avez dépassé les trucs de la FFT que Lennart mentionné, vous voudrez peut-être consulter les chaînes de Markov pour analyser des intervalles entre notes et schémas agrégés. p>
C'est une sorte de fond marquée, mais les chaînes de Markov ont été utilisées dans le passé pour construire une sorte de modèle statistique de mélodies de différentes chansons pouvant être utilisées pour générer de nouvelles mélodies. Les chaînes Markov peuvent faire la même chose avec des phrases anglaises écrites. Pour un exemple de ce que cela ressemble, jouez avec la mégahal Chatterbot pour voir comment les chaînes de Markov peuvent produire une sortie mutilée qui ressemble statistiquement à son entrée (dans le cas de Megahal, il ressemble à des phrases anglaises) p>
Vous pouvez modifier de manière qualifiée de 100 top 100 et avoir un générateur de chaîne de Markov éliminer le prochain grand succès. P>
D'autre part, vous voudrez peut-être envisager la possibilité que ce ne soit pas une qualité de la musique elle-même qui fait une chanson populaire. Ou peut-être c'est une question de qualité de musique combinée à la commercialisation. P>
Oui, vous ne ferez jamais hits comme ça. Pour cela, vous devez comprendre pourquoi un crochet est un crochet et une analyse statistique des chansons n'est pas susceptible d'aider avec cela, car les crochets peuvent être si différents. Mais c'est toujours un projet amusant.
La composition et l'analyse de la musique par ordinateur sont un champ énorme. Il existe deux zones de base dans ce type de travail qui se chevauchent quelque peu. p>
Beaucoup, beaucoup bibliothèques, outils et spécialisés Langues de programmation existe ce qui peut aider à différentes parties de ces problèmes. Voici une liste de la musique liée à la musique Programmes et bibliothèques pour Python . Il y a beaucoup de technologie disponible; Vous devriez être capable de trouver quelque chose qui fera le poids du travail pour vous. Réimplémenter un "analyseur musical" à travers des outils d'analyse de fréquence de très bas niveau tels que Fourier transforme , comme autre Les réponses ont suggéré, bien que possible, sera assez difficile et sera presque certainement inutile. P>
Pour plus de conseils et de questions spécifiques, le La Société internationale de la récupération d'informations musicales a une liste de diffusion que vous voudriez probablement trouver très utile. p>
Merci! Une autre question. Serait-il possible d'écrire un programme qui transcrit de la musique pour vous?
C'est assez difficile. Je sais que Yann Lecun et sa compagnie MuseMi travaillent sur elle Nytimes .COM / 2010/08/12 / Arts / Musique / 21taub.html .
Il y a le Echo Nest Remix API qui vous permet d'analyser et de manipuler musique en python. Quelques exemples ici: Où est le POW et ici: