HISE Logo Forum
    • Categories
    • Register
    • Login

    Gated Reverb

    Scheduled Pinned Locked Moved General Questions
    12 Posts 2 Posters 170 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.
    • MorphoiceM
      Morphoice @griffinboy
      last edited by

      @griffinboy I was playing around with faust and came up with this simple chain of allpass comb filters but it's hardly a good sounding end result

      import("stdfaust.lib");
      
      // Modulation parameters
      modFreq1 = 0.1;  // Slow modulation frequency (Hz)
      modFreq2 = 0.15;
      modFreq3 = 0.2;
      modFreq4 = 0.55;
      
      modDepth1 = 5;   // Small modulation depth (samples)
      modDepth2 = 7;
      modDepth3 = 10;
      modDepth4 = 13;
      
      // Modulated delay lengths
      modDelay1 = 350 + (os.osc(modFreq1) * modDepth1);
      modDelay2 = 490 + (os.osc(modFreq2) * modDepth2);
      modDelay3 = 633 + (os.osc(modFreq3) * modDepth3);
      modDelay4 = 877 + (os.osc(modFreq4) * modDepth4);
      
      process = _ : fi.allpass_fcomb(2048, modDelay1, 0.7) 
               : fi.allpass_fcomb(2048, modDelay2, 0.6) 
               : fi.allpass_fcomb(2048, modDelay3, 0.6)
               : fi.allpass_fcomb(2048, modDelay4, 0.6) <: _,_;
      

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

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

        @griffinboy jesus, seeing Casey discuss in a forum has me awestruck. The M7 is my life elixir from album one.

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

        1 Reply Last reply Reply Quote 1
        • griffinboyG
          griffinboy @Morphoice
          last edited by griffinboy

          @Morphoice

          Ah yeah that's a naive design indeed!
          A real reverb is more complex.

          You might want to start by recreating some basic classic designs before you dive into making your final thing. There are a few things to learn and experiment with. Open up some of the Faust reverbs and get an idea of the architecture. There are a few different ways to design them. Usually you have a diffusion stage (series all passes, combs) and then a reverb tank (modulated all passes, or delay lines matrixed together so that they all feed each other and crisscross, or multi tap delays with a bunch of taps) and then a completely separate early reflections stage usually made from a multi tap delay. You also have filters inside these stages to shape the decay, as well as feedback around certain parts.

          Getting rid of resonant buildups is the tricky thing. I use AI to calculate the ideal coeffs. But the traditional approach is a TON of math, plus a TON of typing in different numbers and seeing what sticks...

          The forum link I posted has a great discussion that details one of the early quantec designs. I can't recommend enough that you go through all the pages on that forum. Especially paying attention to the discussion being had by the bricasti engineer.

          Happy reading.

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

            @griffinboy yes I need to design this from scratch and experiment with it to get a hang of it, the allpass filter thing was just a first attempt at not modifying an existing algorithm... I understand there is a stage of parallel comb filters, serial allpass filters and a need for prime numbers.
            sadly there are no diagrams of the AMS algorithms, though I could find some of the lexicon architecture in the past...

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

            griffinboyG 1 Reply Last reply Reply Quote 1
            • griffinboyG
              griffinboy @Morphoice
              last edited by

              @Morphoice

              Reverbs are secret.
              Soooo much work is put into the algo. There is no way in heck anyone would ever share it once they've created a musical algorithm, because it was likely the cumulation of years of research and iteration.

              But I wish you luck. I've taken a break from reverb, maybe to return in the future once AI can train on all passes properly (I've been asking the FLAMO researchers to help me out with that...)

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

                @griffinboy this doesnt sound half bad lol

                import("stdfaust.lib");
                
                // Modulation parameters
                modFreq1 = 0.1;  // Slow modulation frequency (Hz)
                modFreq2 = 0.15;
                modFreq3 = 0.2;
                modFreq4 = 0.55;
                
                modDepth1 = 5;   // Small modulation depth (samples)
                modDepth2 = 7;
                modDepth3 = 10;
                modDepth4 = 13;
                
                // Modulated delay lengths
                modDelay1 = 113 + (os.osc(modFreq1) * modDepth1);
                modDelay2 = 229 + (os.osc(modFreq2) * modDepth2);
                modDelay3 = 359 + (os.osc(modFreq3) * modDepth3);
                modDelay4 = 691 + (os.osc(modFreq4) * modDepth4);
                
                predelay = (
                    fi.allpass_fcomb(128, 13, 0.7),
                    fi.allpass_fcomb(128, 29, 0.6),
                    fi.allpass_fcomb(128, 47, 0.6),
                    fi.allpass_fcomb(128, 71, 0.6)
                ) :> _,_;
                
                diffusion = 
                    (fi.allpass_fcomb(2048, modDelay1, 0.6),
                    fi.allpass_fcomb(2048, modDelay1+13, 0.6)) 
                    : (fi.allpass_fcomb(2048, modDelay2, 0.6),
                    fi.allpass_fcomb(2048, modDelay2+23, 0.6))
                    : (fi.allpass_fcomb(2048, modDelay3, 0.6),
                    fi.allpass_fcomb(2048, modDelay3+47, 0.6))
                    : (fi.allpass_fcomb(2048, modDelay4, 0.6),
                    fi.allpass_fcomb(2048, modDelay4+71, 0.6));
                
                process = _ <: predelay : diffusion;
                
                

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

                griffinboyG 1 Reply Last reply Reply Quote 1
                • griffinboyG
                  griffinboy @Morphoice
                  last edited by griffinboy

                  @Morphoice

                  An important test for reverb is to pass pink noise into it and see whether any resonances build up.

                  Certain signals will cause nasty resonances. One of the hard things about reverb design is making it sound pleasant on any signal.

                  Also be sure to wrap that in feedback. Then you can create a more sustained decay by adjusting both the feedback amount and the delay coefficients.

                  MorphoiceM 2 Replies Last reply Reply Quote 1
                  • MorphoiceM
                    Morphoice @griffinboy
                    last edited by

                    @griffinboy I have yet to learn how feedback works in faust...

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

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

                      @griffinboy stupid question, but are there all the building blocks in scriptnode to create a reverb algorithm? I see an allpass or a thieran interpolation delay but I'm not sure those are the right ingredients

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

                      griffinboyG 1 Reply Last reply Reply Quote 0
                      • griffinboyG
                        griffinboy @Morphoice
                        last edited by

                        @Morphoice

                        Well maybe. But it'll be so cpu hungry. And fiddly because the routing of a real reverb is a complex matrix with taps coming in and out of all kinds of places

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

                        19

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.5k

                        Posts