Thanks both for the replies. I’m aware of proxies, and realize that they are undoubtedly the optimal choice for a dynamic “swap” of one value stream with another. I guess I’d always imagined that Pbindf was doing something similar, but that it is implemented during Pbind construction instead of Pbind performance. Maybe I was subconsciously viewing Pbindef/Pbindf as being similar versions of the same thing.
My understanding now is that Pbindf is a very simple tool which quite literally adds a key-value pair to an existing event pattern, regardless of whether that key already exists. Regarding my original Pbindf example,
(
p = Pbind(
\dur, 1/8,
\degree, Pseq([0,2,3,5], 1),
\legato, 0.02,
);
q = Pbindf(
p,
\degree, Pseq([4,5,7,9,10,11,12,13], 1)
);
)
I’m now imagining the result as being functionally equivalent to this:
(
q = Pbind(
\dur, 1/8,
\degree, Pseq([0,2,3,5], 1),
\legato, 0.02,
\degree, Pseq([4,5,7,9,10,11,12,13], 1)
);
)
Which certainly helps me understand why the second set of degree values are used for pitch information (by virtue of the fact that they occur later), but the event stream is still limited by the length of the first degree stream. If this is an incorrect characterization of how Pbindf works, someone please let me know!
Eli