ならば

音とかで遊んでいたログ

ワウワウ

音色を周期的に変化させて文字通り「わうわう」という感じにするのをワウワウ(ワウ効果とも)という。なんて安直なネーミング…。この効果はフィルタの設定周波数をLFOで変調すると得られる。

SawOsc s => BPF f => dac;
SinOsc lfo => blackhole;

2 => f.Q;  // レゾナンスの強さを変えると音色も変わる
5 => lfo.freq;
200 => lfo.gain;

fun void chcenterfreq()
{
    while(ms => now) 
        lfo.last() + s.freq() => f.freq; // キーフォローのつもり
}
spork ~ chcenterfreq();

[60, 62, 64, 67, 69] @=> int scale[];    // 四七抜き音階
while(true) {
    scale[Std.rand2(0, scale.cap() - 1)] => Std.mtof => s.freq;
    800::ms => now;
}

音域の広いメロディをフィルタにかけるとき、フィルタの設定周波数を固定したままだと音高によってフィルタのかかり方に差が出るので音色の変化が同じではなくなる。というわけでキーフォローといって、入ってくる音高に応じて設定周波数を上下させる必要がある。大抵のシンセサイザーだと自動でやってくれるようにセットできるらしいけど、ChucKにはそういう便利なものはないのでここでは単に「s.freq()」を足してみた。