// Algorithmic

(
Pbind(
	\instrument, \fm_pulsar_terrain,
    \dur, 0.25,
	\midinote, Pseq([60, 63, 65], inf) + Prand([0, 5, 8], inf),
    \amp, 0.1,
	\rel, 0.8,
).play;
)


// J-Style pattern

~base = [0, 3, 5];
~transpose = [0, 5, 8];

(
Pbind(
    \instrument, \fm_pulsar_terrain,
    \dur, 0.25,
    \midinote, Pseq(~base.collect(_ + 60), inf) + Prand(~transpose, inf),
    \amp, 0.1,
    \rel, 0.8
).play;
)


~scale = [0, 3, 5];

(
Pbind(
    \instrument, \fm_pulsar_terrain,
    \dur, 0.25,
    \midinote, Pfunc { ~scale.choose + 60 + [0, 5, 8].choose },
    \amp, 0.1,
    \rel, 0.8
).play;
)




~durs = [1, 0.5, 0.25].rotate(1).mirror1;

(
Pbind(
    \instrument, \fm_pulsar_terrain,
    \dur, Pseq(~durs, inf),
    \midinote, Pseq(~base.collect(_ + 60), inf) + Prand(~transpose, inf),
    \amp, 0.1,
    \rel, 0.8
).play;
)
