Setting values is probably the most flexible in the long term.
One thing just for clarity -
Pmono doesn’t restart the synth, it’s effectively like a single synth event followed by a stream of
There’s one more version of this that is probably my preference - if only because I think it splits the code up in a way that’s very clean… The event type
\phrase will play another
Pdef as if it were a single event. That
Pdef is played as long as the outer pattern, and inherits all it’s values from the outer pattern, but can define it’s own structure.
For your case, you can have an outer pattern that plays your long 120 second notes… Then you can specify a phrase that’s a Pmono with a bunch of parameter sets, specifying the fluid changes happening to the running synth. An example:
\degree, Pkey(\degree) + Pseq([0, 2, 5, 9, 5], inf), // <--- values, including the degree, are inherited from the outer but can be overridden or modified
\type, \phrase, // <--- refers to the Pdef above
\degree, Pseq([0, -5, -3], inf),
This plays one new synth every 60 seconds, and modulates it’s freq parameter 9 times a second for as long as that note runs.