私はOpenGLの使い方を学ぶことに興味があり、音楽ビジュアライザーを書くことを思いつきました。誰かが私に必要な要素とこれを行うためにどのように学ぶべきかについてのいくつかの指針を教えてもらえますか?
C++/CLIを使用する場合、ここに 例 WPF 4(つまり;)表示を使用します。
彼はあなたが何を求めているかについてかなりの情報を持っている このサイト ( アーカイブ )を参照しています、ここに特定のページからの概要があります。
音を周波数に分割するにはどうすればよいですか?私たちの耳は機械的な手段でそれを行い、数学者はフーリエ変換を使用してそれを行い、コンピューターはFFTを使用してそれを行います。
- 音の物理学
- 調和振動子
- サンプリングサウンド
- フーリエ解析
- 複素数
- デジタルフーリエ変換
- FFT
ああ、私は this ( archived )を数分後に見つけました、それはネイティブC++アナライザーです。コードが含まれているので、実行できます。
BeatHarnessを作成するための私のアプローチ( http://www.beatharness.com ):
これで、グラフィックディスプレイで使用するいくつかのNice変数ができました。たとえば、サイズに低音を掛けた画像を表示します。これにより、ビートを拡大する画像が得られます。そこからそれはあなた自身の想像力です! :)
あなたはあなた自身のオーディオ/音楽プレーヤーを書こうとしていますか?おそらく、既存のプレーヤー用のプラグインを作成してみて、コーデック、dsp、およびオーディオ出力デバイスの細かな点ではなく、グラフィックスに集中できるようにする必要があります。
WinAMPとFoobarには視覚化プラグイン用のAPIがあることを私は知っています。 Windows MediaPlayerとiTunesにもあると思います。メディアプレーヤーを選んで読み始めるだけです。それらのいくつかは、純粋なOpenGLに集中できるように、そこから開始できる既存のOpenGLプラグインを持っている場合もあります。
FFTWではなくlibvisualのFFT/DCT関数の使用を検討することをお勧めします。それらは操作がはるかに簡単で、ビジュアルを生成するために同様に操作しやすいデータを提供します。いくつかのメディアプレーヤーと視覚化プラグインは、ビジュアルにある程度libvisualを使用しています。例:トーテム(プレーヤー)、GOOM(トーテムおよび他のプレーヤー用のプラグイン)、PsyMP3 2.x(プレーヤー)
基本的な3Dまたは高速化された2Dの直後の場合は、C++でのOpenGLの基本をカバーするDaveAstleの " OpenGLゲームプログラミングの開始 "のコピーを購入することをお勧めします。
音楽分析の部分では、フーリエ級数の基礎を研究してから、DFFT(デジタル高速フーリエ変換)アルゴリズムの無料の実装を選択する必要があります。