コースワークの練習では、サウンドのエコー(フランジャー)を再生する際の遅延時間を変更するためのサインオシレータを作成する必要があります。このオシレータは、調整可能な周波数を持つ必要があります。私はこの機能を達成フランジャーエフェクト用のJava Sine Oscillator
関数によって返される値は、1と-1の間であるべきである:
public void oscillateNumber(){
for (int i = 0; i < 200; i++){
oscResult = Math.sin((Number1* Math.PI)/180.0);
updateNumber();
}
}
-180と180の間で変化番号1を有することにより(:How to use a Sine/Cosine wave to return an oscillating numberここで、この解決策を見つけました)
このオシレータにどのように周波数を組み込むことができますか?周波数は、私は完全にこの仕組みを把握しておりませんので、私はこの材料には完全に新しいです
... 0〜5Hzの調整可能である必要があり、私が見つけたもう一つの機能はpublic void oscillateNumber3(){
for (int i = 0; i < 400; i++){
oscResult = (float)Math.sin(angle);
angle += (float)(2*Math.PI) * frequency/44100f;
java.lang.System.out.println(oscResult);
}
}
Iの場合でありますこの値を遅延に加えると、効果に少し似ていますが、実際には正しいかどうかわかりません...
これへのポインタは本当に感謝しています。
UPDATE
[OK]をので、私は継続的に、発振器によって生成数と遅延を調節するために、この機能を思い付いたのOliのポインタ以下、私はしかしループについてかなりよく分からない:
public void oscillatorNumber(int frequency, int sampleRate){
for (int t = 0; t < (sampleRate * frequency); t++){
oscResult = (float)Math.sin(angle);
angle += (float)(2*Math.PI) * 2 * (t/44100); // sin(2*pi* f *(t/Fs))
java.lang.System.out.println(oscResult);
}
}
これは正しいですか?
['Note'](http://stackoverflow.com/a/2065693/230513)がその例です。 – trashgod
そのOliのおかげで、私がアップデートに投稿した機能を見ていただけますか?他のエフェクトを適用すると、オシレーターの値が連続的に出るようなものが必要ですが、私はそうはしません...それぞれの更新時に 't'を得るための経過時間をチェックしますか? – Alex