2017-01-20 12 views
0

デフォルトの再生デバイスを分析してビートを検出します。BASS WASAPI BPMCounter

今私はスペクトルデータを生成し、これをユーザに表示するデータを使用していた
int ret = BassWasapi.BASS_WASAPI_GetData(_fft, (int)BASSData.BASS_DATA_FFT2048); 

:私は選択したデバイスのFFTデータを取得するにはBASS WASAPIを使用してきました。さらに、BASSのBPMCounter Classを使ってBeatsを検出したいと思います。しかし、限り、私はBPMCounter.ProcessAudio()関数を働かせるために(私はWASAPIで取得しない)ストリームが必要と言うことができます。 WASAPIでBPMCounterを使用する方法はありますか?誰かが私を正しい方向に向けることができれば素晴らしいだろう。おかげ

は編集: は成功せず、ストリームにデータを変換するためにこれをしようとしました:

int ret = BassWasapi.BASS_WASAPI_GetData(_fft, (int)BASSData.BASS_DATA_FFT2048); //get channel fft data 
var chan = Bass.BASS_StreamCreate(0, 44100, BASSFlag.BASS_DEFAULT, BASSStreamProc.STREAMPROC_PUSH); 
Bass.BASS_ChannelPlay(chan, false); 
Bass.BASS_StreamPutData(chan, _fft, _fft.Length); 
bool beat = _count.ProcessAudio(chan, true); 
Debug.Write(beat); 

beatは常にFalseある、しかし私は、FFTデータの取り込みがcorrentであることスペクトラムで見ることができます。

答えて

1

私はちょうど数時間前にこのライブラリで遊んで始めました。私はまだ例を見ています。だから、私の答えはあなたが望むものではないかもしれません。私のプロジェクトでは、WASAPIをストリームに変換し、それをスペクトルの表示に使用したいと思っています。私がやったことはBASS_WASAPI初期化の直後にStreamPushを作成することでした。

あなたWASAPIの使用この呼び出しと、このデリゲートinitに:

private InitWasapi() 
{ 
    WASAPIPROC _process = new WASAPIPROC(Process); // Delegate 
    bool res = BassWasapi.BASS_WASAPI_Init(_YourDeviceNumber, 0, 0, BASSWASAPIInit.BASS_WASAPI_BUFFER, 1f, 0f, _process, IntPtr.Zero); 
    if (!res) 
    { 
    // Do error checking 
    }  

    // This is the part you are looking for (maybe!) 
    // Use these flags because Wasapi needs 32-bit sample data 
    var info = BassWasapi.BASS_WASAPI_GetInfo(); 
    _stream = Bass.BASS_StreamCreatePush(info.freq, info.chans, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT, IntPtr.Zero); 

    BassWasapi.BASS_WASAPI_Start(); 
} 

private int Process(IntPtr buffer, int length, IntPtr user) 
{ 
    Bass.BASS_StreamPutData(_stream, buffer, length); 
    return length; 
} 

に注意してください:これは動作しますが、私はまだ試しています。たとえば、音楽ファイル自体からストリームを作成したときと同じスペクトル出力を得られません。いくつか(小さな)違いがあります。たぶん私はWinampで同じ.mp3を再生するためにカスタムEQを使用しているからです。だから誰もがこのテーマについてもっと知っているなら、私もそれを聞きたい!

関連する問題