HISE Logo Forum
    • Categories
    • Register
    • Login

    Dynamic Oversampling up to 128x or more

    Scheduled Pinned Locked Moved General Questions
    40 Posts 14 Posters 2.5k 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.
    • Christoph HartC
      Christoph Hart @A Former User
      last edited by

      @Steve-Mohican Click on the parameter icon of the oversample node.

      ? 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @Christoph Hart
        last edited by

        @Christoph-Hart I can't see the options for higher than 16x oversampling rate. When the parameter range is increased, the node doesn't seem to work more than 16x. Can you add more rates please (yes the ram can blow up for some DSP codes but it will be fine for some cheap DSP codes) which is also requested in this topic?

        One more thing about the latency. While the oversampling rate changes, will the delay compensation adjusted dynamically?

        Christoph HartC 1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @A Former User
          last edited by

          @harris-rosendahl There‘s not delay compensation going on, you need to do this manually.

          You can enable 32x oversampling by changing the source code but that‘s the highest that the JUCE oversampler can do.

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @Christoph Hart
            last edited by

            @Christoph-Hart

            You can enable 32x oversampling by changing the source code but that‘s the highest that the JUCE oversampler can do.

            Thank you for the info. Can you add 32x rate too please? It would be good at least we have 32x without being have to change the source code.

            Christoph HartC 1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart @A Former User
              last edited by

              @harris-rosendahl I just took a look and the JUCE oversampler actually only supports 16x:

              Link Preview Image
              JUCE/modules/juce_dsp/processors/juce_Oversampling.cpp at 2f980209cc4091a4490bb1bafc5d530f16834e58 · juce-framework/JUCE

              JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins. - JUCE/modules/juce_dsp/processors/juce_Oversampling.cpp at 2f980209cc4091a4490bb1bafc5d530f16834e58 · juce-framework/JUCE

              favicon

              GitHub (github.com)

              The exponent need to be smaller than 5, so 2^4=16x is all you can get here.

              1 Reply Last reply Reply Quote 0
              • F
                fastermaster
                last edited by

                Hi guys, interesting subject. OS for higher than 16x can really be interesting for heavy saturation processors, i'm guessing 32 and 64x would completely remove any aliasing there is even in heavy situations.

                Is there a way to overcome this Juce limitation?

                FrankbeatF 1 Reply Last reply Reply Quote 0
                • FrankbeatF
                  Frankbeat @fastermaster
                  last edited by Frankbeat

                  @fastermaster 64x oversampling? I'm trying hard to hear a difference between 2x and 4x from what I saw in videos on that subject. Can it really be worth to force a processor to run a audio thread on 64*44100(or more) samples? Unfortunately I can't test this myself with my old machine but I highly doubt there's a good reason for oversample with such a high rate. No offense, just being curious…

                  Using HISE from the develop branch (Feb '23)

                  ustkU 1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @Frankbeat
                    last edited by ustk

                    @Frankbeat @fastermaster In fact one of the most important things in oversampling is the quality of the stop band filter.
                    a 16x OS with a good rejection has nothing to be ashamed of when compared to a 64x with a lesser rejection quality.
                    Unfortunately, the Juce filter doesn't appear to be that good, so I can understand the limitation to 16x might be problematic in some situations (though I haven't checked against another one)

                    Can't help pressing F5 in the forum...

                    Christoph HartC 1 Reply Last reply Reply Quote 1
                    • Christoph HartC
                      Christoph Hart @ustk
                      last edited by

                      @ustk there are multiple filter options available in the JUCE sampler and I just picked one without giving it too much thought, so if you find parameters that sound better I'm happy to add those as options.

                      1 Reply Last reply Reply Quote 1
                      • F
                        fastermaster
                        last edited by

                        thanks guys, I'm working on a distortion emulation, so avoiding aliasing is a must, I want to offer the option of 4x 8x and 16x. I'll just need to figure what's the best filter to use in this case.

                        Did someone experimented with the filters? The reaper And aliasing seem to be quite good, I wonder what they're using.

                        1 Reply Last reply Reply Quote 0
                        • pluginboiP
                          pluginboi
                          last edited by

                          I've been playing around with the filterHalfBandFIREquiripple in my hise projects and its really nice. You have to compensate for a but more latency compared to the current oversampling filter but this one is linear phase.

                          ustkU 1 Reply Last reply Reply Quote 0
                          • ustkU
                            ustk @pluginboi
                            last edited by ustk

                            @pluginboi That is good to know
                            My knowledge of the topic stops there. But from what I know about filters, linear phase isn't better than conventional filters, they are just different tools. Since they cause pre-ringing as a result of phase compensation, they are generally bad on fast transient material because of the smoothing they create.

                            I think having a filter selector in the oversample node would be great for selecting the one that better suits the needs.

                            Can't help pressing F5 in the forum...

                            Dan KorneffD 1 Reply Last reply Reply Quote 2
                            • Dan KorneffD
                              Dan Korneff @ustk
                              last edited by

                              @ustk said in Dynamic Oversampling up to 128x or more:

                              I think having a filter selector in the oversample node would be great for selecting the one that better suits the needs.

                              @Christoph-Hart Do you think adding a selectable oversampling type could be implemented? I'm getting a lot of requests for this and figured I'd hit you before I attempt to hack something together.

                              Dan Korneff - Producer / Mixer / Audio Nerd

                              pluginboiP 1 Reply Last reply Reply Quote 0
                              • clevername27C
                                clevername27 @orange
                                last edited by clevername27

                                @orange How is oversampling useful in ScriptNode if other parts of your plugin do not?

                                LindonL orangeO 2 Replies Last reply Reply Quote 0
                                • LindonL
                                  Lindon @clevername27
                                  last edited by

                                  @clevername27 said in Dynamic Oversampling up to 128x or more:

                                  @orange How is oversampling useful in ScriptNode if other parts of your plugin do not?

                                  removes aliasing and some intermodulations...

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  1 Reply Last reply Reply Quote 1
                                  • pluginboiP
                                    pluginboi @Dan Korneff
                                    last edited by

                                    @Dan-Korneff if you want I have a source code tweak I can send you for a linear phase oversample mode in script node. I just don't have it built to be switchable between linear and minimum

                                    Christoph HartC 1 Reply Last reply Reply Quote 1
                                    • Christoph HartC
                                      Christoph Hart @pluginboi
                                      last edited by

                                      Is there a use case for making this dynamically switchable? Otherwise I could make it a preprocessor that you can set in your extra definitions.

                                      Dan KorneffD 3 Replies Last reply Reply Quote 1
                                      • Dan KorneffD
                                        Dan Korneff @Christoph Hart
                                        last edited by

                                        @Christoph-Hart For general applications, users are looking for linear phase filters, and for transient material, minimum phase is desirable. Having it be selectable would be super awesome if you're able.

                                        Dan Korneff - Producer / Mixer / Audio Nerd

                                        1 Reply Last reply Reply Quote 1
                                        • orangeO
                                          orange @clevername27
                                          last edited by orange

                                          @clevername27 If you use saturation or distortion (in some cases for the convolution too) in the plugin, you have to do oversampling in these parts, otherwise there will be Aliasing.

                                          Apart from this, if there is no saturation or harmonic distortion in the other modules you use, you do not have to oversample; in fact, you should not do it so that you can ensure optimum CPU usage.

                                          develop Branch / XCode 13.1
                                          macOS Monterey / M1 Max

                                          clevername27C 1 Reply Last reply Reply Quote 1
                                          • clevername27C
                                            clevername27 @orange
                                            last edited by

                                            @orange Thanks - makes sense.

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

                                            58

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts