59

では、どのようにして音楽ビジュアライザーを作成するのでしょうか? Google で調べましたが、実際のプログラミングについて述べているものは何も見つかりませんでした。ほとんどの場合、プラグインまたは視覚化アプリケーションへのリンクのみです。

私は iTunes を使用していますが、そのプログラムを作成するには Xcode が必要であることに気付きました (私は現在イラクに配備されており、それほど大きなファイルをダウンロードすることはできません)。だから今は、周波数の処理など、その背後にある「理論」を学ぶことに興味があります。

4

7 に答える 7

29

ビジュアライザーが曲ファイルを再生すると、非常に短いタイム スライス (通常は 20 ミリ秒未満) でオーディオ データが読み取られます。ビジュアライザーは、各スライスでフーリエ変換を実行して周波数成分を抽出し、周波数情報を使用してビジュアル表示を更新します。

周波数情報に応じて視覚表示がどのように更新されるかは、プログラマ次第です。一般に、グラフィックス メソッドは、音楽に合わせてビジュアルを更新するために (そして PC を動かないようにするために)、非常に高速で軽量でなければなりません。初期の (そして今も) ビジュアライザーは、Windows のカラー パレットを直接変更して、かなりクールな効果を実現することがよくありました。

周波数成分ベースのビジュアライザーの特徴の 1 つは、音楽の "ビート" (たとえばパーカッションのヒットなど) にうまく反応しないことが多いことです。パーカッションのヒットに対応することが多いオーディオの「スパイク」の認識と周波数領域の情報を組み合わせる、より興味深く応答性の高いビジュアライザーを作成できます。

于 2008-09-30T16:17:44.870 に答える
23

BeatHarness ( http://www.beatharness.com ) を作成するために、FFT を「単純に」使用してオーディオスペクトルを取得し、フィルタリングとエッジ/オンセット検出器を使用しました。

高速フーリエ変換について : http://en.wikipedia.org/wiki/Fast_Fourier_transform

数学に慣れている場合は、Paul Bourke のページを読みたいと思うかもしれません: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/

(Paul Bourke は、とにかくググってみたい名前です。彼は、あなたが今知りたい、またはおそらく今後 2 年以内に知りたいトピックに関する多くの情報を持っています ;))

後藤正孝のビート/テンポ検出 google について読みたい場合は、彼がいくつかの興味深い論文を書いています。

編集:

彼のホームページ : http://staff.aist.go.jp/m.goto/ 興味深い読み物 : http://staff.aist.go.jp/m.goto/PROJ/bts.html

低音、中音、高音、音量 (左と右) などの値が決まったら、それらをどうするかはすべて想像力次第です。画像を表示し、サイズに低音を掛けます。たとえば、ビートにズームインする画像が表示されます。

于 2009-05-20T13:56:47.353 に答える
14

通常、一定量のオーディオ データを取得し、そのデータに対して周波数分析を実行し、そのデータを使用して、何度も表示されるグラフィックを変更します。周波数分析を行う明白な方法はFFTを使用することですが、単純なトーン検出も同様に機能し、計算上のオーバーヘッドが少なくなります。

たとえば、円に配置された一連の図形を継続的に描画するルーチンを作成します。次に、支配的な周波数を使用して円の色を決定し、ボリュームを使用してサイズを設定します。

于 2008-09-30T16:12:15.850 に答える
6

オーディオ データを処理するにはさまざまな方法がありますが、最も簡単な方法は、急速に変化する波形として表示し、グラフィック効果を適用することです。同様に、周波数を取得するために高速フーリエ変換を実行せずに、ボリュームなどを計算 (およびパラメータとしてグラフィック ルーチンに渡す) できます。信号の平均振幅を計算するだけです。

FFT などを使用してデータを周波数領域に変換すると、スペクトログラムなどのより高度な効果が得られます。FFT出力から直接ドラムビートのタイミングや音符のピッチなどの非常に「明白な」ものを検出することは一見難しいですが、

信頼性の高いビート検出とトーン検出は、特にリアルタイムでは難しい問題です。私は専門家ではありませんが、このページではいくつかの単純なアルゴリズムの例とその結果について説明します。

于 2008-09-30T16:35:55.217 に答える
2
  1. 一連の変数が与えられたときに、画面に興味深いものを描画するアルゴリズムを考案する
  2. オーディオ ストリームを一連の変数に変換して、ビート/分周波数、さまざまな周波数範囲、トーンなどを分析する方法を考案します。
  3. 変数をアルゴリズムにプラグインし、描画を観察します。

シンプルなビジュアライゼーションは、音楽が特定の周波数しきい値を超えるたびに画面の色を変更するものです。または単に bpm を画面に書き込みます。またはオシリスコープを表示するだけです。

このウィキペディアの記事をチェックしてください

于 2008-09-30T16:22:54.733 に答える
2

最近、LightningChartデータ視覚化ライブラリに DirectSound ベースの音声データ入力ルーチンを追加しました。LightningChart SDK は、Visual Studio .NET (WPF および WinForms) 用のコンポーネントのセットであり、便利です。

AudioInput コンポーネントを使用すると、サウンド デバイスからリアルタイムの波形データ サンプルを取得できます。Spotify、WinAmp、CD/DVD プレーヤーなど、あらゆるソースからサウンドを再生したり、マイク入力コネクタを使用したりできます。

SpectrumCalculator コンポーネントを使用すると、多くの視覚化で便利なパワー スペクトル (FFT 変換) を取得できます。

LightningChartUltimate コンポーネントを使用すると、波形グラフ、棒グラフ、ヒートマップ、スペクトログラム、3D スペクトログラム、3D 線など、さまざまな形式でデータを視覚化でき、それらを組み合わせることができます。すべてのレンダリングは、Direct3D アクセラレーションによって行われます。

SDK の私たち自身の例は、科学的なアプローチを採用しており、エンターテインメントの側面はあまりありませんが、すばらしいエンターテインメントの視覚化にも使用できることは間違いありません。

また、構成可能な SignalGenerator (スイープ、マルチチャネル構成、サイン、正方形、三角形、およびノイズ波形、WAV リアルタイム ストリーミング、スピーカーまたはライン出力からウェーブ データを送信するための DirectX オーディオ出力コンポーネント) もあります。

波形と 3D スペクトログラム

グラデーションバー [私は、LightningChart コンポーネントの CTO であり、好きという理由だけでこれを行っています :-) ]

于 2014-05-30T11:47:30.510 に答える
2

@Pragmaticyankee で提案されているように、処理は確かに音楽を視覚化する興味深い方法です。Ableton Live に音楽をロードし、EQ を使用して音楽から高域、中域、低域をフィルタリングすることができます。次に、Mokafix Audio の Gatefish (Windows で動作) や PizMidi の midiAudioToCC プラグイン (Mac で動作) などの VST フォローワーイング プラグインを使用して、オーディオ エンベロープを MIDI CC メッセージに変換できます。次に、これらの MIDI CC メッセージを、MIDI をサポートする発光ハードウェア ツール (percussa audiocubes など) に送信できます。表示するすべての周波数にキューブを使用し、キューブに色を割り当てることができます。この投稿を見てください:

http://www.percussa.com/2012/08/18/how-do-i-generate-rgb-light-effects-using-audio-signals-featured-question/

于 2012-09-21T17:58:44.710 に答える