It’s playing a chord because you are returning an array from the Plazy. Plazy should return a pattern or pattern-like object (something that responds to the .asStream method). Arrays respond to the .asStream method by returning the full array:
p = [1,2,3].asStream;
p.nextN(3); // -> [ [ 1, 2, 3 ], [ 1, 2, 3 ], [ 1, 2, 3 ] ] (chords)
If you want to sequentialize the array, wrap it in a Pseq, and return that from the Plazy.
(
~degreeX = [0, 9, 11, 15, 19, 12, 10, 2, 3, 4];
Pbindef(\fe,
\degree, Pn(Plazy{
var seq;
if (~degreeX.size < 1) {
~degreeX = [0, 9, 11, 15, 19, 12, 10, 2, 3, 4];
};
seq = Pseq(~degreeX);
~degreeX.remove(~degreeX.choose);
seq;
}),
\dur, 0.1
).play;
)