Sequencing Pfunc array values with Pseq

Sorry, newbie Patterns question here.

In a Pbind, if I use an array as the value for the \degree key, it plays a chord, but using Pseq(~myArray) it plays the notes sequentially.

If I write an iterative function that returns an array and use the key-value pair \degree, Pfunc(~myFunc), it will iteratively re-evaluate the function, but it will play the array contents simultaneously.

What I’d like is to play the pitches in the array returned by the function sequentially, then re-evaluate the function, play those pitches etc. Intuitively, I would suppose that would be something like:
\degree, Pseq(Pfunc(~myFunc)), but I get the error: ListPattern (Pseq) requires a non-empty collection; received a Pfunc

How can I sequence the array values that my iterative function returns?



no need to apologize, it’s not super-straight.
These options come to my mind, there might be others too (trace and postln are optional of course):

f = { [1,2,3,4].scramble + rrand(3, 20) % 10.2 + 60 }

Pbind(\midinote, Pn(Plazy { Pseq(f.().postln) }), \dur, 0.2).play 

Pbind(\midinote, Pfunc(f).trace.flatten, \dur, 0.2).play 

Pbind(\midinote, Pflatten(1, Pfunc(f).trace), \dur, 0.2).play 

BTW have a look at the Pattern Guide in SCDoc, if you haven’t already.



Thanks so much!
And I especially appreciate the multiple approaches - this will definitely help me going forward.