[sdiy] Pole Mixing
David Moylan
dave at expeditionelectronics.com
Mon Apr 12 04:25:41 CEST 2021
Aha! Finally I think I get it. That was exactly what I was missing.
Wasn't helping that Dixon's spreadsheet seems to show an equation that
looks like mine, but curves that look like they should.
I'll work through the math with that substitution for my own benefit.
Thanks for the help.
Dave
On 4/11/21 10:09 PM, Andrew Simper wrote:
> 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
>
> instead of just
>
> A
>
> for your first term in the summation.
>
> The long answer is:
>
> 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
> <mailto: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
>> <mailto: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 <mailto: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
>> <mailto: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
>> <mailto: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
>> <https://expeditionelectronics.com/Diy/Polemixing>
>> >>>
>> >>> Cheers.
>> >>>
>> >>> --
>> >>> David Moylan
>> >>> Expedition Electronics
>> >>> sonic adventures!
>> >>>
>> >>> _______________________________________________
>> >>> Synth-diy mailing list
>> >>> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>> >>> http://synth-diy.org/mailman/listinfo/synth-diy
>> <http://synth-diy.org/mailman/listinfo/synth-diy>
>> >>> Selling or trading? Use marketplace at synth-diy.org
>> <mailto:marketplace at synth-diy.org>
>> >>
>> >> _______________________________________________
>> >> Synth-diy mailing list
>> >> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>> >> http://synth-diy.org/mailman/listinfo/synth-diy
>> <http://synth-diy.org/mailman/listinfo/synth-diy>
>> >> Selling or trading? Use marketplace at synth-diy.org
>> <mailto:marketplace at synth-diy.org>
>> >
>> >
>>
>> --
>> David Moylan
>> Expedition Electronics
>> sonic adventures!
>>
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>> http://synth-diy.org/mailman/listinfo/synth-diy
>> <http://synth-diy.org/mailman/listinfo/synth-diy>
>> Selling or trading? Use marketplace at synth-diy.org
>> <mailto:marketplace at synth-diy.org>
>>
>
> --
> David Moylan
> Expedition Electronics
> sonic adventures!
>
--
David Moylan
Expedition Electronics
sonic adventures!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20210411/378b2835/attachment.htm>
More information about the Synth-diy
mailing list