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

4-pole "Sallen-Key" filter (online workshop)

Discussion in 'REAKTOR' started by Vadim @ NI, Dec 5, 2018.

  1. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    • Like Like x 8
    • Informative Informative x 1
  2. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    Answering the UL questions.

    Regarding getting no sound, additional information is necessary to find out what is not working. Maybe try this structure first:
    upload_2018-12-6_9-45-3.png

    Regarding the "clean curve", take a look at primary Library > 05 - Filters > VA Filter
     
  3. hlmm

    hlmm NI Product Owner

    Messages:
    40
    I have tried to connect it side by side with "Ladder LP", both receiving white noise and sharing the controls. But I get no output from your new filter for some reason. BTW my Reaktor version is 6.2.2.

    I am attaching a screenshot + ISM file. Thanks for your help.

    Screen Shot 2018-12-06 at 22.23.46.png
     

    Attached Files:

  4. domomo

    domomo NI Product Owner

    Messages:
    424
    deconnect sat in your config and it should work
     
  5. domomo

    domomo NI Product Owner

    Messages:
    424
    Vadim, that's cheating. :) and i hoped it was a new "real-time display approach". But thanks for the info, i'll consider it. And thank you for anything - I have a couple of resonance "q" questions in mind and might open a thread on this when my mind is ready.
     
  6. hlmm

    hlmm NI Product Owner

    Messages:
    40
    Thanks, that worked. So satL has to be static value I suppose?
     
  7. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    SatL is the saturation level of the filter. It must be positive. The smaller it is, the stronger is the nonlinear effect (but at some point it simply starts to kill the feedback, so it shouldn't be too small). Normally it's supposed to be constant, this is just for setting your reference level (should be somewhere around 1, but you can choose the value which works best for your purposes). The common way to control the strength of the nonlinear effect of the filter is by varying the amplitude of the filter's input signal.
     
    • Informative Informative x 2
  8. Brett Lavallee

    Brett Lavallee NI Product Owner

    Messages:
    1,024
    Screenshot (29).png
    Here is a prototype Block. Thanks for the inspiration.
     

    Attached Files:

    • Like Like x 4
  9. domomo

    domomo NI Product Owner

    Messages:
    424
    now is it SVF or SKF? (getting neerdy now) :oops:
     
  10. Paule

    Paule NI Product Owner

    Messages:
    7,555
    SVF = Sallen Vadim Filter
    SKF = Sallen Key Filter
     
    • Funny Funny x 1
    • Informative Informative x 1
  11. domomo

    domomo NI Product Owner

    Messages:
    424
    lolilollypop
     
  12. domomo

    domomo NI Product Owner

    Messages:
    424
    this filter sounds good by THE WAY
     
    • Like Like x 1
  13. Brett Lavallee

    Brett Lavallee NI Product Owner

    Messages:
    1,024
    Sorry, that’s why it’s a prototype! Big mistake. SVF means state variable filter, totally different!
     
    • Informative Informative x 1
  14. Catman Dude

    Catman Dude NI Product Owner

    Messages:
    761
    Hi Brett and thanks for putting Vadim's filter into a block, so quickly, for those of us who lack (and envy) your skills in creating them!
    Also thanks for the Tips page you put together on creating/editing blocks. I bookmarked the page thinking I will definitely be using this (someday).
     
    • Like Like x 1
  15. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    Had a spontaneous idea of turning this filter into a little workshop thread. As mentioned in the UL entry, the Reaktor structure is different from the "theoretical" structure of the filter, due to limitations of the ZDF toolkit. We could try reverse engineering the differences together step by step and try building other variants, possibly slightly more efficient. This is not gonna teach one how to build filters, rather getting one more familiar with the ZDF toolkit and some tricks in filter construction, so don't expect huge revelations. Regarding the expected level of participants, I guess if you could follow my HDPK talk (https://www.native-instruments.com/...h-vadim-zavalishin.330477/page-4#post-1695397) and understand most of it, it should be fine.
    If you want to participate please "like" this post.
     
    • Like Like x 9
  16. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    WORKSHOP STEP 1

    Ok, since we already have some people willing to participate let's start (but of course, more participants are welcome). The first step would be a simple one: match the Reaktor implementation of the TSK LP filter in the Core macro library (Audio > Filter > 2-pole) against the theoretical block diagram. The latter is found in https://www.native-instruments.com/fileadmin/ni_media/downloads/pdf/VAFilterDesign_2.1.0.pdf in Fig.5.23 p.152.
    That is we need to make sure that we understand how and why both structures are the same (save for a few extra outputs in the Reaktor structure).

    Hint 1: you can always consult the ZDF toolkit documentation in the Reaktor 6 Core manual.
    Hint 2: it might be worth watching the mentioned earlier HDPK video, if you haven't already.

    If you understand the equivalence of the two structures already, then simply "like" this post, which will mean we can move on (from your side). Otherwise ask your questions here and let's have a discussion. It would be awesome if I don't need to answer questions, but other participants will. So if you think you have an answer to someone else's question, don't hesitate to post it here. Even if you're not sure it's a right answer, this is a workshop and not an exam, so it's better to post your answer here, so that we could have a discussion. Equally, please don't hesitate to criticize (in a polite manner ;) ) someone's or my ( ;) ) answer. Ideally I would only suggest the next steps and the discussion will be all done by the participants ;)

    Note 1: you need Reaktor 6.2.2 Core macro library.
    Note 2: there seems to be an issue, the TSK LP macro being still in the old version, at least on some machines. While this issue is being investigated it's recommended to use the structure by colB in https://www.native-instruments.com/forum/threads/4-pole-sallen-key-filter.341863/page-2#post-1718081 My apologies for the confusion.
     
    Last edited: Dec 10, 2018
    • Like Like x 1
  17. Catman Dude

    Catman Dude NI Product Owner

    Messages:
    761
    (I sincerely hope I won't slow this workshop down.) I see distinct similarities between the block diagram and the TSK LP filter. My understanding, faulty-noobie as it is, would be that there is a difference between the block diagram and the TSK LP macro in that the block diagram seems to feedback from the HP filter only; the TSK LP filter seems to feedback both the 1-pole LP and the 2-pole LP via the adder and gain modules. Though both 1-pole filters have HP outputs, neither of these seems to my eye to be fed into the adder. What am I missing?
    Thanks for this workshop Vadim!
     
  18. Vadim @ NI

    Vadim @ NI NI Team NI Team

    Messages:
    280
    Looks to me your Core macro library is pre 6.2.2. Is that the case? Maybe it's my fault, I should have mentioned, one needs the 6.2.2 update.
     
  19. Catman Dude

    Catman Dude NI Product Owner

    Messages:
    761
    Hi Vadim,
    Sorry about the missed communication (I tried to reply to email)...
    I don't think my library is out of date; it's probably that I'm not looking at the right macro.
    Uploading a file, let's see if it comes in. Untitled 2.png Untitled.png
     
  20. colB

    colB NI Product Owner

    Messages:
    3,969
    That's what I have as well, only the LP outs of the MM sections being fed back.