Forum

    • Register
    • Login
    • Search
    • Categories

    Dynamic Oversampling up to 128x or more

    General Questions
    6
    16
    174
    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.
    • orange
      orange last edited by orange

      As I see only up to 16x oversampling is available in scriptnode? Is it possible to make 128x (or even more) with scripting?

      Or @Christoph-Hart can you add more options for oversampling please? Probably a dynamic oversampling node (OFF, 2x, 4x, 8x, 16x, 32x, 64x, 128x, 256x... modes in one node) would be great ๐Ÿ˜‰

      (Some current products uses up to 1024x dynamically)

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

        @orange Yes dynamic oversampling is on my TODO list (I think I have started it already, but it's not quite ready yet.

        Personally I think anything above 16x oversampling is just burning CPU (and at some point the memory will blow up), but nothing stops you from changing the code and adding more numbers.

        orange S 2 Replies Last reply Reply Quote 6
        • dustbro
          dustbro last edited by

          Can't wait for this one

          Dan Korneff - Producer / Mixer / Audio Nerd

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

            @Christoph-Hart said in Dynamic Oversampling up to 128x or more:

            Personally I think anything above 16x oversampling is just burning CPU (and at some point the memory will blow up).

            Some wave shaper functions are consuming not even 1% CPU with 16x oversampling on the compiled plugin. But also at the same time, some aliasing (low, but not negligible) still happens even on 16x above the Nyquist.

            So the user might go for higher rates for cleaner solutions, if the DSP doesn't involve heavy CPU tasks. Besides, since the CPU technology's been going to a good way like Apple Silicon, why not use 256x if the user wants ๐Ÿ˜‰

            1 Reply Last reply Reply Quote 0
            • S
              Steve Mohican @Christoph Hart last edited by Steve Mohican

              @Christoph-Hart When will it be ready?
              Is it possible for you to add this dynamic os node as soon as possible please? ๐Ÿ™

              Christoph Hart 1 Reply Last reply Reply Quote 0
              • Christoph Hart
                Christoph Hart @Steve Mohican last edited by

                The dynamic oversampler has arrived (container::oversampler).

                orange S 2 Replies Last reply Reply Quote 4
                • orange
                  orange @Christoph Hart last edited by

                  @Christoph-Hart said in Dynamic Oversampling up to 128x or more:

                  The dynamic oversampler has arrived (container::oversampler).

                  Wow! Thank you!

                  1 Reply Last reply Reply Quote 0
                  • S
                    Steve Mohican @Christoph Hart last edited by

                    @Christoph-Hart said in Dynamic Oversampling up to 128x or more:

                    The dynamic oversampler has arrived (container::oversampler).

                    Trying to compile the current commit, getting these errors:

                    No template named 'parameter_node_base'; did you mean 'pimpl::parameter_node_base'?
                    
                    'hi_zstd/hi_zstd_3.mm' file not found
                    
                    d.healey 1 Reply Last reply Reply Quote 0
                    • d.healey
                      d.healey @Steve Mohican last edited by

                      @Steve-Mohican It seems the code is missing a few pimpls ๐Ÿ™‚

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      Christoph Hart S 2 Replies Last reply Reply Quote 1
                      • Christoph Hart
                        Christoph Hart @d.healey last edited by

                        @d-healey Should be fine now. The other error is a glitch, make sure you do a clean rebuild.

                        1 Reply Last reply Reply Quote 2
                        • S
                          Steve Mohican @d.healey last edited by Steve Mohican

                          @Steve-Mohican It seems the code is missing a few pimpls ๐Ÿ™‚

                          @d-healey I guessed that too but I just wanted to be sure ๐Ÿ™‚

                          @d-healey Should be fine now. The other error is a glitch, make sure you do a clean rebuild.

                          @Christoph-Hart Thanks.

                          I think no_mod_normalisation(getStaticId()) (212th line) also needs pimpl:: prefix too?

                          How can we use this node? There is no option for the oversampling rate selection.

                          Christoph Hart 1 Reply Last reply Reply Quote 0
                          • Christoph Hart
                            Christoph Hart @Steve Mohican last edited by

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

                            H 1 Reply Last reply Reply Quote 1
                            • H
                              harris rosendahl @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 Hart 1 Reply Last reply Reply Quote 0
                              • Christoph Hart
                                Christoph Hart @harris rosendahl 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.

                                H 1 Reply Last reply Reply Quote 1
                                • H
                                  harris rosendahl @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 Hart 1 Reply Last reply Reply Quote 0
                                  • Christoph Hart
                                    Christoph Hart @harris rosendahl last edited by

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

                                    https://github.com/juce-framework/JUCE/blob/2f980209cc4091a4490bb1bafc5d530f16834e58/modules/juce_dsp/processors/juce_Oversampling.cpp#L547

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

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

                                    17
                                    Online

                                    741
                                    Users

                                    5.4k
                                    Topics

                                    50.4k
                                    Posts