Hello,
This is my first quark and is based on some refinements to code posted here:
I found it a lot of fun to create and use and I hope others can get some enjoyment from it as well.
I don’t have any tutorial videos so hopefully the documentation is decent enough. It is featured in some recent videos I have posted to my youtube channel so you can kind of see it in action (e.g. https://www.youtube.com/watch?v=5AzZJin1YSA&t=3s)
Here is a somewhat convoluted example. But it should be apparent that operators can be combined in interesting ways to create complex sequences which would be cumbersome to create with the usual Pattern classes.
~p = Pbind(\degree, Pdv.parse("0 <1?4 2?8> [7 6 5 4]$ {3 [4 5]# <6 8>}")).asStream;
~p.nextN(15, Event.default).do({|v| v.postln;})
( 'degree': 0.0, 'dur': 1.0, 'g1': true )
( 'degree': \rest, 'dur': Rest(1.0) )
( 'degree': 4.0, 'dur': 0.25 )
( 'degree': 7.0, 'dur': 0.25 )
( 'degree': 5.0, 'dur': 0.25 )
( 'degree': 6.0, 'dur': 0.25 )
( 'degree': [ 3.0, 5.0, 6.0 ], 'dur': 1.0 )
( 'degree': 0.0, 'dur': 1.0, 'g1': true )
( 'degree': 2.0, 'dur': 1.0 )
( 'degree': 6.0, 'dur': 0.25 )
( 'degree': 7.0, 'dur': 0.25 )
( 'degree': 5.0, 'dur': 0.25 )
( 'degree': 4.0, 'dur': 0.25 )
( 'degree': [ 3.0, 4.0, 8.0 ], 'dur': 1.0 )