[sdiy] Ridiculously PC (Phase Correct)

Magnus Danielson cfmd at swipnet.se
Sun Nov 4 01:20:46 CET 2001


From: Don Tillman <don at till.com>
Subject: [sdiy] Ridiculously PC (Phase Correct)
Date: Sat, 3 Nov 2001 14:45:36 -0800 (PST)

Hi Don,

> Has anybody ever seen a completely phase correct VCO?  That is, a VCO
> with the usual output waveforms, but the phases of these outputs are
> such that:
> 
> For audio signals, the fundamental components of all waveforms are in
> phase, so that panning, switching, or mixing the individual waveforms does
> not result in any FM artifacts or unexpected changes in the amplitude
> of the fundamental.

You mean Phase Modulation, not Frequency Modulation. If two of the
output waveforms have different phases for the same base or overtone
will the change in mix between them cause a shift in the phase of the
output waveform. Also, if the phase shift difference is big enougth 
will there be a mix where that tone is canceled fully.

I think I understand your needs.

Anyway, luckilly all the popular waveforms is only a sum of sines or
cosines.

If you rely on the Fourier series where f(t) may be formed from

              oo
              ---
       1      \         2*pi*n*t         2*pi*n*t
f(t) = - a  +  >  a cos -------- + b sin --------
       2  0   /    n        T       n        T
              ---
              n=1

where T is the period of the waveform, then for

falling sawtooth

   h
     |\
     | \
     |  \
-----+----- 
  \  |
   \ |  
    \|

a  = 0
 n
      2h
b  = ----
 n   pi*n

triangle

   h
    /|\
   / | \
 \/  |  \/
-----+----- 
     |

a  = h
 0
      /
      | 0 when n even
      |
a  = <     4h
 n    | ------- when n odd
      |   2   2
      \ pi * n

b  = 0
 n

triangle based PWM

   h
   +-|-+
   | | |
|  | | |  |
-----+----- 
     | l

where 0 <= l <= 1

a  = 2lh
 0
     2h sin n*pi*l
a  = -------------
 n        n*pi

b  = 0
 n

cosine derived from triangle:

a  = 0
 0

a  = h
 1

a  = 0, n >= 1
 n

b  = 0
 n

according to this little investigation only the sawtooth is of phase
wise, if you derive the PWM and sine from the triangle waveform.

Phase-shifting the sawtooth waveform can be done using something
similar to my sawtooth phaseshifter at:

http://home.swipnet.se/cfmd/synths/schematics/

Although this schematic is very simple, it should be used with some
care, I honestly doesn't know how good the output waveform is.

Anyway, the VCO you are requesting could have the following layout:

+----+    +---+     +------+     +------+
|Expo|____|Saw|_____|Tri   |_____|Cosine|__ Cosine output
|Core|    |CCO|  |  |Shaper|  |  |Shaper|
+----+    +---+  |  +------+  |  +------+
                 |            +------------ Triangle output
                 |            |  +---+
                 |  +------+  +--|PWM|----- PWM output
                 |  |90 deg|     +---+
                 +--|Saw   |--------------- Sawtooth output
                    |Shift |
                    +------+

Not too hard to do, is it?

> Or for LFO control signals, the 0-volt starting points of the various
> waveforms occur simultaneously, so that panning, switching or mixing
> the outputs does not change the effective rhythm of the LFO modulation
> or change the timing the 0-volt starting point.
> 
> This is actually a tough problem because the standard way to derrive a
> triangle wave from a sawtooth shifts the phase of the fundamental
> component 90 degrees.

That is why you have to shift it explicitly to get it right.

Cheers,
Magnus




More information about the Synth-diy mailing list