6

リアルタイムは必ずしも必要ではありませんが、最終年度のプロジェクトでゲームを作成しており、オーディオの力を利用して、再生中の音楽トラックのみに基づいて動的なレベルを作成したいと考えています。プレイステーション モバイルと C# を使用して PS Vita 用にこのゲームを作成することを目指していますが、必要に応じて C++ と PSP に切り替えることができます。

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

この生データを操作しようとすることに何の不安もありません。最初にその情報を実際に取得できる方法を知りたいだけです。サンプルを抽出し、これらのサンプルのさまざまな特性を確認できれば、それらを保存し、ラウドネス、ピッチなどの変化を調べて、音符などを作成できます。

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

私はここで少しパニックに陥っています。

どうもありがとう。

4

3 に答える 3

4

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

そうは言っても、私はc ++を使います。そのようにすれば、CLAM (http://clam-project.org/) などの膨大な量のオーディオ分析ライブラリを利用できます。

パニックにならないでください (大きな親しみやすい文字を想像してください)。プロジェクトに必要な部分を段階的に想像し、1 つずつ取り組むと、すぐに完了します。=)

于 2012-12-29T18:29:02.167 に答える
3

ここで説明する問題は、音楽/オーディオの特徴抽出の1つであり、利用できる学術研究のかなりの部分が存在します。検索に使用できるもう1つの有用な芸術用語は、音楽情報検索(MIR)です。

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

これらのほとんどは、想像以上に困難であり、通常は約60〜70%の精度しかありませんが、要件としては、おそらくこれで十分です。

優れたエントリポイントは、多数の特徴抽出プラグインが存在し、オープンソースであるSonicVisualiserをダウンロードすることです。少なくとも、何が可能かを感じることができます。

更新:もう1つの有用な技術用語は、開始検出です。これは通常、ビート検出アルゴリズムを説明するために使用されます。

于 2012-12-29T20:50:56.863 に答える
1

AubioはC/C ++ライブラリであり、ピッチトラッキング、オンセット検出、bpmトラッキングなどを実行します。

「波形の振幅の抽出」に関しては、波形振幅です。つまり、nサンプルごとに絶対値が最大のオーディオサンプルを選択し、その値を使用して視覚化の「振幅」部分を実行できます。

C#でWAVEデータの読み取りを開始するのに役立つ可能性のあるコードを次に示します。

FFTWライブラリのC#ラッパーの作成に関する情報を次に示します。

于 2012-12-29T21:56:38.753 に答える