<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi David,<div><br></div><div>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:</div><div><br></div><div><br></div><div>A (s + 1)^4<br></div><div>----------------</div><div>(s + 1)^4 + k</div><div><br></div><div>instead of just</div><div><br></div><div>A</div><div><br></div><div>for your first term in the summation.</div><div><br></div><div>The long answer is:</div><div><br></div><div>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:</div><div><br></div><div>input = your input signal, which is what you call the "dry" term</div><div>v1 = the output of the 1st lp stage</div><div><div style="color:rgb(0,0,0)">v2 = the output of the 2nd lp stage</div></div><div style="color:rgb(0,0,0)"><div>v3 = the output of the 3rd lp stage</div></div><div>v4 = the output of the 4th lp stage</div><div>k*v4 = your resonance feedback voltage</div><div><br></div><div>now let's make a new signal, and define it as:</div><div><br></div><div>v0 = input - k*v4</div><div><br></div><div>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.</div><div><br></div><div>Now we form our output voltage by using a weighted voltage summer circuit that gives:</div><div><br></div><div>output = m0*v0 + m1*v1 + m2*v2 + m3*v3 + m4*v4</div><div><br></div><div>you use the name A for m0, but hopefully you can now follow along, so in the laplace domain this signal is:</div><div><br></div><div>(g + s)^4 </div><div>----------------------</div><div>(g + s)^4 + g^4 k</div><div><br></div><div>which is if you replace g with 1 is:</div><div><br></div><div>(1 + s)^4</div><div>-----------------</div><div>(1 + s)^4 + k</div><div><br></div><div>You are using:</div><div><br></div><div>1</div><div><br></div><div>which is not the same thing!</div><div><br></div><div>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.</div><div><br></div><div>Cheers,</div><div><br></div><div>Andy</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 12 Apr 2021 at 01:06, David Moylan <<a href="mailto:dave@expeditionelectronics.com">dave@expeditionelectronics.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div>
<div>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 <br>
</div>
<div><br>
</div>
<div>s^^4 + k</div>
<div>---------------------</div>
<div>(s+1)^^4 + k</div>
<div><br>
</div>
<div>(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.<br>
</div>
<div><br>
</div>
<div>On 4/11/21 11:49 AM, Andrew Simper
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">You can also write the denominators as:<br>
<br>
(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<br>
<br>
and<br>
<br>
(g^3 (1 + k) + 3 g^2 s + 3 g s^2 + s^3) = (g + s)^3 + g^3 k
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>Cheers,</div>
<div><br>
</div>
<div>Andy</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, 11 Apr 2021 at 22:22,
Andrew Simper <<a href="mailto:andy@cytomic.com" target="_blank">andy@cytomic.com</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div dir="ltr">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.
<div><br>
</div>
<div>The response you get when doing this is (3 pole
cascade with global feedback):</div>
<div><br>
</div>
<div>
<div>(g^3 (m0 + m1 + m2 + m3) + g^2 (3 m0 + 2 m1 + m2) s
+ g (3 m0 + m1) s^2 + m0 s^3) / </div>
<div>(g^3 (1 + k) + 3 g^2 s + 3 g s^2 + s^3)</div>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>Cheers,</div>
<div><br>
</div>
<div>Andy</div>
<div><br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, 10 Apr 2021 at
00:50, David Moylan via Synth-diy <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Working
out the algebra to handle the feedback signal made me
realize <br>
something about the Xpander implementation. Rather than
including a mix <br>
of the true dry input signal needed for certain modes, the
Xpander <br>
switches the first integrator essentially into a buffer.
This makes <br>
the mix from the first integrator section a "dry" signal
and the rest of <br>
the transfer function is then 3 pole based. That means
the feedback <br>
signal in that structure, for those modes, is also a 3
pole low pass <br>
signal instead of the 4 pole low pass when the integrator
is engaged.<br>
<br>
Makes me curious about how that will effect the transfer
functions with <br>
feedback applied. Will maybe have to set up a new page
dedicated to <br>
the exact Xpander structure after I get this feedback
signal worked out <br>
for the original app. Down a rabbit hole...<br>
<br>
On 4/9/21 10:00 AM, Richie Burnett wrote:<br>
> Taking the feedback from after the 4th pole makes all
of the responses <br>
> become 4th order when feedback is applied. So even
something <br>
> otherwise simple like a 1-pole low-pass filter can
display resonance <br>
> when feedback is applied in this way.<br>
><br>
> -Richie,<br>
><br>
><br>
> -----Original Message----- From: David Moylan via
Synth-diy<br>
> Sent: Friday, April 9, 2021 2:19 PM<br>
> To: <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
> Subject: Re: [sdiy] Pole Mixing<br>
><br>
> Thanks, Tom. In practice, I do find quite a few
interesting. LP1 +<br>
> Notch sounds great. And just being able to switch
between LP4, LP2, LP1<br>
> is also useful. I don't get a lot of mileage out of
the HP only modes,<br>
> usually want some LP too, but that makes HP3+LP1 mode
interesting.<br>
> Though I agree, in the universe of all possible
transfer functions the<br>
> list is relatively small. It also begs the question
"how many of these<br>
> could be approximated with 2 state variables in
series?". But that<br>
> ignores the feedback paths which I haven't worked
into the equations<br>
> yet. In the Xpander the feedback is always from the
LP4 tap like it<br>
> would be for standard low pass filter and I think I
remember someone,<br>
> maybe David Dixon, pointing out that it has
interesting effects on the<br>
> curves as resonance is increased.<br>
><br>
> If you click on the slider in question you should be
able to use arrow<br>
> keys to step in .1 increments. I thought that was
fine enough to get<br>
> close to some desired curve, after that get out the
pencil and paper or<br>
> a soldering iron! All of the presets except the 20db
LP shelf use<br>
> integers anyway, seems almost necessary to get the
cancellations<br>
> required to make interesting curves.<br>
><br>
> On 4/9/21 5:34 AM, Tom Wiltshire wrote:<br>
>> Absolutely agree, that is a fantastic piece of
work.<br>
>><br>
>> It makes all sorts of things about pole-mixing
more obvious, <br>
>> including how few of the combinations are
actually interesting, and <br>
>> as Richie said, how sensitive some of the
combinations are.<br>
>><br>
>> If you’re still working on it, would it be
possible to add boxes to <br>
>> type in the coefficients as an alternative to the
sliders? Getting <br>
>> specific values with the little sliders is quite
fiddly.<br>
>><br>
>> Thanks very much for this though - really great.<br>
>><br>
>> Tom<br>
>><br>
>> ==================<br>
>> Electric Druid<br>
>> Synth & Stompbox DIY<br>
>> ==================<br>
>><br>
>><br>
>><br>
>>> On 8 Apr 2021, at 23:24, David Moylan via
Synth-diy <br>
>>> <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>>
wrote:<br>
>>><br>
>>> Hi All. I banged together a little web app
to play around with <br>
>>> filter pole mixing, of the Oberheim Xpander
type. You can mix poles <br>
>>> in varying amounts and see the output
magnitude shape as well as the <br>
>>> transfer function. Y axis is Db and X axis
is log scale based on <br>
>>> normalized frequency (so basically 1 equals
the cutoff frequency). <br>
>>> Haven't done phase plot yet.<br>
>>><br>
>>> If you have an interest in this sort of thing
check it out:<br>
>>><br>
>>> <a href="https://expeditionelectronics.com/Diy/Polemixing" rel="noreferrer" target="_blank">https://expeditionelectronics.com/Diy/Polemixing</a><br>
>>><br>
>>> Cheers.<br>
>>><br>
>>> -- <br>
>>> David Moylan<br>
>>> Expedition Electronics<br>
>>> sonic adventures!<br>
>>><br>
>>>
_______________________________________________<br>
>>> Synth-diy mailing list<br>
>>> <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
>>> <a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
>>> Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
>><br>
>> _______________________________________________<br>
>> Synth-diy mailing list<br>
>> <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
>> <a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
>> Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
><br>
><br>
<br>
-- <br>
David Moylan<br>
Expedition Electronics<br>
sonic adventures!<br>
<br>
_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" rel="noreferrer" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<p><br>
</p>
<pre cols="72">--
David Moylan
Expedition Electronics
sonic adventures!</pre>
</div>
</blockquote></div>