[sdiy] analogue DX-7-style Phase Modulation using quadrature signals ?
Magnus Danielson
cfmd at swipnet.se
Sun Oct 26 13:39:48 CET 2003
From: "jhaible" <jhaible at debitel.net>
Subject: [sdiy] analogue DX-7-style Phase Modulation using quadrature signals ?
Date: Sun, 26 Oct 2003 01:51:04 +0200
Hi Jürgen,
> This is just an idea at the moment, and I wonder if this
> would work. It's about making DX-7-like Phase Modulation
> (often misnamed as Frequency Modulation) with analogue
> oscillators. From earlier discussions on synth-diy I know that
> FM of a VCO is easy, thru-zero FM is difficult but possible,
> but PM - easy in digital - would be most demanding on an
> analogue VCO.
This is where I chime in and start to question your statement. In essense I
think your saying "it's not reasnoble" here, and that is what I think is wrong,
or at least want a discussion on. You see, I too have been thinking about
phase modulation. Of all the variants I have come up with there is essentially
two classes, the core modulation and the post core modulation. The difference
lie in that in the first you actually modulate (directly or indirectly) the
core such that the output signal of the core is modulated while the later
simply let the core remains unmodulated (by phase modulations) and
post-processing allows for phase modulation.
If you look on my webpages you might find (OK, I'll point you there) an idea
for a Sawtooth Phase Shifter. http://home.swipnet.se/cfmd/synths/schematics/
It is a phase shifter of the post-core kind and provides a 0-360 degree
(could be viewed as +/- 180 degrees) phase modulation. You might also mount
multiple of these after each other in order to acheive greater depths.
It is (admittadly) not one of the greatest solutions and experience show that
the speed of the op-amps is among the things which is important for it to cause
a small wave-distorsion problem. However, I think I walk free since I only
presented it as a "rougth idea". I have also been thinking about a more
elaborate variant which will do deeper modulations straight away. One of the
benefits of this solution is that it will perform phase modulation down to DC.
Later in my exposé you will learn that no all solutions will be able to do
that. For most people, I think one or a few steps of this one (if shaped up)
will cut it. Furth, some might think that the waveform distorsion add a little
character, and if that's the case I am happy for them.
Another interesting "quickie" for letting a standard oscillator core do phase
modulation is to use the frequency modulation input. In order to do phase
modulation that way one needs to pre-process the PM signal to become a FM
signal. Since frequency is the derivate of phase, we need to derivate our
phase modulation signal, which is easilly done with an opamp, a resistor and a
cap. Another op-amp is needed before the derivate setup in order to make the
source impedance isolated from the cap of the derivate design. This design has
the benefit of being able to handle large phase modulations, but it is in
practical speed limited since the frequency modulation has peak limits to the
modulation it can provide. This limit might not be a problem, but people
wanting deep and high-frequency phase modulations (as some DX-7 style patches
would require) would maybe feel limited by this. Also, this modulation would be
scaled by the CV input, since the frequency modulation input is almost always
into the expo-setup which provides the scaling. Another limit lies in that
deep frequency modulation is not performed by a standard core since it can't
reverse. Another flaw with this method is that it in practice can't do phase
modulations down to DC, since the derivate setup flattens out at some point and
the modulation becomes a frequency modulation instead.
In order to get a unscaled phase modulation, the derivate signal must be
applied into the CCO directly, in parallel with the normal expo, and by that
doing a current summation, so it needs a voltage-to-current conversion. A
resistor might do the trick and a DC-offset trimmer to handle any DC offsets.
This solution still has the problem with limited modulation depth, since it
can't reverse direction. It also has the same problem with phase modulations
down to DC.
In order to get around the depth of modulation we need a oscillator core which
can reverse itself. This is when we replace the normal sawtooth CCO core with
a triangle CCO core. It also needs the power to handle the reversal due to
phase (and frequency) modulation so deep that the incomming current becomes
negative, i.e. when the modulation pulls the oscillator in the other direction,
not to be confused with then the core chooses to change direction in its
waveshaping (may it be triangle or sawtooth). There are many intersting
topologies to discuss here, and somewhere I have a slightly more elaborate one
lying around the house.
Now, an improvement of the situation would allow itself by using the post-
processing trick to deal with the low frequency modulations and let the core
modulation deal with the high frequency stuff. However, then again we would
run into the situation that the bulk modulation (high phase offset) would end
up in the post-processing and all the fiddeling with the core is unnecessary.
Naturally I have a solution for that aswell somewhere, but I don't recall all
the details right now.
Another way to look at it is to integrate the post-processing trick with the
core and let the low-freq components of the modulation directly hit the CCO
core. This is actually not a very strange idea, since the CCO core is
essentially a phase accumulator, so why not do the phase modulation straightly
in there? What we need to do now is that we take our reversable CCO core and
after the integrator simply add the phase modulation CV with the output of the
core. The output of that summation would then be the output signal and the
input signal to the reset setup. The amplitude allowed for the waveform needs
to be reduced if large modulations is needed. The reason is that now is the
integrator capacitor also holding the phase-state between cycles in order to
compensate for the phase offset on the phase CV input. The end result will be
that the output signal does not experience such offset and the reset curcuit
will swap directions as needed to keep the output in the right direction.
The details of the reset curcuit naturally needs a tosser, since now the state
is a little more complex and the output signal may clip both the upper and
lower threashold instead of only one (which the traditional schmitt trigger
assumes). That is again a solveable problem. There is still a leakage problem
in that the integrator cap still will do a tiny leakage of the DC component it
has, but that is now inside a control-loop so it should be compensated for, but
then I ask myself what the end result of that compensation is. Another
pen-and-paper problem I guess.
Anyway, I think there are many ways to acheive phase modulation within the
scope off a standard oscillator but with various modifications. I don't think
it should be "called off" just yeat as I assumes that you are concluding.
> But what about using a quadrature signal? Either using a
> quadrature VCO, or simply running an ordinary VCO thru
> a dome filter such as used in a Frequency Shifter. Then you
> have sin(wt) and cos(wt).
>
> Now there will always be factors A(phi) and B(phi) such that
> sin(wt + phi) = A * sin(wt) + B * cos(wt).
> So we can modulate phi indirectly by modulating A and B
> with the right function, can't we?
>
> We could run the outputs of the Dome Filter thru two
> multipliers (ring modulators) and sum the two products,
> just as a Frequency Shifter would do. But instead
> of using a Quadrature Oscillator for the modulation,
> we could derive both, A and B, from a CV input.
>
> The difference to ordinary frequency shifting is that
> *there* (FS) you always go round the circle (0 ... 360deg),
> while this PM scheme would allow both a smaller or a larger
> range, performing partial circles depending on the
> modulator level modulator envelope.
>
> I haven't done the maths for this, but probably A and B
> would be sin and cos functions of an arbitrary CV input
> signal to get the desired result.
> If so, all we need is a sin(x) and cos(x) nonlinear network
> which works over a certain number of periods.
> I think I remember from earlier discussions that there are chips
> that do this, and of course such a thing could also be implemented
> with diode networks etc.
>
> Two questions:
>
> (1) Will this work at all? Is this a true emulation of PM a la DX-7 ?
No.
I'll start off by killing the dome-filter variant. When you phase-shift a
waveform, the overtones experience their multiple in phase-shift, so a 45
degree phase shift of the waveform make the first tone shift 45 degrees, the
second 90, the third 135 degrees and so on. Now, if you are only out for sine
modulation (assuming your DX-7 preference here) that would not be a problem
since you only deals with sines, so for sines you would be home free - NOT.
The dome filter sets another limit, the frequency responce of it is a bandpass
one. You need to replace your dome-filter with something which goes all the way
down, or sufficiently down. In the end I think it is a no here.
Another low-freq problems creeps into the calculation, namely that of the
"derivation". In essence I think you again depend on a derivation of the phase
CV with this setup, since it is a frequency-based solution. This derivation
setup problem we already had in the core pre-processing above. You run into the
same limit but with a possibly complexer design.
I might as well state it here (you should also interprent what I written so far
in that light) that for the most part I think of phase modulation outside of
the DX-7 limitations, i.e. limitations in waveform.
Anyway, I will spend some more cycles on your approach to see what's wrong and
what's right.
> (2) How many periods do we need for the nonlinear network?
> (a) How many periods does a DX7 with maximum modulation depth
> cover? And, if this number is too high,
> (b) How many periods is the maximum PM depth in a typical "DX Piano"
> sound on the DX7 ?
In digital you can overflow and underflow the phase such that the number of
cycles becomes of no interest. To some degree does the last of my proposals
behave in a similar fashion as the DX7. The DX7 core is nothing put a pure
phase accumulator and the phase modulations occur prior to the waveshaping.
I think a similar design is the best way to acheive the result.
> I have a feeling that it can't be so easy, but at the moment (early morning,
> time to go to bed) I can't see an error. Too tired to go and consult the
> Bronstein. Someone tell me if this will work, please.
Well, I am not sure if I have convinced you, I am not even sure I am convinced
myself, but let's investigate that and see what we find out. I haven't spent
any quality cycles on how to do an analog variant of the DX7, probably because
I have a DX7. However, I do appreachiate the thought that "it should be
possible".
So, when will we have an analog DX-7 clone? ;O)
Cheers,
Magnus
More information about the Synth-diy
mailing list