sync'ed phasors, frequency change at phase reset only

yas's icon

Hi all,

So I've been banging my head against a wall with this. I have a few solutions that work in theory, but all fail in practice.

What I want is two phasors that remain 180 degrees out of phase but each of which only changes frequency on its phase reset (or whilst

The gen~ phasor seems like the perfect candidate for this, ideally I would hold the phase at 0 until the second phasor is back at 180 degrees, but it just doesn't seem to work, like there aren't enough samples in the period - but I'm fairly sure there are.

Max Patch
Copy patch and select New From Clipboard in Max.

I've made a quick knock up of my best solution so you can see what I'm talking about, it does seem to work OK if you use a slow ramp between frequency changes, but this isn't really ideal...

yas's icon

I've been testing it some more - it's just so inconsistent and erratic. It changes behaviour apparently based on whether that [selector~] object is there. Sometimes at high frequencies it's fine and at low frequencies it's way off and never corrects itself... what is going on??

yas's icon

Hi thanks for that, but that's not quite the problem I'm having.

First of all it doesn't matter where the phase reset is,

Wrapping the signal is great for very fine accuracy of phase difference but the issue I'm working with is that I don't want EITHER phasor to change the slope of its ramp in the middle of its phase, only when it is

So under my system the two will be out of phase for a fraction of a period whenever the frequency is changed.

I've attached a diagram that hopefully will show what I want to achieve.

Regardless, looking at my patch, have you noticed the inconsistencies in phase difference? Anyone have any idea why that is happening?

yas's icon

Sorry, here's the attachment!

180-waiting-phasor.png
png
zthomas's icon

Would it be possible to modify this so that the phasor could be reset to 0? So that both phasors would stop at 0 at the end of their respective cycles when a value of zero was sent in? I'm having trouble wrapping my head around it.