2017-09-26 6 views
0

ISampleProviderモデルでコード化されたDSPエフェクトがいくつかあります。 1つのエフェクトを適用するには、これを行い、正常に動作します。複数のNAudioをチェーンする方法ISampleProvider

string filename = "C:\myaudio.mp3"; 
MediaFoundationReader mediaFileReader = new MediaFoundationReader(filename); 
ISampleProvider sampProvider = mediaFileReader.ToSampleProvider(); 
ReverbSampleProvider reverbSamplr = new ReverbSampleProvider(sampProvider); 
IWavePlayer waveOutDevice.Init(reverbSamplr); 
waveOutDevice.Play(); 

複数のエフェクトを同じ入力ファイルに同時に適用するにはどうすればよいですか? たとえば、リバーブエフェクトとディストーションエフェクトプロバイダがある場合、それらを連鎖して1つの入力ファイルに同時に適用するにはどうすればよいですか?

答えて

1

エフェクトは、次のものの「ソース」として1つを渡すことで、連鎖させることができます。したがって、オーディオを最初にリバーブ、次にディストーションしたい場合は、オリジナルのオーディオをリバーブエフェクトに、リバーブをディストーションエフェクトに、そして歪みをwaveOutにそれぞれ送信しますデバイス。

var reverb = new ReverbSampleProvider(sampProvider); 
var distortion = new DistortionSampleProvider(reverb); 
waveOutDevice.Init(distortion); 

(n.b. NAudioは、リバーブ/ディストーションエフェクトを内蔵した付属していません - あなたはこれらを自分で作るか、別の場所からそれらを調達しなければならない)

+0

ハは、とても簡単。完璧に動作します。 Thanks Mark、ISampleProviderフレームワークはGeniusです。 –

関連する問題