オシレータを配列に

一昨日は配列に音階、昨日は配列にタイミング、今日は配列にオシレータを。例えば4つの音が鳴るとして、その音ごとにオシレータをサイン波、矩形波三角波、のこぎり波と順番に入れ替える。まあそんなかんじです。
ところが配列に入れるとして配列の型で何度もエラーになるのです。1つ見つけたのが、オシレータを変数に入れてそれを配列に持っていく。

sinosc si; sqrosc sq; triosc tr; sawosc sa;
[si, sq, tr, sa] @=> osc oscil[];
<<<oscil[1]>>>;

oscil[]のデータ型が見つけれなくて困っていたんですが、どうにかoscならうまくいきます。ということはフィルタを配列に入れたい場合、また探さないといけないのか?。とりあえずosc以外はダメでした。うまい方法があれば教えていただきたい。ではこれを参考にして昨日以降のコードを改良。

sinosc si; sqrosc sq; triosc tr; sawosc sw;
JCRev f => dac;
.5 => f.gain;
.07 => f.mix;
fun void arp(int num[], osc oscil[])
{
   for(0 => int i; i < num.cap(); i++)
   {
       oscil[i] => f;// 接続する
       std.mtof(num[i]) => oscil[i].freq;
       0.5::second => now;
       oscil[i] =< f;// 接続を断つ
   }
}
arp([65, 69, 72, 76], [si, sq, tr, sw]);
0.5::second => now;

これでFM7のコードをアルペジオで、1音づつオシレータを変えることができています。