Pbind/Event type \composite: addressing other separate parameters?

If I use \composite type in a Pbind, is there a way to address other parameters separately? For example in


(
Pbindef(\xx2, *[
	type: \composite,
	types: [\note,\midi],
	midicmd: \noteOn,
	midiout: m,
	chan: 1,
	
	dur:Prand([1,2],inf),
	amp: 0.5,
	octave:	4,
	degree: Prand((0..7), inf)
]).play;
)

can I set a different amp or octave parameter for midi and default synth on server but keep dur the same for both? (amp: [0.3,0.7] or octave: [3,5] expands into multiple events for both, midi and synth)

One pattern I use to solve this kind of problem is a construction like this:

Ppar([
    Pbind(
         \type, \note
    ),
    Pbind(
         \type, \midi
    )
]) <> Pbind(
   // base pattern....
).timeClutch

(timeClutchPtimeClutch.sc · GitHub)

This will pull a “base” event from one pattern, and then effectively split it into two different event streams, where you can override or add new keys to each as needed. Each pattern will actually pull one event at a time from the input stream, so by default that stream will effectively progress twice as fast (two events are pulled at a point in time, one for each of the note and midi patterns). The timeClutch ensures that for any given point in time, only ONE event is pulled. This of course wouldn’t work if your two parallel patterns don’t have the same \dur values (which may be desirable or not).

1 Like