Take a pattern and use it as a stream of values for a trigger. This plays the pattern in real time on the client, and sends messages to the server.
A nice sequel would be to make a class that also takes a gate duration stream (in beats or legato), so that the gate will stay open for that long.
levels |
A stream of values for the level of each trigger 1.0 Prand([1,0],inf) { 1.0.rand } `[ 1,0,1,0,] // Ref converted into Pseq([1,0,1,0],inf) |
deltas |
A stream of values for the delta in beats between each trigger. 0.25 Prand([0.25,0.5],inf) FuncStream({ rrand(0.125,16.0) }) `[1.0,0.25,0.5] // Ref |
control |