it doesn't matter until you start changing the offset amount. then you can have material in the loop that was written with the old offset, but which will never be hit with the new offset.
made a branch that had SubHead tracking loop positions in frames and using that for wrapping. but it's not quite enough, because wrap points should be [start, end+fade] when rate > 0, and [start-fade, end] when rate < 0. and rate can change each sample... so this bookkeeping should happen in the parent SoftCutHead, and maybe it's not quite worth it at all.
record head position is computed by adding record offset to write head position, then wrapping.
this wraps to buffer size, not to loop size, e.g. here: https://github.com/monome/norns/blob/master/crone/src/softcut/SubHead.cpp#L130
it doesn't matter until you start changing the offset amount. then you can have material in the loop that was written with the old offset, but which will never be hit with the new offset.
made a branch that had
SubHead
tracking loop positions in frames and using that for wrapping. but it's not quite enough, because wrap points should be[start, end+fade]
when rate > 0, and[start-fade, end]
when rate < 0. and rate can change each sample... so this bookkeeping should happen in the parentSoftCutHead
, and maybe it's not quite worth it at all.