<div dir="ltr"><div>A few more notes on this stuff:</div><div><br></div>You can form any response high/low/band/notch etc from any filter core by using the correct weights of the input and all stages used in the filter and the resonance gain. So you can turn a 4 pole high pass into a 4 pole low pass if you really want to. This also works with any order of filter, so non-multimode 2 / 3 pole filters can similarly be made into multimode filters.<div><br></div><div>For the linear 4 pole cascade, the shape of the high pass generated from a 4 pole low pass is not just the mirror of low pass, it's a kinda odd shape, which has to do with the dc cancellation of the feedback term (passband lowers with increasing resonance). The two pole linear versions are symmetric, so you get the classic 2 pole high pass shape from the 2 pole low pass. </div><div><br></div><div><div>If you have non-linearities in the filter core then this cancellation of terms to generate the different responses falls apart quite quickly, in a similar way to not having the exact gains. So if you want a great sounding growling and full high pass filter you're not going to get it by doing this sort of thing, you're better off having the correct filter to start with.</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 Sun, 11 Apr 2021 at 12:34, Andrew Simper <<a href="mailto:andy@cytomic.com">andy@cytomic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Also if you want to derive the frequency response yourself you solve these equations for hs:<div><br></div><div><div>0 = g (in - lp1 - k lp4) - s lp1</div><div>0 = g (lp1 - lp2) - s lp2</div><div>0 = g (lp2 - lp3) - s lp3</div><div>0 = g (lp3 - lp4) - s lp4</div><div>hs = (m0 (in - k lp4) + m1 lp1 + m2 lp2 + m3 lp3 + m4 lp4) / in</div></div><div><br></div><div>Cheers,</div><div><br></div><div>Andy</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 11 Apr 2021 at 12:21, 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:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hi David,<div><br></div><div>I'm not sure you've got the correct frequency response on your page. <span style="color:rgb(0,0,0)">You may have better luck with this:</span></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">(g^4 (m0 + m1 + m2 + m3 + m4) + g^3 (4 m0 + 3 m1 + 2 m2 + m3) s +  g^2 (6 m0 + 3 m1 + m2) s^2 + g (4 m0 + m1) s^3 +  m0 s^4) /</div><div style="color:rgb(0,0,0)">(g^4 (1 + k) + 4 g^3 s + 6 g^2 s^2 + 4 g s^3 + s^4)</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">where g is the cutoff in hz, and k is the resonance feedback with 4 being self oscillation, and the mixing terms are as follows:</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">m0*(in - k*lp4) + m1*lp1 + m2*lp2 + m3*lp3 + m4*lp4</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Note that for the xpander uses inverting stages, I've used non-inverting stages, so each other mixing terms needs to be negative, eg:</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">m0, -m1, m2, -m3, m4</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Cheers,</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Andy</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 9 Apr 2021 at 06:24, 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:1px solid rgb(204,204,204);padding-left:1ex">Hi All.  I banged together a little web app to play around with filter <br>
pole mixing, of the Oberheim Xpander type.  You can mix poles in varying <br>
amounts and see the output magnitude shape as well as the transfer <br>
function.  Y axis is Db and X axis is log scale based on normalized <br>
frequency (so basically 1 equals the cutoff frequency).  Haven't done <br>
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>
</blockquote></div>
</blockquote></div>
</blockquote></div>