7
votes

Programmer un fabricant de musique d'auto-apprentissage

Je veux apprendre à programmer une application de musique qui analysera des chansons.

Comment puis-je commencer dans ceci et y a-t-il une bibliothèque pour analyser les ondes sonores?

Je sais que C, C ++, Java, Python, un peu d'assemblage et certains Perl.

Question connexe: algorithme pour la musique imitation


0 commentaires

5 Réponses :


0
votes

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.

dépend de ce que vous voulez faire vraiment.


4 commentaires

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.



3
votes

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.

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.

Cool Stuff cependant, allez-y!


0 commentaires

6
votes

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.

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)

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.

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.


1 commentaires

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.



10
votes

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.


2 commentaires

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 .



0
votes

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: Vous me faites quantifier Miss Lizzie . Il y a un tutoriel notifty ici: Un aperçu de l'API d'écho


0 commentaires