# [sdiy] Pole Mixing

Andrew Simper andy at cytomic.com
Mon Apr 12 04:09:47 CEST 2021

```Hi David,

The short answer is you do not use the dry term, you need to use input -
k*lp4. I have said this all the way through but I don't think you've picked
up on it. So the quick way to get your stuff working is to use:

A (s + 1)^4
----------------
(s + 1)^4 + k

A

for your first term in the summation.

If you re-read my posts and you will note that there is never a "dry" term
in any of my equations. Do not mix in the input alone ever, unless you have
the special case of your resonance being zero. You need to use input -
k*lp4 for the first term. Let me break it down even further so you
understand what is going on. Let's say you have these real world voltages
in the circuit:

input = your input signal, which is what you call the "dry" term
v1 = the output of the 1st lp stage
v2 = the output of the 2nd lp stage
v3 = the output of the 3rd lp stage
v4 = the output of the 4th lp stage
k*v4 = your resonance feedback voltage

now let's make a new signal, and define it as:

v0 = input - k*v4

this is the term we use in your solving with the first weight. You are not
using this term in your equations, you are using the input only and calling
it "dry", this is not the signal to use!!!!! If this was the signal to use
then the x-pander shorting out the first cap would be pointless, the only
reason they do that is since they need input - k*v4, and the k gain and
differencing is done internally to the chip.

Now we form our output voltage by using a weighted voltage summer circuit
that gives:

output = m0*v0 + m1*v1 + m2*v2 + m3*v3 + m4*v4

you use the name A for m0, but hopefully you can now follow along, so in
the laplace domain this signal is:

(g + s)^4
----------------------
(g + s)^4 + g^4 k

which is if you replace g with 1 is:

(1 + s)^4
-----------------
(1 + s)^4 + k

You are using:

1

which is not the same thing!

If this doesn't make sense then I'll have to throw in the towel on this one
as I don't think I can explain it any better than that, fingers crossed
this has done the trick.

Cheers,

Andy

On Mon, 12 Apr 2021 at 01:06, David Moylan <dave at expeditionelectronics.com>
wrote:

> That's the denominator I have with g normalized to 1.   But then the
> numerator for the A term (dry mix signal) would end up with that k term as
> well when you multiply it to get everything over the common denominator.
> That's why my 4P HP ends up as
>
> s^^4 + k
> ---------------------
> (s+1)^^4 + k
>
> (In all of the modes mixing dry in the dry mix coefficient is 1).  Am I
> missing something that cancels the k term in the numerator?  I tried it
> without the k in the numerator and the HP curves remain as HP curves
> rolling off at low frequencies, and seem to match Dixon's.  It seems that
> is the major discrepancy now just trying to figure out why.
>
> On 4/11/21 11:49 AM, Andrew Simper wrote:
>
> You can also write the denominators as:
>
> (g^4 (1 + k) + 4 g^3 s + 6 g^2 s^2 + 4 g s^3 + s^4) = (g + s)^4 + g^4 k
>
> and
>
> (g^3 (1 + k) + 3 g^2 s + 3 g s^2 + s^3) = (g + s)^3 + g^3 k
>
> for the 4 pole and 3 pole versions respectively, which are a bit shorter,
> but hide the terms that need cancelling for various responses to happen.
> I'm not sure the numerators get much better than I've already posted.
>
> Cheers,
>
> Andy
>
> On Sun, 11 Apr 2021 at 22:22, Andrew Simper <andy at cytomic.com> wrote:
>
>> The reason they grounded the first cap is the chip they were used in the
>> x-pander did the resonance gain in - k*lp4 internally, so the only way to
>> get that back out again was through losing that first cap and grabbing the
>> signal from that point.
>>
>> The response you get when doing this is (3 pole cascade with global
>> feedback):
>>
>> (g^3 (m0 + m1 + m2 + m3) + g^2 (3 m0 + 2 m1 + m2) s + g (3 m0 + m1) s^2 +
>> m0 s^3) /
>> (g^3 (1 + k) + 3 g^2 s + 3 g s^2 + s^3)
>>
>> which requires a feedback gain of k = 8 to self oscillate, but you also
>> have to shift the frequency down by scaling the g by 1/sqrt(3), which you
>> can get by solving the frequency the denominator becomes zero with k = 8.
>>
>> I seem to remember the x-pander calibrates both the 4 pole and 3 pole
>> filter separately and uses a chip to control it, so this scaling is
>> probably done in digital land, so it won't appear on the schematic.
>>
>> Cheers,
>>
>> Andy
>>
>>
>> On Sat, 10 Apr 2021 at 00:50, David Moylan via Synth-diy <
>> synth-diy at synth-diy.org> wrote:
>>
>>> Working out the algebra to handle the feedback signal made me realize
>>> something about the Xpander implementation.  Rather than including a mix
>>> of the true dry input signal needed for certain modes, the Xpander
>>> switches the first integrator essentially into a buffer.   This makes
>>> the mix from the first integrator section a "dry" signal and the rest of
>>> the transfer function is then 3 pole based.   That means the feedback
>>> signal in that structure, for those modes, is also a 3 pole low pass
>>> signal instead of the 4 pole low pass when the integrator is engaged.
>>>
>>> Makes me curious about how that will effect the transfer functions with
>>> feedback applied.   Will maybe have to set up a new page dedicated to
>>> the exact Xpander structure after I get this feedback signal worked out
>>> for the original app. Down a rabbit hole...
>>>
>>> On 4/9/21 10:00 AM, Richie Burnett wrote:
>>> > Taking the feedback from after the 4th pole makes all of the responses
>>> > become 4th order when feedback is applied.  So even something
>>> > otherwise simple like a 1-pole low-pass filter can display resonance
>>> > when feedback is applied in this way.
>>> >
>>> > -Richie,
>>> >
>>> >
>>> > -----Original Message----- From: David Moylan via Synth-diy
>>> > Sent: Friday, April 9, 2021 2:19 PM
>>> > To: synth-diy at synth-diy.org
>>> > Subject: Re: [sdiy] Pole Mixing
>>> >
>>> > Thanks, Tom.   In practice, I do find quite a few interesting. LP1 +
>>> > Notch sounds great.  And just being able to switch between LP4, LP2,
>>> LP1
>>> > is also useful.  I don't get a lot of mileage out of the HP only modes,
>>> > usually want some LP too, but that makes HP3+LP1 mode interesting.
>>> > Though I agree, in the universe of all possible transfer functions the
>>> > list is relatively small.  It also begs the question "how many of these
>>> > could be approximated with 2 state variables in series?".   But that
>>> > ignores the feedback paths which I haven't worked into the equations
>>> > yet.  In the Xpander the feedback is always from the LP4 tap like it
>>> > would be for standard low pass filter and I think I remember someone,
>>> > maybe David Dixon, pointing out that it has interesting effects on the
>>> > curves as resonance is increased.
>>> >
>>> > If you click on the slider in question you should be able to use arrow
>>> > keys to step in .1 increments.  I thought that was fine enough to get
>>> > close to some desired curve, after that get out the pencil and paper or
>>> > a soldering iron!  All of the presets except the 20db LP shelf use
>>> > integers anyway, seems almost necessary to get the cancellations
>>> > required to make interesting curves.
>>> >
>>> > On 4/9/21 5:34 AM, Tom Wiltshire wrote:
>>> >> Absolutely agree, that is a fantastic piece of work.
>>> >>
>>> >> It makes all sorts of things about pole-mixing more obvious,
>>> >> including how few of the combinations are actually interesting, and
>>> >> as Richie said, how sensitive some of the combinations are.
>>> >>
>>> >> If you’re still working on it, would it be possible to add boxes to
>>> >> type in the coefficients as an alternative to the sliders? Getting
>>> >> specific values with the little sliders is quite fiddly.
>>> >>
>>> >> Thanks very much for this though - really great.
>>> >>
>>> >> Tom
>>> >>
>>> >> ==================
>>> >>         Electric Druid
>>> >> Synth & Stompbox DIY
>>> >> ==================
>>> >>
>>> >>
>>> >>
>>> >>> On 8 Apr 2021, at 23:24, David Moylan via Synth-diy
>>> >>> <synth-diy at synth-diy.org> wrote:
>>> >>>
>>> >>> Hi All.  I banged together a little web app to play around with
>>> >>> filter pole mixing, of the Oberheim Xpander type.  You can mix poles
>>> >>> in varying amounts and see the output magnitude shape as well as the
>>> >>> transfer function.  Y axis is Db and X axis is log scale based on
>>> >>> normalized frequency (so basically 1 equals the cutoff frequency).
>>> >>> Haven't done phase plot yet.
>>> >>>
>>> >>> If you have an interest in this sort of thing check it out:
>>> >>>
>>> >>> https://expeditionelectronics.com/Diy/Polemixing
>>> >>>
>>> >>> Cheers.
>>> >>>
>>> >>> --
>>> >>> David Moylan
>>> >>> Expedition Electronics
>>> >>>
>>> >>> _______________________________________________
>>> >>> Synth-diy mailing list
>>> >>> Synth-diy at synth-diy.org
>>> >>> http://synth-diy.org/mailman/listinfo/synth-diy
>>> >>> Selling or trading? Use marketplace at synth-diy.org
>>> >>
>>> >> _______________________________________________
>>> >> Synth-diy mailing list
>>> >> Synth-diy at synth-diy.org
>>> >> http://synth-diy.org/mailman/listinfo/synth-diy
>>> >> Selling or trading? Use marketplace at synth-diy.org
>>> >
>>> >
>>>
>>> --
>>> David Moylan
>>> Expedition Electronics
>>>
>>> _______________________________________________
>>> Synth-diy mailing list
>>> Synth-diy at synth-diy.org
>>> http://synth-diy.org/mailman/listinfo/synth-diy
>>> Selling or trading? Use marketplace at synth-diy.org
>>>
>>
> --
> David Moylan
> Expedition Electronics