Another way using Diwhite and Select:
(
x = {
var freq, trig, index;
trig = Impulse.kr(1);
index = Demand.kr(trig, 0, Diwhite(0, \size.kr(1) - 1));
freq = Select.kr(index.asInteger, \pattern.kr(100!20));
0.2 * SinOsc.ar(freq) * EnvGen.kr(Env.perc(), trig);
}.play;
)
(
var pattern1 = [100, 200, 300];
x.set(\pattern, pattern1);
x.set(\size, pattern1.size);
)
Best,
Paul