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.
    • 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
                                      • Casey KolbC
                                        Casey Kolb
                                        last edited by

                                        Hmm bummer. Convolution is SO important!
                                        I just noticed that if I disable IPP in the HISE build, the artifacts go away and you can keep MultiThread active. I might try this option with my test users and see if any performance issues arise.

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

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

                                          @Casey-Kolb Just to follow up, are you able to fix this convolution issue?
                                          Is disabling IPP helped?

                                          As I see, for this issue, the IR length doesn't matters.

                                          develop Branch / XCode 13.1
                                          macOS Monterey / M1 Max

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

                                            @orange We ended up just disabling IPP completely and that fixed the issue. No serious issues in terms of performance so far, but it would be nice to have IPP at some point without this issue.

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

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

                                            21

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts