aciddose wrote:The difference between inputs vs. outputs is how the non-linearity affects it as well as signal phase.

Oh sure.. I was just thinking about the linear solution.

- KVRAF
- 4838 posts since 11 Feb, 2006, from Helsinki, Finland

aciddose wrote:The difference between inputs vs. outputs is how the non-linearity affects it as well as signal phase.

Oh sure.. I was just thinking about the linear solution.

<- plugins | forum

- KVRAF
- 11842 posts since 7 Dec, 2004

https://soundcloud.com/aciddose-1/gahhh

(download the source flac, soundcloud compression is awful!)

This is the most simple input to 4th stage case where the non-linearity is a naive tanh applied to the buffer between stages: with fully linear integrators (cheap & easily stable.)

It does sound cool though (way cooler than I thought?) and most importantly it doesn't produce the odd pops and other effects you get with non-linearity while doing naive pole mixing.

Obviously if you wanted something like a low-pass + 12 dB high-pass you'd need to differentiate the output giving a combination 18 dB low and 12 dB high "high shelf like" transfer function.

Using inputs though opens up a lot of possibilities and getting it to work with non-linear filters is a lot more easy than trying to work around all the issues with non-linearity.

(download the source flac, soundcloud compression is awful!)

This is the most simple input to 4th stage case where the non-linearity is a naive tanh applied to the buffer between stages: with fully linear integrators (cheap & easily stable.)

It does sound cool though (way cooler than I thought?) and most importantly it doesn't produce the odd pops and other effects you get with non-linearity while doing naive pole mixing.

Obviously if you wanted something like a low-pass + 12 dB high-pass you'd need to differentiate the output giving a combination 18 dB low and 12 dB high "high shelf like" transfer function.

Using inputs though opens up a lot of possibilities and getting it to work with non-linear filters is a lot more easy than trying to work around all the issues with non-linearity.

Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.

- KVRian
- 920 posts since 11 Apr, 2002

In the ladder filter you need to mix 5 signals (since you have 5 freedom degrees in the numerator). The 5th signal can be picked up either before the feedback point (that is the input signal) or after the feedback point (the input to the first stage), the latter usually results in simpler expressions. It's the same how in an SVF you have 3 freedom degrees, the HP signal essentially being the "input signal".mystran wrote:I don't think using both inputs and outputs really ever gets you anything as usually either alone will let you place your zeroes however you please and when you manage to hit a singularity it usually affects the inputs and outputs the same. That's my experience at least.

IIRC it's pretty straightforward to work backwards (pun not intended ) from the last stage (for which we already have the answer), you don't actually need the state-space form for that.mystran wrote:With regards to the diode though, keep in mind that you can't use the simplified math for the buffered cascade to calculate the coefficients, because the responses at the poles are not just (1/(s+1))^n anymore. Instead you need to solve for the actual responses of the individual poles (this is probably easiest to do with the state-space form) and then use those to solve the zero-placement.

- KVRist
- 162 posts since 29 Apr, 2012

Z1202 wrote:Then why don't you do that? Do you have any specific questions? Actually, I think at least partially the differentiators have been successfully used in filter models:1eqinfinity wrote:I'm interested in the implementation of those differentiators on the block diagram.

http://dafx13.nuim.ie/papers/44.dafx201 ... ion_56.pdf

Although personally I would have built a fully integrator-based model. Not sure if there is any difference arising out of that in the final model in this case

Idk, I guess I was scratching my bu.. head in confusion, because the erroneous results made me feel like I don't get it Thanks for the link, it's very helpful!

- KVRist
- 162 posts since 29 Apr, 2012

mystran wrote:...

With regards to the diode though, keep in mind that you can't use the simplified math for the buffered cascade to calculate the coefficients, because the responses at the poles are not just (1/(s+1))^n anymore. Instead you need to solve for the actual responses of the individual poles (this is probably easiest to do with the state-space form) and then use those to solve the zero-placement.

Could you elaborate a bit more on that please?

- KVRer
- 24 posts since 28 Feb, 2017, from Boston, MA

Hi guys, found this thread after working on a very similar question to the one posed by 1eqinfinity a week or so ago:

I've been working on implementing the phaser structure from Chapter 6 and trying to resolve the feedback loop with the same TPT approach as shown in Chapter 3/4. I followed an approach similar to that described in the Linear digital model section 4.2 where each `fn` is an allpass based on the multimode, taking (2 * lp - in) instead of `lp` directly. That is, where `f1(E) = gE + s1` at the beginning of Section 4.2, I have `f1(E) = 2(gE + s1) - E = (2g - 1)E + 2s1`.

The algebra shakes out very similarly, and it's easy enough to program, but as soon as I set a feedback (`k`) value higher than 0 I lose the notches in my phaser and get a pretty unstable peak. Have I taken the wrong approach for resolving the feedback loop here?

Apologies if you've already answered this, I don't quite have the analog circuitry understanding to be make decent sense of the discussion that ensued since 1eqinfinity's question. Thanks!

Hello again, everyone

Am I right that it's ok to build pure (not multimode) HP ladder using lowpasses, but taking (in - lp) as the filters' outputs?

