OK, so, this is something we can talk about. (I have to admit, “begin at multiples of 48 beats but without any offset to the 0 reference beat” makes no sense to me… there must always be a reference beat. If there’s no reference, then quant means nothing, and neither do your quadratures.)
Taking a guess here – if you have a 48-beat clip in Ableton, and you put the cursor at beat 12 and start playing, then it starts playing right now, but in the middle of the clip.
That detail might seem too obvious to mention, but it’s the key to the whole thing.
In SC, to my knowledge, there is no built-in way to “fast forward” a pattern to some point in the middle. But it should be possible to write one.
Time is short for me this morning – I don’t have time to write code at the moment, maybe later. But I would suggest a Prout where the function body does something like this:
-
What beat is it now, relative to the last 16-bar boundary? Call this
pos
. -
Get events from the pattern’s stream, adding up
delta
until the total is >=pos
. -
This total is the onset time of the first note at or after
pos
. So, yield a rest event(dur: Rest(pos - total))
. -
Then embed the remainder of the stream:
inval = stream.embedInStream(inval)
. That should take you out to the next 48-beat boundary.
hjh