HISE Logo Forum
    • Categories
    • Register
    • Login

    Oversampling best practices

    Scheduled Pinned Locked Moved General Questions
    3 Posts 2 Posters 63 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Bicrome
      last edited by

      Hi!

      I'm pretty much done designing an FX plugin inside HISE, using only ScriptFX, and I've added to it a HQ button that enables 4x oversampling.

      Since I want the oversampling to be enabled or disabled, I've used the container.oversample node. Is that the right thing to do, or should I just use container.oversample4x? As far as I know that doesnt let me enable or disable the oversampling, right?

      And another thing. Right now I have everything inside the oversampling node. But can't I put stuff like control.cable_table, control.converter, control.pma, routing.global_cable OUTSIDE of the oversampling node, since I just really need to oversample the audio? And if I have a modulation signal that i get from inside the oversampling, should I get it outside it, do whatever with control nodes, and then get it back inside the oversampling node, or is it better to have everything inside for this cases (when I'm not using knobs from the plugin as the modulation sources)?

      And the last thing. Since I have multiple stages of saturation and added harmonics inside my plugin, shouldn't I break down the signal chain into different stages, and oversample each one individually? Since, even tho the plugin is running at a high sample rate, those inaudible harmonics (that can be filtered with separated stages of oversampling) will get saturated and folded back to audible range if they are saturated again and again.
      Watch some Dan Worrall videos about aliasing and oversampling if you don't know what I mean.
      So, how much should I break the signal chain into stages that will get oversampled and filtered individually?

      Thats it. Sorry for the long post, maybe bad writing, and so many questions.
      And thanks in advance, guys!

      griffinboyG 1 Reply Last reply Reply Quote 1
      • griffinboyG
        griffinboy @Bicrome
        last edited by griffinboy

        @Bicrome

        It depends.

        Oversampling lots of parts individually has advantages and drawbacks depending on what you are doing in your project.

        Each oversampling node will add cpu overhead since there are upsampling and downsampling antialiasing filters inside of the oversampling node, which add a little cpu usage on their own. That being said, if splitting up the oversampling nodes means you can avoid running some heavy nodes at an oversampled rate, you may save cpu usage by splitting them up.

        If you have wet / dry mixing, you'll want to be careful. Mixing oversampled and non oversampled material, or paths that go through multiple upsamplers and downsamplers may cause phase misalignment and phase cancelling. Having multiple 'split up' oversampling blocks in your chain can make mixing really hard.

        In my opinion you'll need to do tests. Test different configurations, measure CPU, and measure negative artefacts. Always test FX plugins using simple waveform tests, like sine waves, saw waves and pink noise. You can then look at the result on some spectral metering software and identify harmful artefacts.

        B 1 Reply Last reply Reply Quote 1
        • B
          Bicrome @griffinboy
          last edited by

          @griffinboy Thanks!
          I'll just try stuff and see what works best.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          28

          Online

          1.9k

          Users

          12.4k

          Topics

          107.5k

          Posts