Mysterious mass detuning ends summer phase, prematurely


    Aug 05 2019 | 6:12 pm
    The solution to this is doing a good job of evading me.
    The included patch is a basic signal based detuner which uses cents as the detune mechanism in order to preserve intervals. It has 4 detunable channels.
    It works as expected except for one really nagging problem.
    No matter how I return the detune "cents" parameter back to zero it causes phasing between oscillators ( no matter what type of oscillator. I have included saw~ here because it is pretty obvious) . 
    I would like to avoid event based reset phase messages (like phasor~ phase message) in order to keep the mechanism as universal and as signal based as possible.
    I have had a look a various detuners in the forum but they don't answer this specific problem.
    many thanks for any pointers

    • Aug 05 2019 | 10:42 pm
      It is clear that oscilators will get out of phase, if they run on different frequencies, and then suddenly all run at same frequency. You could try to drive all oscilators with single phasor~ and use rate~ objects to transpose the oscilators
    • Aug 05 2019 | 10:55 pm
      Hi, yes, that is clear. Thank you. As stated, avoiding Phasor~
      rate~ relies on Phasor~ dependencies
    • Aug 06 2019 | 6:10 am
      Than one could turn off all but one oscilator. Simple as that.
    • Aug 06 2019 | 8:03 am
      That is a nice and simple work around. Thank you.
    • Aug 06 2019 | 8:48 am
      One could auto-adjust gain of the oscilators mix, when oscilators which share same frequency get reduced to one.
    • Aug 06 2019 | 8:57 am
      yes, I have explored this just now and I think that this seems like the way to go, and reset the phase of the other oscillators when quiet. I'm still experimenting. Thank you
    • Aug 06 2019 | 11:11 am
      You don't even need to reset the oscilators, if they get set to different frequency and so get unmuted, the phase will be irrelevant.
    • Aug 06 2019 | 1:16 pm
      the initial phase problem is returning to zero. Thanks for your help anyway.