関数

ローパス・フィルタのカットオフ周波数を変調させたいが、同じ処理を何度も繰り返すときは自分で関数を作ってもよいと思う。例えば簡単な掛け算をしてみましょう。

(* 3 4)

Nyquistプロンプトは計算の結果を返して12と出力する。さてオペレータ * もなんら普通の関数と使い方が違いません。自分で作る関数もです。

(defun fm(pitch modpitch depth)
   (sim
     (const pitch)
     (mult 
       (const depth)
       (hzosc modpitch)
     )
   )
)

(hzosc (fm 440 6 220))    ;自分で作った関数fmを使う

関数はdefunで作って関数名はfmです。引数はキャリーア周波数carpitchとモジュレータ振幅depyhです。

さあ、最後です。この関数fmでローパス・フィルタのカットオフ周波数を変調しましょう。

(defun fm(pitch modpitch depth)
   (sim
     (const pitch)
     (mult 
       (const depth)
       (hzosc modpitch)
     )
   )
)

(lp (noise) (fm 1000 6 500))    ;自分で作った関数fmを使う