1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Filter bug ( paul ) self resonance

Discussion in 'REAKTOR' started by gentleclockdivider, Feb 11, 2017.

  1. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    Choose an osc ;; route into pauls filter .

    Set resonance to full ( self osc ) ..
    Look at spectrum anylyzer , there is an abvious overtone present ( at double the freq .rate)...NIce

    Now slightly turn back resonance for a brief second and then increase back to full resonance .

    The peak has attenuated , exact same setting as before ...but totally different behaviour .
     

    Attached Files:

    • Informative Informative x 1
  2. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    No one ?
    It is rather obvious .
     
  3. Jonathan Tremblay

    Jonathan Tremblay NI Product Owner

    Messages:
    402
    Interesting.
     
  4. colB

    colB NI Product Owner

    Messages:
    3,969
    But the cause, not so obvious!
    Without spending lots of time on this, I'm not sure that its even a bug.
    A lot of filters are on the edge of instability, or are unstable, but with saturation to limit the instability. One thing I have noticed with some of my own filter developments is that some states (usually but not always related to initialization) can cause the filter to become trapped in an altered state that requires messing with controls, or even a reset to restore correct behaviour. I guess that this is because the filter is based on analog designs, but is an a digital domain where there can be changes of state over time that would be impossible in an analog system.
    I think it's related to the nature of feedback systems. Could also be related to the aliasing that is present in the saturation that is limiting the instability. So if the filter gets into a limited state where there is a prominent alias, that could dominate via feedback, or could cause some other partial to dominate the otherwise wouldn't.

    I suppose the first thing to do would be to look at initialisation state, and look at how the rate of change of parameters is limited, particularly in the context of initialization.
    Mind you, it might just be a 'feature' of this filter model, and 'fixing' it could change the character of the filter negatively.
     
    • Like Like x 1
  5. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    Well , it also happens with the sallen key filter .
    Especially noticeable at around 10 KHZ ..do the same as I have described , resonance peak has a lot of gain loss
     

    Attached Files:

  6. mpl

    mpl NI Product Owner

    Messages:
    496
    I've noticed the salon key filter misbehaving, in the scence that it didn't always sound the same, not subtle but different resonance setting, although the knob was the same, and your graph has a noticeable difference .I also think colB is onto something about initialization,as i usually noticed it when testing for init errors in my seq with this block in the ens.
     
  7. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    I don't know if it has anything to do with initialization ( no modules are disconnected , so no re-initialization occurs ) , it happens when resonance is at max ...then dialing back freq ....sometimes the filter fails at selfosc., that's the screenshot that shows a lower Q gain /peak
     
  8. colB

    colB NI Product Owner

    Messages:
    3,969
    I notice that the sample rate is 88200. Is that oversampled from 44100?
    If so can you run it at a higher native sample rate like 96k - if your sound hardware can do that, then look and see if that second peak is still there.
    Just want to be sure that it is all one issue and not two separate things.
     
  9. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    Noppes , has nothing to do with sample rate .
    Happens @ 44.1 or 88
    You could easily try it out yourself
     
  10. colB

    colB NI Product Owner

    Messages:
    3,969
    I have tried and I'm unable to reproduce the problem. I tried in stand alone, and as a plugin in Reaper.
     
  11. colB

    colB NI Product Owner

    Messages:
    3,969
    EDIT: I am getting more variance in sound with the SKF when dropping then maxing the resonance, which I think is due to some combination of saturation/natural instability/chaotic feedback...
    There are also peaks at higher frequencies than the main resonance peak (side lobes?), but they are 30-40 dB quieter, which is a lot. Logarithmic scale makes that secondary peak look significant when actually it is much quieter.
    On the last pic you posted, the scale is on the very left hand side. Main peak is about -40dB while the second peak is roughly -80dB, so that second peak looks about half as loud, but is more like 1/8th as loud in perception terms, which in the context of aliasing saturation and chaos of self resonance is not so bad IMO. Certainly it is something I always see when developing my own digital filters.

    More of a concern is the big difference in the two initial pics, but I still can't reproduce that.
     
  12. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
    It's easy to replicate the first two examples .
    Oh yeah ..it's most obvious when paul's bass boost is enabled , it also happens when disabled ..but the effect is less prominent
    Just insert an osc , I choose bento , set it to 100 hz .
    Route into paul , choose a low cutoff ( around 100 hZ )) now crank reso set to max / self osc ...this has to be done while freq is fairly low . .
    Step 1- Now sweep up filter freq to 4khz , you'll have 3 resonant peaks .
    Picture A
    Step 2- Now dial back the resonance and again to full self -osc ( don't touch frequency )
    PIcture B


    You might as well just do step 1 (into self osc ) , then disable reaktors soudengine and back on ..same result
     

    Attached Files:

    Last edited: Feb 16, 2017
  13. Michael O'Hagan

    Michael O'Hagan NI Product Owner

    Messages:
    1,163
    ot, but I just want to know, gentleclockdivider, what daw are those screen shots in?
     
  14. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    744
  15. colB

    colB NI Product Owner

    Messages:
    3,969
    Ok, setting up just filter into an amp works, no osc necessary because this is related to self oscillation, the important thing is to start at a low frequency and bring it up to higher frequency.

    I still think this is probably a 'feature' of the filter implementation rather than a bug. There are always trade-offs and compromises to filter implementation, and I guess this particular approach causes variation depending on starting conditions (not particularly surprising in a feedback system).

    There are different ways to achieve 'zero delay feedback' in a filter. I just checked a couple of my own implemented using Newton-Raphson, and they don't exhibit this behaviour, although they are different, the 4 pole ladder m00g style generates a pretty pure single peak, whereas the MS-20 (not an accurate model though) has multiple peaks after the fundamental.

    It's interesting to note that the Monark filter doesn't have this bug/feature. I wonder if it uses a different approach to ZDF than the Paul.
     
    • Like Like x 1
  16. colB

    colB NI Product Owner

    Messages:
    3,969
    OK, I have found the cause of the variability in resonance response. I would call it a bug :). There is a module that tweaks the resonance value depending on the cutoff frequency - I assume this is to balance the fact that the filter model being used doesn't resonate as well at lower frequencies, or maybe they just wanted to boost low end resonance because it sounds good! The problem/bug is that the scaling factor doesn't update in response changes in cutoff frequency.

    Here's a pic of the module with a quick hack by me that you can do to test it out:
    paul design compromise.PNG

    My hack just takes a scaling value from a low frequency cutoff and applies it to all frequencies in order to demonstrate that this is the cause of the issue. I wouldn't leave this in as-is, but you could do it with a panel switch to allow reverting to 'correct' behaviour.

    An alternative/better 'fix' is to have the scaling value updated as a result of cutoff value changes as well as resonance changes. This is just a case of switching out a modMul for a standard mul - follow the breadcrumbs and edit as follows:
    Paul alternative fix.PNG
     
    Last edited: Feb 19, 2017
    • Informative Informative x 2
  17. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,454
    nice job!

    i just assumed they messed up calibrating the thing. i've had a hundred failed filters that did stuff like this.
     
  18. colB

    colB NI Product Owner

    Messages:
    3,969
    Thanks. I thought the same, but went in to see what approach they were using and if there was some sort of trickery in play to tweak the tuning at high resonance (might be what they were up to here), or to limit aliasing at high frequencies or some such. Turned out to be much simpler.
     
  19. BrandonR

    BrandonR New Member

    Messages:
    16
    I'd really been hoping that NI would correct this behavior in the Paul and SKF filters in an update at some point. Disappointing to see that it's still present in 6.3, and now we can't fix it ourselves when using these filters in the rack. Both filters sound amazing, but it's pretty annoying to be stuck with this now if you want to work in the rack. NI please fix this in the next update.
     
    • Like Like x 3
  20. Brett Lavallee

    Brett Lavallee NI Product Owner

    Messages:
    1,024
    I wonder if they fixed the bug in the west coast CFG, or the mis-wired up-sampling macros in the Bento mixer either.
     
    • Like Like x 2