• Dark Theme
    • Categories
    • Register
    • Login
    HISE Logo Forum
    • Categories
    • Register
    • Login

    Dynamic Oversampling up to 128x or more

    Scheduled Pinned Locked Moved General Questions
    40 Posts 14 Posters 2.2k 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.
    • O
      orange
      last edited by orange 18 Apr 2022, 12:06

      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)

      develop Branch / XCode 13.1
      macOS Monterey / M1 Max

      C C 2 Replies Last reply 18 Apr 2022, 15:40 Reply Quote 1
      • C
        Christoph Hart @orange
        last edited by 18 Apr 2022, 15:40

        @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.

        O ? 2 Replies Last reply 18 Apr 2022, 16:06 Reply Quote 4
        • D
          Dan Korneff
          last edited by 18 Apr 2022, 15:52

          Can't wait for this one

          Dan Korneff - Producer / Mixer / Audio Nerd

          1 Reply Last reply Reply Quote 1
          • O
            orange @Christoph Hart
            last edited by orange 18 Apr 2022, 16:06

            @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 ;)

            develop Branch / XCode 13.1
            macOS Monterey / M1 Max

            U 1 Reply Last reply 18 Sept 2024, 13:26 Reply Quote 0
            • 15 days later
            • ?
              A Former User @Christoph Hart
              last edited by A Former User 5 Mar 2022, 09:42 3 May 2022, 09:41

              @Christoph-Hart When will it be ready?
              Is it possible for you to add this dynamic os node as soon as possible please? :folded_hands:

              C 1 Reply Last reply 12 May 2022, 12:39 Reply Quote 0
              • 9 days later
              • C
                Christoph Hart @A Former User
                last edited by 12 May 2022, 12:39

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

                O ? 2 Replies Last reply 12 May 2022, 12:58 Reply Quote 4
                • O
                  orange @Christoph Hart
                  last edited by 12 May 2022, 12:58

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

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

                  Wow! Thank you!

                  develop Branch / XCode 13.1
                  macOS Monterey / M1 Max

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @Christoph Hart
                    last edited by 12 May 2022, 15:26

                    @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 1 Reply Last reply 12 May 2022, 21:35 Reply Quote 0
                    • D
                      d.healey @A Former User
                      last edited by 12 May 2022, 21:35

                      @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

                      C ? 2 Replies Last reply 12 May 2022, 22:04 Reply Quote 0
                      • C
                        Christoph Hart @d.healey
                        last edited by 12 May 2022, 22:04

                        @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 1
                        • ?
                          A Former User @d.healey
                          last edited by A Former User 13 May 2022, 05:02

                          @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.

                          C 1 Reply Last reply 13 May 2022, 08:50 Reply Quote 0
                          • C
                            Christoph Hart @A Former User
                            last edited by 13 May 2022, 08:50

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

                            ? 1 Reply Last reply 13 May 2022, 12:06 Reply Quote 0
                            • ?
                              A Former User @Christoph Hart
                              last edited by 13 May 2022, 12:06

                              @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?

                              C 1 Reply Last reply 13 May 2022, 12:10 Reply Quote 0
                              • C
                                Christoph Hart @A Former User
                                last edited by 13 May 2022, 12:10

                                @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 13 May 2022, 12:43 Reply Quote 0
                                • ?
                                  A Former User @Christoph Hart
                                  last edited by 13 May 2022, 12:43

                                  @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.

                                  C 1 Reply Last reply 13 May 2022, 21:17 Reply Quote 0
                                  • C
                                    Christoph Hart @A Former User
                                    last edited by 13 May 2022, 21:17

                                    @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 0
                                    • 12 months later
                                    • F
                                      fastermaster
                                      last edited by 3 May 2023, 13:47

                                      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 3 May 2023, 15:18 Reply Quote 0
                                      • FrankbeatF
                                        Frankbeat @fastermaster
                                        last edited by Frankbeat 5 Mar 2023, 15:19 3 May 2023, 15:18

                                        @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 3 May 2023, 15:37 Reply Quote 0
                                        • ustkU
                                          ustk @Frankbeat
                                          last edited by ustk 5 Mar 2023, 15:38 3 May 2023, 15:37

                                          @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...

                                          C 1 Reply Last reply 3 May 2023, 18:49 Reply Quote 1
                                          • C
                                            Christoph Hart @ustk
                                            last edited by 3 May 2023, 18:49

                                            @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
                                            5 out of 40
                                            • First post
                                              Last post

                                            39

                                            Online

                                            1.9k

                                            Users

                                            10.8k

                                            Topics

                                            94.3k

                                            Posts