HISE Logo Forum
    • Categories
    • Register
    • Login

    FFTW

    Scheduled Pinned Locked Moved General Questions
    12 Posts 4 Posters 1.3k 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.
    • d.healeyD
      d.healey
      last edited by

      Does HISE use JUCE FFT or FFTW? I don't know what the difference is but apparently FFTW gives better performance. I was thinking it might be a good alternative to IPP for "open source" projects.

      I base my assumptions on this - https://forum.juce.com/t/juce-fft-vs-fftw-benchmarking/18787

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

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

        Yes and the convolution library I am using already has a FFTW wrapper, so the integration is trivial however IPP fully meets my current requirements so I didn‘t bother yet.

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

          @christoph-hart I noticed a switch in the projucer to use FFTW, will enabling that do the trick? Or is the more behind the scenes stuff you'd need to do?

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

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

            Hello past Dave. I finally decided to flick that switch and see what it did, I also needed to include AUDIOFFT_FFTW3=1 in my extra definitions. Build worked and I suppose I now have faster FFT that before... :)

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

            Casey KolbC 2 Replies Last reply Reply Quote 1
            • Casey KolbC
              Casey Kolb @d.healey
              last edited by

              @d-healey Whoa! What??

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

              1 Reply Last reply Reply Quote 0
              • Casey KolbC
                Casey Kolb @d.healey
                last edited by

                @d-healey Have you noticed a difference?

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

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

                  @Lunacy-Audio Not yet, I haven't tested it :) I never noticed any issues using the fallback (KISSFFT) but I'm working on a project that will have a bit more FFT stuff in it so I figured I should go for the best available.

                  FFTW3 is only suitable if you'll be releasing your project under the GNU GPL, otherwise stick with IPP or KISSFFT. Also the analyser won't work without IPP still.

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

                  NatanN 1 Reply Last reply Reply Quote 1
                  • NatanN
                    Natan @d.healey
                    last edited by Natan

                    @d-healey Sir Can You Give A Quick Guide So Ee Can Check How To Run Our Projects Under This FFTW3?
                    What Changes Needed?

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

                      @Natan I enabled the JUCE_DSP_USE_SHARED_FFTW flag and added AUDIOFFT_FFTW3=1 in the extra definitions. If you're not on GNU/Linux you'll probably need to install FFTW3 on your OS and use the JUCE_DSP_USE_STATIC_FFTW flag instead. You'll possibly also need to add some header and library search paths and linker flags.

                      0404cead-89e4-45a9-9be8-2482067fc03e-image.png

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

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

                        I'm afraid this won't help too much because I don't use the JUCE FFT wrapper

                        However there is a preprocessor macro that directly targets the FFT algorhitm used by the convolution. Try defining AUDIOFFT_FFTW3=1 and check whether it improves the performance. AFAIK the library picks the best available routine, so it should pick FFTW over Ooura or KISS FFT as soon as you compile it with this flag enabled.

                        EDIT: Just read your last post properly, the AUDIOFFT_FFTW3 flag should do the trick...

                        1 Reply Last reply Reply Quote 1
                        • NatanN
                          Natan
                          last edited by

                          @d-healey Sir, Are you seeing a big difference After using FFTW3, For example In Convolution Reverb,
                          And I read that you mentioned We still Need IPP, So Can both work together?

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

                            FFTW is only an option if you publish your work under the GPL3 license (also if you have IPP available you won't see any performance benefit).

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

                            49

                            Online

                            1.7k

                            Users

                            11.7k

                            Topics

                            101.8k

                            Posts