2012-12-29 11 views
6

リアルタイムは必ずしも必要ではありませんが、最終年度のプロジェクトのゲームを作成しています。再生中の音楽トラックのみに基づいてダイナミックレベルを作成するためにオーディオのパワーを使用したいと考えています。プレイステーションモバイルとC#を使ってPS Vita用のこのゲームを作成することを目指していますが、もし私がC++とPSPに切り替えることができればと思います。オーディオファイルからリアルタイムのフィードバックを作成するためのオーディオ解析ライブラリが必要ですか?

WAVファイルを使用して波形の振幅を抽出したり、このデータから平均周波数や近似BPMなどの他の特性を計算してレベルを作成したりできます。

私はこの生データを処理しようとすることについて心配はありません。実際にその情報を最初に取得できる方法を知りたいだけです。私がサンプルを抽出し、これらのサンプルの異なる特性をアサートすることができれば、それらを保存し、ラウドネス、ピッチなどの変更をノートなどを作成することができます。

私はC#を使用していますが、 p/invokeを使用するか、プロジェクトをC#の代わりにC++を使用する別のデバイスに切り替えます。

私はここでちょっとパニックになっています。本当にちょっと困っています。

多くのありがとうございます。

答えて

3

ここで説明する問題は、音楽/オーディオのフィーチャー抽出の1つであり、あなたが引き出すことができる実質的な学術作品が存在します。検索する別の有用な用語は、音楽情報検索(MIR)です。

研究者が録音から検索しようとした「機能」のリストは、ピッチやキーなどの決定論的なものから、「エネルギー」などの感情的な特性まで、大きく異なります。

これらのほとんどは想像以上に難しく、通常は約60-70%しか正確ではありませんが、要件によってはこれで十分でしょう。

良いエントリーポイントは、多数の特徴抽出プラグインが存在するオープンソースのダウンロードSonic Visualiserです。可能なことを少なくとも感じるでしょう。

更新:もう一つの有用な用語は、発症検出です。これは、通常、ビート検出アルゴリズムの説明に使用されます。

4

残念ながら私はあなたがこれを行うためにC#を使用できるとは思わない - AFAIK、それのためのJITコンパイラはありません。私はMonoのために何かについて読むことを覚えています。それはC#で使用できるようになりますが、今はよく分かりません。

それは - 私はC++と一緒に行くと言った。そのようにすれば、CLAM(http://clam-project.org/)のような膨大な量のオーディオ解析ライブラリを利用することができます。

パニックにはなりません(大きくて友好的な文字を想像してください)。プロジェクトに必要な部分をステップごとに構想し、1つずつ取り組むとすぐに完了します。 =)

1

Aubioは、とりわけ、ピッチ追跡、開始検出およびbpm追跡を行うC/C++ライブラリです。

「波形の振幅を抽出する」については、波形は、振幅である。nサンプルごとに絶対値が最大のオーディオサンプルを選択し、その値を使用してビジュアライゼーションの「振幅」部分を行うことができます。

Here's some codeこれは、C#でWAVEデータを読み始めるのに役立つかもしれません。

Here's some informationFFTWライブラリ用のC#ラッパーの作成について。

関連する問題