シンセサイズ


楽器

楽器は、1個以上のオペレータ、アルゴリズム、ADSRエンベロープによって決定される。

オペレータ

波を生成する機構をオペレータと言う。 オペレータは、それ単体では正弦波を生成する。 オペレータには次の6種類のパラメータが与えられる。

以降の数式を単純化させるために、便宜上次の数式を定義する。 オペレータの振幅を\(v\)、ADSRエンベロープの係数を\(k(t)\)、楽器への入力の音高(周波数)を\(f\)、オペレータの周波数比を\(f_r\)、時刻を\(t(\geq0)\)、FM変調に用いる別の波を\(m(t)\)、オペレータの生成する波\(w_{base}(t, m)\)は次のように表される。

\[ w_{base}(t, m) = v \cdot k(t) \cdot \sin(2\pi f f_r t + m(t)) \]

アルゴリズム

オペレータの組合わせ方をアルゴリズムと言う。 オペレータは\(N\)分木構造に組み合わせられ、次のように評価される。

FM変調

ある波の周波数を別の波で変調することをFM変調と言う。 また、変調する側のオペレータをモジュレータ、変調される側のオペレータをキャリアと言う。

オペレータの振幅を\(v\)、オペレータの周波数比を\(f_r\)、楽器への入力の音高(周波数)を\(f\)、時刻を\(t(\geq0)\)、モジュレータの生成する波を\(w_m(t)\)としたとき、キャリアの生成する波\(w_c(t)\)は次のように表される。

\[ w_c(t) = w_{base}(t, w_m(t)) \]

AM変調

ある波の振幅を別の波で変調することをAM変調と言う。

時刻を\(t(\geq0)\)、対象となるオペレータの数を\(N(>0)\)、それぞれオペレータの生成する波を\(w_i(t)\)としたとき、(仮想的な)オペレータの生成する波\(w(t)\)は次のように表される。

\[ w(t) = \sum^N_{i=1} w_i(t) \]

ADSRエンベロープ

波の時間的変化をエンベロープと言う。 また、次の4種類のパラメータによってエンベロープを決定するものをADSRエンベロープと言う。

時刻を\(t(\geq0)\)、入力が終了する時刻を\(T(\geq t)\)、オペレータの生成する波を\(w(t)\)としたとき、ADSRエンベロープの係数\(k(t)\)は次のように表される。

\[ k(t) = \left\{ \begin{array}{cl} t/a & (t < a)\\ s + (1 - s)(1 - (t-a)/d) & (a \leq t < a + d)\\ s & (a + d \leq t < T) \\ s (1 - (t - T) / r) & (T \leq t < T + r) \end{array} \right. \]

フィードバック

オペレータが自身の出力でFM変調する機能をフィードバックと言う。

時刻を\(t(\geq0)\)、フィードバックの回数を\(N\)、\(n\)回フィードバックを行ったオペレータの生成する波を\(w_n(t)\)、\(w_0(t)=w_{base}(t, 0)\)としたとき、生成される波\(w_N(t)\)は次のように表される。

\[ w_N(t)=w_{base}(t, w_{N-1}(t)) \]