C ++で音楽ビジュアライザーの作成を開始するには? [閉まっている]
-
03-07-2019 - |
質問
OpenGLの使い方を学ぶことに興味があり、音楽ビジュアライザーを書くというアイデアがありました。誰が私に必要な要素とこれを行う方法を学ぶべきかについてのポインタを教えてもらえますか?
解決
C ++ / CLIを使用している場合、 WPF 4(Fourierつまり;)ディスプレイを使用する例。
彼はこのサイト(アーカイブ済み)は、あなたの質問についてかなりの情報を持っています、特定のページの概要を次に示します。
どのようにサウンドを分割しますか 周波数?私たちの耳はそれをする 機械的手段、数学者はそれを行う フーリエ変換を使用し、 コンピューターはFFTを使用してそれを行います。
- 音の物理学
- ハーモニックオシレーター
- サンプリング音
- フーリエ解析
- 複素数
- デジタルフーリエ変換
- FFT
ああ、これ(アーカイブ)数分後、それはネイティブC ++アナライザーです。コードが含まれているので、すぐに実行できます。
他のヒント
BeatHarnessを作成するための私のアプローチ( http://www.beatharness.com ):
- リアルタイムで音声を録音
- オーディオでFFTを実行して周波数強度を取得するスレッドがあります
- 左右のチャンネルの音量を計算
- バンド(低音、中音、高音)の周波数をフィルター処理します
これで、グラフィックディスプレイで使用する素敵な変数がいくつかできました。 たとえば、サイズにベースを掛けた画像を表示します。これにより、ビートにズームインする画像が得られます。 そこからはあなた自身の想像力です! :)
独自のオーディオ/音楽プレーヤーを作成しようとしていますか?おそらく、既存のプレーヤー用のプラグインを作成して、コーデック、dsp、およびオーディオ出力デバイスの細かな部分ではなくグラフィックスに集中できるようにする必要があります。
WinAMPとFoobarには視覚化プラグイン用のAPIがあることを知っています。 Windows Media PlayerとiTunesにもそれらがあるはずです。メディアプレーヤーを選択して読み始めるだけです。それらのいくつかは、純粋なOpenGLに集中できるように、既存のOpenGLプラグインから開始できる場合もあります。
基本的な3Dまたはアクセラレートされた2Dの直後の場合は、Dave Astleの" OpenGLゲームプログラミングの開始" C ++のOpenGLの基本をカバーしています。
音楽分析の部分では、フーリエ級数の基礎を調べてから、DFFT(デジタル高速フーリエ変換)アルゴリズムの無料実装を選択する必要があります。
Cの数値レシピでFFTアルゴリズムの実装やその他の有用な情報を見つけることができます本。この本は無料です。 C ++の数値レシピの本もあります。
FFTWを介したlibvisualのFFT / DCT関数の使用を検討することもできます。ビジュアルを生成するために、同様に作業が簡単なデータを提供し、提供するのがはるかに簡単です。いくつかのメディアプレーヤーと視覚化プラグインは、ビジュアルにある程度libvisualを使用します。例:トーテム(プレーヤー)、GOOM(トーテムおよび他のプレーヤーのプラグイン)、PsyMP3 2.x(プレーヤー)
私の観点から...このサイトを確認してください: http://nehe.gamedev.net/
OpenGLを使用するための本当に良い情報とチュートリアル