Pragmatic Synth
Make a Synthesizer
VCO - VCA - VCF モデルの簡単なシンセサイザーを作ります。
UI
グラフィカルな UI は説明が膨大になるため省略し、簡易的に以下の仕様のインターフェースを使用します。
T("keyboard")
gets input from the keyboard (line:5)T("ndict.key")
converts from a key code to a MIDI note number (line:6)T("midicps")
converts from a MIDI note number to a frequency (line:8)
VCO (Voltage Controlled Oscillator)
キーボードによる周波数の制御 (line:8)
T("osc").freq
は数値以外の T オブジェクトを入力することができます (line:2)。以下の例では時間変化する T オブジェクト を周波数プロパティの入力にしてビブラートやポルタメントを行なっています。
Vibrato
Portament
T("param")
を使用して周波数を滑かに変化させる (line:1,2,9)
Sound Effect
エンベロープオブジェクト T("env")
で周波数の変化を直接記述する。
VCF
Voltage Controlled Filter. timbre.js では T("biquad")
を使用します。
Envelope Filtering
エンベロープオブジェクト T("env")
でカットオフ周波数を時間変化させる。
(line:1,2,12,13)
Auto Wah
LFOでカットオフ周波数を時間変化させる。
(line:1,13,14)
VCA
Voltage Controlled Amplifier. timbre.js では T("env")
や T("param")
を使います。
Amplitude Envelope
一般的な ADSRエンベロープ。 (line:2,10,15)
Tremolo
LFOでトレモロ効果。 (line:2,3)
Polyphonic
今までの例ではモノフォニックだったが、T("SynthDef")
オブジェクトを使用すると最低限の記述でポリフォニックシンセを作成できる。