HISE Logo Forum
    • Categories
    • Register
    • Login

    Resonance Suppression

    Scheduled Pinned Locked Moved General Questions
    26 Posts 9 Posters 1.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.
    • DanHD
      DanH @ustk
      last edited by

      @ustk Spectral dynamic EQ I think

      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
      https://dhplugins.com/ | https://dcbreaks.com/
      London, UK

      1 Reply Last reply Reply Quote 0
      • orangeO
        orange @ustk
        last edited by orange

        @ustk For a classic dynamic EQ, tons of compressors will be needed.

        I think this requires spectral processing like what @DanH said. So it detects the resonance peak frequencies automatically and reduces the dedicated frequency zones dynamically.

        We don’t have spectral processing option in scripnode yet, right?

        develop Branch / XCode 13.1
        macOS Monterey / M1 Max

        ustkU 1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @orange
          last edited by

          @orange We do -> SNEX

          Jokes apart, the algorithm of getting spectral detection isn't trivial. I think it basically it consists in analysing the frequency bins to detect which one is higher, but I'd imagine it's a bit more than just doing this.

          Can't help pressing F5 in the forum...

          orangeO 1 Reply Last reply Reply Quote 0
          • orangeO
            orange @ustk
            last edited by orange

            @ustk Hise already has a spectral analyzer, right?

            develop Branch / XCode 13.1
            macOS Monterey / M1 Max

            ustkU 1 Reply Last reply Reply Quote 0
            • ustkU
              ustk @orange
              last edited by ustk

              @orange There's an FFT API but I am not sure it can be used in SNEX as it lies in the script api, or maybe in a ScriptFX processBlock, this has to be experimented.

              Another way could be reading the FFT node buffer and analyse it, but as far as I know this process as to be made in script which is too slow for real time processing. Maybe there's a way to get this in SNEX, but I don't know what would be the (a) right approach :man_shrugging:

              I reckon a buffer can be passed as external data to SNEX, so this might bea n option worth exploring

              Can't help pressing F5 in the forum...

              orangeO 1 Reply Last reply Reply Quote 0
              • orangeO
                orange @ustk
                last edited by

                @ustk Definitely worth for exploring. Spectral processing is one of the current cutting edge tech for audio processing

                develop Branch / XCode 13.1
                macOS Monterey / M1 Max

                HISEnbergH 1 Reply Last reply Reply Quote -1
                • HISEnbergH
                  HISEnberg @orange
                  last edited by HISEnberg

                  @orange it's been on my HISE wishlist for a while now too, but @ustk is right it's not trivial. You need to perform fft , filter , then ifft which is a lot complex math to get it running efficiently and sound good. Perhaps someone could make an external for this. I've tried RNBO in the past with poor results.

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

                    @HISEnberg I think Max / Msp does spectral processing options too. I should read the manual

                    develop Branch / XCode 13.1
                    macOS Monterey / M1 Max

                    HISEnbergH 1 Reply Last reply Reply Quote 0
                    • HISEnbergH
                      HISEnberg @orange
                      last edited by

                      @orange it does it has an ~fft ~ifft that works quite well, and there's also gizmo~ for pitch shifting but nothing exportable to Hise 🙃

                      1 Reply Last reply Reply Quote 0
                      • A
                        aaronventure
                        last edited by

                        You're probably looking at spectral band analysis in FAUST followed by compression of each band (if you need attack and release).

                        I'm just thinking out loud, I haven't actually done something like this, but FAUST is super fast and I think it has the tools needed for this already available to you.

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

                          @aaronventure Faust constantly surprises me 😀

                          Here is a spectral denoiser article: https://inria.hal.science/hal-04507625/document

                          I haven’t tested the sound tho.

                          develop Branch / XCode 13.1
                          macOS Monterey / M1 Max

                          HISEnbergH JulesVJ 2 Replies Last reply Reply Quote 0
                          • HISEnbergH
                            HISEnberg @orange
                            last edited by

                            @orange Found these slides online too, thanks for the suggestion @aaronventure . I am going to look into this some more.

                            Link Preview Image
                            WAC2024 Spectral Processing

                            Design and Run Real-time Spectral Processing on the Web with Faust Shihong Ren, Stéphane Letz, Yann Orlarey, Michel Buffa, Laurent Pottier, Yang Yu Shanghai Conservatory of Music, SKLMA, China Université Jean Monnet, ECLLA Lab, France Université de Lyon, France GRAME-CNCM Lyon, France INRIA, INSA...

                            favicon

                            Google Docs (docs.google.com)

                            1 Reply Last reply Reply Quote 0
                            • A
                              aaronventure
                              last edited by

                              Link Preview Image
                              analyzers - Faust Libraries

                              favicon

                              (faustlibraries.grame.fr)

                              this seems to b pretty much it. Even the code is there. Split into number of bands and it outputs it as individual outputs, do the processing with par and simply plug the compressor in there.

                              Dont forget to wrap the whole thing into par if you need stereo output.

                              For the compressor, pick whichever you like but probably the simplest one.

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @aaronventure
                                last edited by Lindon

                                @aaronventure I think the problem there is:

                                "A Spectrum-Analyzer is defined here as any band-split whose bands span the relevant spectrum, but whose band-signals do not necessarily sum to the original signal, either exactly or to within an allpass filtering. "

                                but yes on the same page this might be a starting point:

                                Link Preview Image
                                analyzers - Faust Libraries

                                favicon

                                (faustlibraries.grame.fr)

                                HISE Development for hire.
                                www.channelrobot.com

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  aaronventure @Lindon
                                  last edited by aaronventure

                                  @Lindon true. It's worth testing and hearing the results. Maybe the differences are acceptable. You are, after all, gonna be doing some serious processing (Soothe ain't no joke).

                                  If it sounds super bad, it's likely time for a custom solution. Keep in mind that the whole library is open source and and you can actually dive in and see how specific modules were made, recreate them and make modifications.

                                  Link Preview Image
                                  GitHub - grame-cncm/faustlibraries: The Faust libraries

                                  The Faust libraries. Contribute to grame-cncm/faustlibraries development by creating an account on GitHub.

                                  favicon

                                  GitHub (github.com)

                                  But some of the stuff that I toyed with was pretty good. The pitch tracker is super accurate and super fast, even for very low pitches.

                                  orangeO 1 Reply Last reply Reply Quote 0
                                  • orangeO
                                    orange @aaronventure
                                    last edited by

                                    @aaronventure said in Resonance Suppression:

                                    But some of the stuff that I toyed with was pretty good. The pitch tracker is super accurate and super fast, even for very low notes.

                                    Can this be a guitar tuner?

                                    develop Branch / XCode 13.1
                                    macOS Monterey / M1 Max

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      aaronventure @orange
                                      last edited by aaronventure

                                      @orange And a very good one, yeah.

                                      import("stdfaust.lib");
                                      
                                      timing = 0.005;
                                      
                                      process = _, _ :> an.pitchTracker(1, timing) : si.smoo<: _, _  ;
                                      

                                      Probably better to not actually be processing it, but to output it with the pin using vbargaph.

                                      orangeO 1 Reply Last reply Reply Quote 0
                                      • orangeO
                                        orange @aaronventure
                                        last edited by

                                        @aaronventure What does it need to automate to display the note value?

                                        develop Branch / XCode 13.1
                                        macOS Monterey / M1 Max

                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          aaronventure @orange
                                          last edited by aaronventure

                                          @orange You make a node in scriptnode, feed it with the audio and this thing spits out the detected frequency. It goes a bit off on lower notes but it seems to have an error curve so do a bit of Excel and figure it out, then apply the correction.

                                          You probably want to wrap it into a modchain node so that it doesn't actually affect the audio. You can then just cable this back to your interface using global cables and do the math to convert the frequency to semitones+cents.

                                          O 1 Reply Last reply Reply Quote 1
                                          • O
                                            Orvillain @aaronventure
                                            last edited by

                                            @aaronventure Is there a good beginner tutorial on how to use Faust within HISE?

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

                                            14

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.6k

                                            Posts