The underlying filters are then processed as lowpasses, but the Gn and Sn for the whole ladder are derived from yn = xn - (g(x - yn) + sn).

I've been working on implementing the phaser structure from Chapter 6 and trying to resolve the feedback loop with the same TPT approach as shown in Chapter 3/4. I followed an approach similar to that described in the Linear digital model section 4.2 where each `fn` is an allpass based on the multimode, taking (2 * lp - in) instead of `lp` directly. That is, where `f1(E) = gE + s1` at the beginning of Section 4.2, I have `f1(E) = 2(gE + s1) - E = (2g - 1)E + 2s1`.

The algebra shakes out very similarly, and it's easy enough to program, but as soon as I set a feedback (`k`) value higher than 0 I lose the notches in my phaser and get a pretty unstable peak. Have I taken the wrong approach for resolving the feedback loop here?

Apologies if you've already answered this, I don't quite have the analog circuitry understanding to be make decent sense of the discussion that ensued since 1eqinfinity's question. Thanks!

- KVRAF
- 4838 posts since 11 Feb, 2006, from Helsinki, Finland

ncthom wrote:The algebra shakes out very similarly, and it's easy enough to program, but as soon as I set a feedback (`k`) value higher than 0 I lose the notches in my phaser and get a pretty unstable peak. Have I taken the wrong approach for resolving the feedback loop here?

I thought I answered this already, but apparently not.

It should really stay stable for both positive and negative feedback as long as the feedback magnitude is less than 1. Depending on the feedback polarity the notches either get more narrow or you get resonant peaks in between the notches. The changes over the useable range should be smooth and gradual. For the notches to remain "deep" you need the "dry" and the "wet" paths to have equal gain at the notch frequencies; the gain of the "wet" path depends on the feedback, but if the "dry" path is taken from inside the loop (as in the figure) then that should take care of that... but problems with the mix-gain should just result in the notches gradually becoming more shallow, so if they suddenly disappear that's a bigger problem somewhere.

So.. like.. if it seems to work as expected with k=0, then probably a you have some math error with the feedback. Your pole-formulations seem fine, for what it's worth.

<- plugins | forum

- KVRer
- 24 posts since 28 Feb, 2017, from Boston, MA

Awesome, thanks mystran. I'll go back through the algebra then, I must have made a silly mistake somewhere.

- KVRer
- 24 posts since 28 Feb, 2017, from Boston, MA

Alright so I've had another look through my math, and cleaned up my implementation and now what I have works fairly nicely. There's a couple oddities that I want to ask you all about as maybe they indicate something is still wrong here? My default implementation seems to work nicely when the feedback parameter is in the range (-0.909, 0.975), anything higher/lower and the filter blows up. This feels a little bit far from +/-1 to attribute the issue to floating point error or something of the sort.

Now I have another implementation with some tanh approximations sprinkled about, as in section 4.6. In this implementation, I have nice behavior with feedback on the range (-1, 1), but very strange behavior as I sweep the cutoff frequency while k=1. Particularly, when the cutoff frequency gets up to ~11kHz (~SR/4), I get two very strong resonant peaks near Fc and the spectrum analyzer seems like it's threatening to blow up as I move the parameter in the nearby range. However, past ~11kHz and as I move closer to SR/2 the output gain just drops straight off: the whole signal attenuates towards 0.

Apart from the tanh these two implementations share the same math, and both of them feel like they're right...but not quite right. Does this sound familiar? Or does this kind of behavior reveal something to you that I'm missing? Thanks

Now I have another implementation with some tanh approximations sprinkled about, as in section 4.6. In this implementation, I have nice behavior with feedback on the range (-1, 1), but very strange behavior as I sweep the cutoff frequency while k=1. Particularly, when the cutoff frequency gets up to ~11kHz (~SR/4), I get two very strong resonant peaks near Fc and the spectrum analyzer seems like it's threatening to blow up as I move the parameter in the nearby range. However, past ~11kHz and as I move closer to SR/2 the output gain just drops straight off: the whole signal attenuates towards 0.

Apart from the tanh these two implementations share the same math, and both of them feel like they're right...but not quite right. Does this sound familiar? Or does this kind of behavior reveal something to you that I'm missing? Thanks

**Moderator:** Moderators (Main)

53%

Off

Off

The beat of a different drummer: An interview with Mattias Ecklund from Toontrack

Ohm Force releases early-access "Ohmboyz Infinity" Multi Tap Delay

SONiVOX releases Solina Redux - Arp Solina String Ensemble Emulation

n-Track Studio 9 for Android out now

112dB releases Mikron Reverb and updates Mikron Cascade & Delay with NKS support

Krotos releases The Sound Design Bundle

Prominy updates Hummingbird Acoustic Guitar to v1.20Triple Spiral Audio releases Black and White for Zebra 2

Mercuriall Audio releases free pedal "Chorus WS-1" for Mac & Win VST, AU & AAX

Cockos updates REAPER to v5.90Read All News

Advertisements

© KVR Audio, Inc. 2000-2018

Submit: News, Plug-ins, Hosts & Apps | Advertise @ KVR | About KVR / Contact Us | Privacy Statement