アナログシンセサイザーのソフトウェアエミュレーションを開発しています。LFOを使用してオシレーターのピッチを変調しようとしています。コンピューターのサウンドシステムに供給される各サンプルについて、メインオシレーターに入力する周波数を次のように計算しています(擬似コード)。
osc_frequency = note_frequency * (1 + tuning) * (1 + lfo_y * lfo_mod_depth)
このステートメントの変数は次のとおりです。
- note_frequency =再生する音の周波数(Hz)
- チューニング=オシレーターの再生ピッチのパーセントでの微調整(例:-0.02 = 2%離調)
- lfo_y = lfo波形の現在のy値(範囲は-1から1)
- lfo_mod_depth =オシレーターに適用する効果の深さ/強度(パーセント)
ただし、この計算では望ましい結果は得られません。中心周波数を中心にロックされたピッチが上下に変化するのが聞こえると思います(演奏中のノート)。私が得ているのは、ピッチを「逃がす」モジュレーションエフェクトです。何が起こっているのか正確にはわかりませんが、次のように聞こえます。
- 変調強度は時間とともに増加します(変調が到達する高/低周波数マークは、ノートが長く保持されるほど高く/低くなります)
- 変調強度は時間とともに一定のままですが、中心周波数は増加しますが、変調はその周囲で振動します
私は正しいアプローチを使用していますか?そうでない場合、正しいアプローチはどうあるべきですか?これでどんな助けでも大歓迎です。