There are many ways you can go about this. In general I like to use functions to define pbinds and use the Pdef class to play the output of the functions, like this:
(
~pbind = {|notes|
Pbind(
\midinote, Pseq(notes, inf),
\dur, 1
)
};
)
// play the orignal sequence
Pdef(\test, ~pbind.([60, 62, 64, 65])).play;
Pdef(\test).stop
// play from the third note, midinote 64.
Pdef(\test, ~pbind.([60, 62, 64, 65].rotate(-2))).play;
// play from the second note, midinote 62, without stopping first, the sequence will start from midinote 62 quantized to the nearest beat (the default quant setting)
Pdef(\test, ~pbind.([60, 62, 64, 65].rotate(-1)));
// it is more pratical to asign the notes to a variable
~notes = [60, 62, 64, 65];
Pdef(\test, ~pbind.(~notes.rotate(-3)));
Pdef(\test, ~pbind.(~notes.scramble));
Pdef(\test).stop
Another way using Pdefn:
// not using Pdef here just to show the simple way. I would still use Pdef in this case and actually pretty much always - just as simple and much more flexible.
(
p = Pbind(
\midinote, Pdefn(\notes),
\dur, 1
)
)
~notes = [60, 62, 64, 65];
Pdefn(\notes, Pseq(~notes, inf));
x = p.play;
Pdefn(\notes, Pseq(~notes.rotate(-2), inf));
x.stop;
Pdefn(\notes, Pseq(~notes.rotate(-1), inf));
x.play;
x.stop