ドラムマシーン未満
別のことをやろうと思ったが時間切れ。
ということで、今まで覚えた技術で音を作り連続させる。
(defun snare() ;スネア風 (mult (pwl 0 0.5 0.15) (lp (sim (noise) (osc-tri (pwl 0 50 0.15))) 2000))) (defun hihat() ;ハイハット風 (mult (pwl 0 1 0.05) (bandpass2 (noise) 5000 1))) (defun kick() ;キック風 (mult (pwl 0 1 0.2) (lp (osc-tri (pwl 0 110 0.2)) 1000))) (seq (snare)(kick)(hihat) )
3つの関数(kick,snare,hihat)はドラム音のいくつか、それをシーケンス(seq)で並べている。
例えばスネアとキックの間を空けたい場合は
(seq (snare) (at 1 (kick)) ;atで1秒間の無音をはさむ (hihat) )
特に説明は要らないでしょう。
シーケンスの最初にatを置いて場合、無音をはさみません。
(seq (at 1 (snare)) ;この場合は無音をはさまない (kick) (snare) )
これは再帰するときに凄く便利なのですが、それはまた後で。