Envに慣れる
Envでエンベロープを作る。Envのargumentはlevelsの配列やtimesの配列、curveのシンボル、などを取る。timesを省略すると、1!(levelsの配列).size - 1
がtimesに指定され、curveを省略すると\lin
が指定される。
なお、.plotを付けるとエンベロープカーブを見ることができる。
例
Env(levels:[0,1,0],times:[1,1]).plot;
Env(levels:[440,880,440,330,220],curve:-5).plot;
Env([0.0, 0.5, 0.0, 1.0, 0.9, 0.0], [0.5, 0.1, 0.01, 1.0, 1.5], -4).plot;
キックを作る
Envはamplitudeに掛けるのみと思っていたがそれのみにとどまらず、frequencyに掛ける(周波数変調)こともできる。
コード例
( SynthDef(\wow, { |amp = 0.5| var lv_lists = [80,180,80,100,300,100]; var num_lv = lv_lists.size; var e_times = 0.05; var f_env = Env.new(levels:lv_lists,times:(e_times!num_lv),curve:-1); var f_envgen = EnvGen.ar(f_env); var a_env = EnvGen.ar(Env.perc(0,e_times*num_lv),doneAction:2); var sig = SinOsc.ar(f_envgen,0,mul:amp) * a_env; Out.ar(0,sig!2); }).add; ) //単音実行 Synth(\wow); //Pbindで四分音符刻み ~aWow = Pbind(\instrument,\wow,\dur,1).play;
コード備忘録
f_envとf_envgenはfrequencyのエンベロープ、a_envはamplitudeのエンベロープ(パーカッシブのデフォルト)である。f_envはこのような形。
実行すると「一瞬ウニュってる」ような?キックが聞こえるはず。