I have here a very fundamental problem. Can someone explain why it didn't work in every case the same but it behaves different accordingly to when I stop it. THIS IS MADNESS!!!
-
Phasor Phase Problem
-
It's probably because sometimes you stop it while [phasor~] is less than .5 and sometimes it's greater. If it's less than .5 and you reset it, it's not going to trigger [edge~] again.
-
the reason this happens, is because you make a small logic error, in assuming that [t b b] will force the order of execution with the [phasor~] signal object. you are assuming that by using [t b b], that you're resetting the phase first, and then resetting the playback rate. However, signal objects work differently to control objects, and with [phasor~] any control message sent to the right inlet will only reset the phase when the current block is finished.
To ensure that the execution order works out the way you originally intended, the easiest way i can see is to force the [phasor~] reset when the [phasor~] speed is being set to zero. I checked this now, and it seems to work fine.
(by the way, i debugged your patch using [snapshot~] connected to a number box - that's a very useful tool for signal rate debugging)