HISE Logo Forum
    • Categories
    • Register
    • Login

    Oversampling on convolution reverb

    Scheduled Pinned Locked Moved General Questions
    31 Posts 8 Posters 2.0k 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.
    • T
      tomekslesicki
      last edited by

      Yeah, I've seen every thread that contained word 'convolution' by now. It's just that there seems to be no solution. @Christoph-Hart ?

      1 Reply Last reply Reply Quote 0
      • T
        tomekslesicki
        last edited by

        Ok, I think it has to do something with IPP. When I build HISE without it and then compile the plugin it seems to work fine.

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

          Can you send me the IR in question? IIRC @hisefilo also had a certain impulse response that triggered some issues with the first frequency bin in the FFT.

          hisefiloH 1 Reply Last reply Reply Quote 0
          • hisefiloH
            hisefilo @Christoph Hart
            last edited by

            @Christoph-Hart Choosing Ooura FFT this fixed that issue. I can remember

            // oninit
            
             const var ConvolutionReverb1 = Synth.getEffect("Convolution Reverb1");
             
             // Set the FFT type
             // 0 = best available
             // 1 = IPP
             // 2 = Apple Accelerate
             // 3 = Ooura FFT (slower fallback, but most portable)
             ConvolutionReverb1.setAttribute(ConvolutionReverb1.FFTType, 0);
            
            lalalandsynthL 1 Reply Last reply Reply Quote 3
            • Christoph HartC
              Christoph Hart
              last edited by

              Ah nice, so I didn't fix the IPP version back then :)

              1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by

                What about adding KISSFFT?

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

                1 Reply Last reply Reply Quote 0
                • lalalandsynthL
                  lalalandsynth
                  last edited by

                  Is the convolution set to 0 " best available" as default ?

                  https://lalalandaudio.com/

                  https://lalalandsynth.com/

                  https://www.facebook.com/lalalandsynth

                  https://www.facebook.com/lalalandsynth

                  1 Reply Last reply Reply Quote 0
                  • lalalandsynthL
                    lalalandsynth
                    last edited by lalalandsynth

                    Verfied , have aliasing here as well....maybe !

                    Although not sure that is aliasing I am at 96k and that makes no difference, guess I need to try another export with the Ooura ?
                    I dont get that 20K spike when using the same impulse in other reverbs
                    Impulse.jpg

                    https://lalalandaudio.com/

                    https://lalalandsynth.com/

                    https://www.facebook.com/lalalandsynth

                    https://www.facebook.com/lalalandsynth

                    1 Reply Last reply Reply Quote 0
                    • lalalandsynthL
                      lalalandsynth @hisefilo
                      last edited by lalalandsynth

                      @hisefilo Are you referring to the aliasing issue by using Ooura ?
                      What does slower fallback mean and would you recommend just using the Ooura even though IPP has been recommended up to now ?

                      TESTING:

                      If i change the FFT type from 0, I lose the reverb and get some sort of room type doubling sound :)
                      Setting it back to zero does not help.

                      Setting it to 3 seems to get rid of most of the "Aliasing" , but I also lose the reverb so....hehe

                      MORE TESTING

                      Sine wave through Reaper Reaverb using my Impulse.
                      Sine 1.jpg

                      Same Sine , same impulse through my plugin.
                      Sine 2.jpg

                      I dont think its impulse specific as all my 90 impulses look like that .

                      Vocals through Reaverb.
                      Vocals.jpg

                      Vocals through my plug, same impulse.
                      Vocals 2.jpg

                      https://lalalandaudio.com/

                      https://lalalandsynth.com/

                      https://www.facebook.com/lalalandsynth

                      https://www.facebook.com/lalalandsynth

                      hisefiloH 1 Reply Last reply Reply Quote 0
                      • hisefiloH
                        hisefilo @lalalandsynth
                        last edited by

                        @lalalandsynth no aliasing on 0oura but IPP

                        Don't know details about the comments on the code I posted. It's old @Christoph-Hart magic! :)

                        lalalandsynthL 1 Reply Last reply Reply Quote 1
                        • lalalandsynthL
                          lalalandsynth @hisefilo
                          last edited by lalalandsynth

                          @hisefilo ok, but it does not seem to work for me , lose the reverb sound if I change the FFT mode.

                          I am going to test some more impulses , but I think its pretty clear that there is a problem.
                          My reverb plugin is just about ready :(

                          https://lalalandaudio.com/

                          https://lalalandsynth.com/

                          https://www.facebook.com/lalalandsynth

                          https://www.facebook.com/lalalandsynth

                          hisefiloH 1 Reply Last reply Reply Quote 0
                          • lalalandsynthL
                            lalalandsynth
                            last edited by

                            @Christoph-Hart

                            Any chance to get a fix for this?
                            Was planning an impulse reverb as my first release. :)

                            https://lalalandaudio.com/

                            https://lalalandsynth.com/

                            https://www.facebook.com/lalalandsynth

                            https://www.facebook.com/lalalandsynth

                            1 Reply Last reply Reply Quote 0
                            • hisefiloH
                              hisefilo @lalalandsynth
                              last edited by

                              @lalalandsynth an oversampled convolution node on scriptnode?

                              lalalandsynthL 1 Reply Last reply Reply Quote 1
                              • lalalandsynthL
                                lalalandsynth @hisefilo
                                last edited by lalalandsynth

                                @hisefilo Oh, that is possible , does it behave in a similar way in terms of loading impulses etc or do I have to do everything over ?

                                Will check it out.

                                https://lalalandaudio.com/

                                https://lalalandsynth.com/

                                https://www.facebook.com/lalalandsynth

                                https://www.facebook.com/lalalandsynth

                                lalalandsynthL 1 Reply Last reply Reply Quote 0
                                • lalalandsynthL
                                  lalalandsynth @lalalandsynth
                                  last edited by lalalandsynth

                                  @lalalandsynth Quick test and that seems to work to get rid of the aliasing!
                                  8x oversampling, maybe even 2 x would be enough , now I just need to find out if I can replace those impulses on the fly or if the scriptnode impulse is meant to just sit there as an static impulse ?

                                  I suspect i cannot even get a reference for the Convolution Module in the scriptnode, is there some way to script the switching of impulses in scriptnode ?

                                  I can export the Convolution module as ccp and make the changing of impulses public i.e create a meta node but unsure of how to include the oversampling in that ?

                                  Man..if there was only a knob for the index.....sigh .

                                  https://lalalandaudio.com/

                                  https://lalalandsynth.com/

                                  https://www.facebook.com/lalalandsynth

                                  https://www.facebook.com/lalalandsynth

                                  1 Reply Last reply Reply Quote 1
                                  • lalalandsynthL
                                    lalalandsynth
                                    last edited by

                                    @tomekslesicki

                                    Check this out , seems to work .
                                    https://forum.hise.audio/topic/2652/scriptnode-oversample-node-starting-at-4x-crashes-in-pc/13

                                    https://lalalandaudio.com/

                                    https://lalalandsynth.com/

                                    https://www.facebook.com/lalalandsynth

                                    https://www.facebook.com/lalalandsynth

                                    1 Reply Last reply Reply Quote 0
                                    • lalalandsynthL
                                      lalalandsynth
                                      last edited by

                                      BTW, what does the "multithread option" do on the Convolution reverb ?
                                      Its not available on the Scriptnode Convolution so just wondering.

                                      https://lalalandaudio.com/

                                      https://lalalandsynth.com/

                                      https://www.facebook.com/lalalandsynth

                                      https://www.facebook.com/lalalandsynth

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

                                        It moves the convolution calculation into a background thread. It's not faster in anyway, but it won't increase the CPU usage of your audio thread, so if your main goal is to keep the CPU meter down, this is the key.

                                        1 Reply Last reply Reply Quote 0
                                        • Casey KolbC
                                          Casey Kolb
                                          last edited by

                                          @lalalandsynth Any progress on the aliasing? I'm experiencing the same issue. Setting the FFTType to 3 fixes it mostly, but also crashes my plugin and removes the reverb when MultiThread is active, which defeats the whole purpose. This is really making the convolution almost unusable.

                                          How have other people achieved good results with the convolution module so far? It seems almost too whack for production-ready plugins.

                                          Casey Kolb
                                          Founder & CEO of Lunacy Audio
                                          Composer | Producer | Software Developer

                                          lalalandsynthL 1 Reply Last reply Reply Quote 0
                                          • lalalandsynthL
                                            lalalandsynth @Casey Kolb
                                            last edited by

                                            @Lunacy-Audio I have it working in Scriptnode wrapped in oversampling, no multithread option though.
                                            Just using a delay with no feedback as the predelay.

                                            However , you cannot switch impulses without major clicks and pops.

                                            So yeah , not ready for plugins in my opinion.

                                            https://lalalandaudio.com/

                                            https://lalalandsynth.com/

                                            https://www.facebook.com/lalalandsynth

                                            https://www.facebook.com/lalalandsynth

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

                                            21

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts