2016-03-29 15 views
0

This filterこれら2つの機能があります。このC#バンドパスフィルタのプロセス関数をどのように呼び出すことができますか?

public BandpassFilter(int sampleRate, double frequency) //line 248 

public float Process(float input) //line 155 

だから私は以下のようなものをテストスクリプトを書いた:私はBiQuad1.Process機能を使用しようとするまで

sin = new float[44100]; 
    for (var i = 0; i < 44100; ++i) 
    { 
     sin[i] = Mathf.Sin(i/100); 
    } 

    BiQuad1.BandpassFilter(44100, 440); 

    for ( i = 0; i < 44100; ++i) 
    { 
     sin[i] = BiQuad1.Process(sin[i]); 
    } 

をそれはすべてが、それは、正常に動作1つのエラーが表示されます:

プロセスはBiQuad1のメンバーではありません。

、ループの終了時に別のエラー警告:

資産/ BiQuad1.cs(17,1):エラーCS1529:using句はEXTERNエイリアス宣言

除く他のすべての名前空間要素に先行しなければなりませんおそらく私はGaindBとBiQuad void関数を使用しなければなりませんか?

+0

あなたのネームスペース宣言の後に、おそらくusing句が配置されます。あなたのファイルの先頭に置きます。 – Eminem

+0

ソースを見ると、 'var filter = new BiQuad1.BandpassFilter(44100、440);'、 'sin [i] = filter.Process(sin [i] ); '? – entropic

+0

BiQuad1が何であるかわかりません...参照された.csファイルにクラスまたは名前空間として表示されません... – T3am5hark

答えて

1

インスタンスメソッドを静的クラスメソッドとして呼び出そうとしています。フィルタのインスタンスを作成し、そのプロセスメソッドを次のように呼び出す必要があります。

sin = new float[44100]; 
    for (var i = 0; i < 44100; ++i) 
    { 
     sin[i] = Mathf.Sin(i/100); 
    } 

    var bandpass = new BandpassFilter(44100, 440); 

    for ( i = 0; i < 44100; ++i) 
    { 
     sin[i] = bandpass.Process(sin[i]); 
    }