I’ve been trying to figure out how to yield sequences of repeating patterns that repeat an arbitrary (pseudo-random, or whatever pattern might be applied) number of times and change—in real-time (or, ‘generatively’)—not only pitch content but also length, tempo, legato, etc. values of sequence without having to re-evaluate the line of code. For now, I’ve been writing parameters like this, e.g:
Pdefn(\notes, Pseq(Array.rand(rand(12), 25, 81), inf))
and a Pdefn
for tempo might be written like this, in the same line:
Pdefn(\tempo, Pseq(Array.rand(1, 0.33, 18.6), inf))
but to change the sequence length, tempo, and pitch content I have to arbitrarily trigger it via cmd+return
. I’ve been writing it this way for each parameter so that the re-evaluations are synchronized, i.e. \notes
changes at the same time as tempo
, \legato
, \amp
, etc.
Is there any way to write this—in a more efficient manner—to yield the desired result? I’m using Pdefn
because I want to be able to modify lines and re-evaluate them in real-time. Anyway, I’ve been trying to figure this out for the past several days and am coming up nil, probably because I’m not looking in the right place in the help-guide or something. Pif
seems like it might be what I’m looking for, though I’m not sure I understand it. Thanks in advance.
[fwiw, I’m using MIDIOut
to an external AU, no SynthDef
.]
I’m also desperate to figure out how to apply patterns to \program
changes w/in the Pbind
, but this seems to be a similar issue as using pitch bend in a Pbind
.