since this came up in another thread, reitrating: this needs to be part of a script’s logic since there is no universal definition of what it “means” to reset the sequence/process whatever.
i wonder if there is utility (e.g., turn those 22 lines into 2 lines) for baking a “reset” handler into the clock API… somehow.
hmm… AFAIK we just respond to PPQ ticks. is there a standard for “swing” that tells us to post-process the PPQ stream in some way? who would be sending us this “swing” value and how? or are you proposing the addition of a swing parameter at the norns system level? (ed: sorry just re-read: you want the clock coming from crow to be “swung” or “shuffled” in some way, i think)
AFAIK, the concept of “swing” in DAWs and e.g. MPC sequences, means: process a sequence of notes such that some rhythmic unit is subdivided asymetrically - for example, eight-notes to dotted-sixteenths (or triplets or something in between.) in other words, it is a musical transformation defined by a sequencer. (not actually a property of a low-level clock.)
and given that assumption, it seems to me that sequencers can easily implement swing by calling e.g. clock.sync(0.75 /4)... clock.sync(0.25 /4)... instead of clock.sync(1/8)...
(or, more broadly, clock.sync((0.5 + swing) / 4)... clock.sync((0.5 - swing) / 4), with swing in [0, 0.5)).
(at least, that’s my understanding of what “swing/shuffle” usually means. could get a lot more granular / weird of course.)
maybe relevant too: at one point we considered adding the ability to metro to use a sequence of durations instead of a single duration. wasn’t convinced this was a sensible point of abstraction though.
if there is a general call for “clocks” to encapsulate more musical logic outside of what scripts do with them, then that could be sort of a bigger discussion; could do a lot more than swing/shuffle.