2009-08-28 5 views
6

曲を分析する音楽アプリケーションをプログラミングする方法を学びたいと思います。セルフラーニングミュージックメーカーをプログラミングする

私はこれをどのように使い始めることができ、音波を分析するためのライブラリはありますか?

私はC、C++、Java、Python、アセンブリ、およびPerlを知っています。

関連質問:あなたはMIDI形式を見て開始するようなことがありAlgorithm for music imitation

答えて

9

コンピュータによる音楽の構成と分析は、巨大な分野です。このタイプの作業には、基本的に2つの領域が重複しています。

多くの多くのlibraries, toolsとこれらの問題のさまざまな部分を助けることができる特殊化programming languagesが存在します。音楽関連のリストprograms and libraries for Pythonです。利用可能な技術はたくさんあります。あなたは、あなたのために仕事の正しさを行う何かを見つけることができるはずです。可能であれば、他の答えが示唆しているように、Fourier Transformsのような非常に低レベルの周波数分析ツールで「音楽パーサー」を再実装することは、非常に困難でほとんど確実に不要です。

さらに詳しいアドバイスや具体的な質問がある場合は、International Society for Music Information Retrievalにメーリングリストがあります。

+0

ありがとう! もう1つ質問があります。あなたのために音楽を転記するプログラムを書くことは可能でしょうか? – Mylo

+0

それはかなり難しいです。私はYann LeCunとMuseAmiがそれについて取り組んでいることを知っています。http://www.nytimes.com/2010/08/21/arts/music/21taub.html – Frank

0

は、それが圧縮されたフォーマットに比べてリーズナブルなシンプルだし、あなたはそれにいくつかの素晴らしいものを生成することができます。

本当にやりたいことに依存します。

+0

私はポップソングを分析し、人気のあるものとの間に共通点があるかどうかを確認します。これはおそらく完了していますが、それは私のプログラミングのためのものです。 – Mylo

+0

それからあなたはそれを分解する必要があります。 MP3を取り込んでネイティブフォーマットに戻し、あなたが望むように分析します。あなたが望むのであれば、図書館がこれを行うためにsourceforgeを検索することができます。 –

+2

はい - 3コード;)E、Am、Dm。これはポップソングの90%に必要なすべてです。 CとGを追加すると、あなたはちょうど5%以上をカバーしました。 – DmitryK

3

音波を分析するには、ある種のフーリエ変換(fft)が必要です。そのため、その曲を周波数と時間の経過とともにどのように変えることができます。 numpyでfftをサポートしていますが、私はそれを使用していないので、何か良いかどうかはわかりません。しかし、それは始めるのに最適な場所です。

その後、周波数とパターンに関する何らかの統計分析を行う必要があります。次に、私が何を話しているのか、もう手がかりがありません。

しかし、クールなものですが、それを行ってください!

6

Lennartが言及したFFTを過ぎると、ノート間の間隔と集約パターンを分析するためのマルコフチェーンが必要になる場合があります。

これは一種の踏み台ですが、マルコフチェーンはこれまで、新しいメロディを生成するために使用できるさまざまな曲からメロディの統計モデルを作成するために使用されてきました。マルコフ連鎖は、書かれた英語の文章と同じことをすることができます。どのように見えるのかを見るために、メガフチェーンでは、マルコフ連鎖がどのように統計的にその入力のように見えるマングル化された出力を生成するのか見ることができます(メガハルの場合、英語の文のように見えます)

マッシュアップトップ100、そして次の大きなヒットを爆発させるマルコフチェーンジェネレータを持っている。

一方、ソングを人気にするのは音楽そのものの品質ではない可能性を考慮する必要があります。それとも、マーケティングと組み合わせた音楽問題の質です。

+0

ええ、あなたはこのようなヒットを決してしません。そのためにはフックがフックである理由を理解する必要があり、フックがそれほど異なる可能性があるため、歌の統計分析はそれを助長するものではありません。しかしそれはまだ楽しいプロジェクトです。 –

関連する問題