HISE Logo Forum
    • Categories
    • Register
    • Login

    Flangers...

    Scheduled Pinned Locked Moved General Questions
    9 Posts 5 Posters 116 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.
    • LindonL
      Lindon
      last edited by

      So Im making an multi-effect - and I'd like to include a flanger - but I cant seem to build or find anything thats fits the bill - the faust one isnt great - and the one In built is wonky - has anyone got any pointers?

      HISE Development for hire.
      www.channelrobot.com

      LindonL griffinboyG MorphoiceM 3 Replies Last reply Reply Quote 0
      • LindonL
        Lindon @Lindon
        last edited by

        @Lindon perhaps I should have a go at porting the airwindows one...

        HISE Development for hire.
        www.channelrobot.com

        DanHD HISEnbergH 2 Replies Last reply Reply Quote 0
        • DanHD
          DanH @Lindon
          last edited by

          @Lindon RNBO one was decent

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

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

            @Lindon Couldn't you just create one in Scriptnode or Faust with a modulated delay?

            *Edit here is one I wrote a long time ago when I was learning Faust

            declare name "Flanger";
            declare version "1.0.0";
            declare author "HISENBERG";
            declare license "IDGAF-DWYW"; // I don't care do what you want with it
            
            import("stdfaust.lib");
            
            // Mono/Stereo
            flanger = _,_ : flanger_stereo : _,_;
            flanger_stereo(l,r) = flanger_mono(l), flanger_mono(r);
            
            flanger_mono = effect
            with {
            
                // UI controls
                maxdelay = 0.02;
                rate = hslider("rate[unit:Hz]", 0.5, 0.01, 10.0, 0.01);
                depth = hslider("depth", 0.7, 0.0, 1.0, 0.01);
                feedback = hslider("feedback", 0.5, 0.0, 0.99, 0.01);
                mix = hslider("mix", 0.5, 0.0, 1.0, 0.01);
                
                lfo = os.oscrs(rate) * 0.5 + 0.5; 
                delayTime = 0.0001 + lfo * depth * maxdelay;
                
                // Delay line with feedback
                delayedSignal(x) = fb ~ de.fdelay(maxdlsamps, delaysamples) 
                with {
                    SR = ma.SR;                  // Sample rate
                    maxdlsamps = int(maxdelay * SR);
                    delaysamples = delayTime * SR;
                    fb(y) = x + y * feedback;    // Feedback loop
                };
                
                // Mix dry and wet signals
                effect(x) = dry * x + wet * delayedSignal(x)
                with {
                    wet = mix;
                    dry = 1 - mix;
                };
            };
            
            process = flanger;
            
            DanHD 1 Reply Last reply Reply Quote 0
            • griffinboyG
              griffinboy @Lindon
              last edited by

              @Lindon

              Search for papers and GitHub c++ repos

              1 Reply Last reply Reply Quote 1
              • DanHD
                DanH @HISEnberg
                last edited by

                @HISEnberg

                *Edit here is one I wrote a long time ago when I was learning Faust

                Do you know how to edit this to allow for an modulation input rather than use the faust lfo?

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

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

                  @DanH You mean more or less like this correct?

                  Screenshot 2025-05-12 at 4.37.10 PM.png

                  You could accomplish it with a simple delay and modulating the delay time. @griffinboy is correct though, reading papers and checking some repos is the way to go here. My example is more or less just a theoretic flanger but doesn't match the performance of what you may find from people who have done actual research on the topic.

                  But you can try this:

                  import("stdfaust.lib");
                  
                  // UI
                  maxdelay    = 0.5; 
                  delaytime   = hslider("delay [ms]", 5.0, 0.0, 20.0, 0.01); //Add si.smooth(0.99) for interploation here if you want
                  feedback    = hslider("feedback", 0.5, 0, 0.99, 0.01);
                  mix         = hslider("mix",      0.5, 0, 1.00, 0.01);
                  
                  // State variables
                  SR          = ma.SR;
                  maxdlsamps  = int(maxdelay * SR);
                  delaysamps  = int(delaytime / 1000  * SR); 
                  
                  // Dleay
                  delayedSignal(x) = fb ~ de.fdelay(maxdlsamps, delaysamps)
                    with { fb(y) = x + y * feedback; };
                  
                  modDelay(x) = (1-mix)*x + mix*delayedSignal(x);
                  
                  // Stereo
                  process = modDelay, modDelay;
                  
                  
                  
                  DanHD 1 Reply Last reply Reply Quote 2
                  • DanHD
                    DanH @HISEnberg
                    last edited by

                    @HISEnberg Yup, that's what I meant regarding the input, many thanks! Will do some research

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

                    1 Reply Last reply Reply Quote 0
                    • MorphoiceM
                      Morphoice @Lindon
                      last edited by

                      @Lindon really depends on what sound and modulation possibilities you want to go for. Whipping up comething custom in faust should be straight forward. Habe a look at the boss or moog clusterlis schematics, they are usually among the most recommended flangers. Probably airwindows is another good source to start and easy to turn into a node. I had a thread how to do it now long ago you should find all you need in there

                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

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

                      56

                      Online

                      1.7k

                      Users

                      11.7k

                      Topics

                      102.1k

                      Posts