So I have this looper I built a bit ago. It does everything I want. It's dynamically resizable. You have varispeed (while recording), as well as halfspeed, and even reverse while overdubbing.
Everything works perfectly......EXCEPT I can't overdub if I change the min/max loop points of groove.
I know what the problem is, I just don't know how to fix it.
So I'm using groove's sync output to drive poke, which works nice. You have to do a bit of hackery to get that to work perfectly (see patch). The thing is, because of how groove works, if you change the min/max points, the sync output stays as a signal between 0. and 1.
The problem is if I change the min/max points, and then overdub, poke is writing based on the the sync signal going from 0. to 1., instead of the scaled version of that.
An obvious solution would be to use something like scale~, as I can just use the min/max numbers, and scale the sync value accordingly, but I want to use only vanilla Max objects (for compatibility/future-proofing).
So how can one solve the "scaling signals" problem? Or is there another solution to this?
Here is the patch (annotated, and with instructions on how to test the problem)