Pseudo Phase Offset on Any Oscillator: Method

 

Grant wrote:

I was trying to figure out a way to create a phase offset on the osc's. Place a 'Compare' between the Sync'd Osc's, connect the 'master' osc to the A input, connect a 'Constant' to the B input, Yellow out goes to sync. The contant knob will now cause a 1 cycle trigger at a differing, selectable place along the waveform. This is dependant on the input wave shape, so a pulse won't work effectively as an input. You could us a sine to sync offset 2 pulses and though. Thaught I'd share this, sorry if it's obvious.

Dave Peck wrote:

Not obvious to me, I think it's quite clever! This can be useful for constructing lots of interesting waveforms by combining oscs with different waveforms & phase relations. Good for various acoustic instrument type sounds. This also means that you can replace the constant module with a modulation signal, a unipolar LFO for example, and you have modulatable osc phase relationships in addition to the sync sweep effects.... If I remember correctly, this can yield cool results when using ring modulators, etc.

Grant wrote:

Right, I was doing some EP type things when I tried this. It really makes FM and AM more flexible when trying to nail waveforms. I didn't try an LFO or envelope yet... nice idea.

Dave Peck wrote:

I noticed a problem. There seems to be a rather limited useable keyboard range. If you play into the higher range at all, you get odd pitch glitches. Perhaps this is due to the width of the pulse generated by the logic modules? Maybe it's so wide that, at higher frequencies, it is still present when the osc needs a new trigger for the next cycle? Do you get the same effect?

Grant wrote:

I do, though I checked the pulse generated, and it seems to match the Frequency, ie. it doesn't seem to 'overlap'.

Dave Peck wrote:

Maybe this can be fixed by adding a DC blocking hpf after the pulse, to turn it into a fast transient with no positive plateau (haven't tried it yet).

But if the problem is caused by a limit to how often the pulse can fire, as opposed to how wide the pulse is, it will need a different fix... it may require finding a way to construct an audio rate (red) "compare" function...

Grant wrote:

I *think* the problem is possibly the frequency (/'sampling'?) rate at which the compare module works: so I think your last idea is right on the money.

The solution was simpler still. I used the master osc output, and just used a plain old mixer to add in an offset. It all happens at audio speeds, so the artifacts are no more evident than when using a normal sync... didn't need a compare module at all.

Lennart Regebro wrote:

Interesting... I just want to make sure I have understood everything: As far as I can see, for the compare thing to do anything useful, then the Master/Slave signal should be a level that says where in the cycle the master osc is located, or in other words, a triangle wave. And for the sync signal to work, the sync input will tell the slave osc what level in this triangle input it should consider to be the "start" of the wave? Is this correct?

Grant wrote:

Pretty much, but the Master signal doesn't have to be a triangle. (it's a bit of a jury-rig trick) The compare can be set, in this way, to trigger at a value other than zero. So in a sine wave, it will trigger after the actual start of the cycle, but only after the waveform has exceeded the value set in the constant module.

If you see the other messages on this thread, one has an attatched patch with a variation on this method: A simple mixer is used to combine the master wave with the constant value, so the sync input on the slave itself recieves an offset value, and so triggers later or earlier than the actual cycle start. This had the effect of getting rid of clicks we heard in the slave output.

Dave Peck wrote:

Grant's phase mod idea involves connecting an osc's audio out to a compare module, not connecting the master/slave signal to a compare module.

Picture connecting a sawtooth wave to the input of a compare module. When the compare module is set to a value of, say, 45, it will fire a pulse every time the sawtooth wave reaches this value. If you connect this pulse to the SYNC IN of another osc, this second osc will restart when the sawtooth is at this mid-point of the wave, instead of restarting in sync with the vertical drop at the start/end of the sawtooth wave cycle.

Attached is an example I was playing with. Instead of using a "Compare to Constant" module, it uses a "Combare A to B" module, with an LFO connected to the B input. This shifts the compare point and the pulse trigger forward and backward along the sawtooth, shifting the two audio oscs in & out of phase. There's also some hard sync sweep going on. This circuit allows hard sync sweep AND a detuned osc effect, which you normally can't get when you hard sync an osc.

But, it has the problem I mentioned of a limited playable range...

Grant - I saw your email about using a mixer to introduce a delay, but wouldn't that just be a constant time delay, so you get a different phase relation at every pitch? I think your Compare idea is on the right track, but how do we get a version that tracks into the higher frequencies....?

Dave Peck wrote:

You're right! I just checked out "PhaseOffsetV1.2". Elegantly simple, and it works! So replacing the constant module with an EG or an LFO will give you phase mod synthesis + FM synthesis... cool. I'll try this tonight.

Jim Clark wrote:

This technique has the problem that the compare module runs at control rates rather than audio rates, so you will get some jitter or aliasing. You could make an audio rate compare using an overdrive module (or a chain of them to get the gain up_ driven by a mixer, with one mixer set to a constant module output.

Lennart Regebro wrote:

I got it when I tried it later. That means that you can't really to this to phase-sync to a square wave, but by using a sawtooth slave and using that instead of the actual master oscillators output it worked.

David Peck wrote: I saw your email about using a mixer to introduce a delay, but wouldn't that just be a constant time delay, so you get a different phase relation at every pitch?

No, it would change the position where the sawtooh (above) goes over 0, and therefore switch the position where the slave oscillator gets synced. I tried it, and it seems to work. The compare version introduces nastier distortions then the mixer version. I didn't think I got any particularily interesting waveforms this way, however. It mostly sounded like the two basic forms mixed together even with various amounts of phase shifting. I got a nice bass from it, but it used six oscillators (three phase shifted) and a vocal filter.

Rob Hordijk wrote:

An alternative is to use the pulse slave output to sync one oscillator and the inverted pulse slave output to sync the other oscillator. Ringmodulating the waves by the AM input on the other oscillator and/or mixing the waves can give nice results. For instance to make that sixth waveform from a Minimoog or Rogue; that is the triangle with the little sawwave peaks (I think its on the Rogue as well). Or lots of other waves when experimenting with the waveforms and phase shift. Setting the pulsewidth on the pulse slave sets the exact phaseshift ratio. Of course the ratio between the oscillators must be whole numbers like 1:1, 2:2 etc. Its a bit more DSP expensive though...

Dave Peck wrote:

Here's my earlier example, modified to include Grant's more recent idea of combining the trigger osc with an offset source in a mixer.

Dave Peck wrote:

Finally got around to making a patch that uses the recently discussed ideas about FM synthesis with variable phase relations between the oscillators. I kinda like the results, but I don't think I'm fully taking advantage of the idea yet.

Note that, in addition to FM and phase modulation, it has sync sweep (KN8 & 9). However, it's the basic hard sync, so you get that harsh buzzy sound. I'll try a patch that uses either soft sync or sync masking to fix it - let's see... the sync mask has to move in phase along with the FM osc.....

Grant wrote:

Great. You can get some interesting dulcimer type noises out of this...(Mmm a hammered dulcimer patch?! there's a thaught) You're right though, the sync noise is a little prominent.