ならば

音とかで遊んでいたログ

ビブラート

音を伸ばしているときに音高を連続的に揺らすことをビブラートという。オシレータの周波数をLFOで変調するとこの効果が得られる。マニュアルにはblackholeを使った次のプログラムが載っている。

SinOsc s => dac;
SinOsc lfo => blackhole;

5 => lfo.freq;

while (20::ms => now){
    ( lfo.last() * 10 ) + 440 => s.freq;
}

でも、実はオシレータの.syncというパラメータを使うと全く同じことが別の書き方で実現できる。(12月22日追記:うっかり全く同じと書いてしまったけど、上と下のコードでは周波数が実際に変化する頻度、つまりビブラートのかかり方のなめらかさが違う。上では20ミリ秒ごとに周波数を更新するのに対して、下ではサンプリング周期ごとに変化する。下のコードの「20::ms」という周期そのものには意味がない。)

SinOsc lfo => SinOsc s => dac;
5 => lfo.freq;
10 => lfo.gain;
440 => s.freq;
2 => s.sync;  // FM

while(20::ms => now);

lfoとsを直接つないでいるため、lfoの出力はそのままsに入る。この入力をどう扱うか決めるのが.syncで、2に設定するとsの周波数を変調するのに使われる。
どっちの方法が良いのか知らないけど、わざわざ専用のパラメータを用意してあるくらいだから.syncの方を使えってことなのか? マニュアルは未整備で詳細が書いてない。