4

音楽ファイルを再生する小さなアプリケーションを作成したいと思います (形式はあまり関係ありません)。難しいのは、同時に、低周波 (低音)、中周波、高周波の現在の振幅を表示したいということです。

したがって、再生機能と一緒に、ある種の単純なスペクトル分析が必要になります。手間をかけずにこれを行うことができる C# オーディオ ライブラリはありますか?

このプロジェクトの目的は、最近自分の部屋に設置した RGB-LED 照明システムを駆動することです ;-)

4

1 に答える 1

10

NAudio : http://naudio.codeplex.com/ (オープンソース)

Bass and Bass.Net: http://www.un4seen.com/ (非営利目的は無料)

Fmod 例: http://www.fmod.org/index.html (非商用利用も無料)

Bass を使用して必要なことを行うのは非常に簡単です。

string filepath ="";
Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, null);
int handle = Bass.BASS_StreamCreateFile(filepath, 0, 0, BASSFlag.BASS_SAMPLE_FLOAT);
Bass.BASS_ChannelPlay(handle,false);

次に、スペクトルを取得します。

float[] buffer = new float[256];
Bass.BASS_ChannelGetData(handle, buffer, (int)BASSData.BASS_DATA_FFT256);

そこから、特定の周波数の帯域を簡単に平均化できます

于 2012-09-27T11:58:21.800 に答える