HISE Logo Forum
    • Categories
    • Register
    • Login

    dry/wet mix on whole Effect Rack?

    Scheduled Pinned Locked Moved General Questions
    dry wetmixrack
    20 Posts 7 Posters 1.1k 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.
    • toxonicT
      toxonic
      last edited by

      .... and a Saturator based on Faust, if needed, with prefilter and post gain.

      import ("stdfaust.lib");
      lpF = hslider("[0]lowpass[scale:log]",20000,20,20000,1):si.smoo;
      hpF = hslider("[1]highpass[scale:log]",20,20,20000,1):si.smoo;
      drive = hslider("[2]saturation",35,0,50,0.01):ba.db2linear:si.smoo; 
      post = hslider("[5][0]post", -20,-40,0,0.1):ba.db2linear:si.smoo;
      mix = hslider("[6]mix",0.5,0,1,0.01):si.smoo;
      trig = button("trig");
      sat(x) = ma.tanh(x*drive):*(post);
      mixer(x,y) = x*mix,y*(1-mix):>_;
      t_sat_mono=_<:(fi.lowpass(2,lpF):fi.highpass(2,hpF):sat),_:mixer;
      t_sat_bypass = _<:select2(trig,_,t_sat_mono);
      process = sp.stereoize(t_sat_bypass);
      
      StraticahS 1 Reply Last reply Reply Quote 3
      • StraticahS
        Straticah @toxonic
        last edited by Straticah

        @toxonic do you have experience with faust and hardware modeled saturation like from analog gear? Decapitator from soundtoys does a great job, wondering how i would approch something like this ins HISE. :) PS: it is a tape saturation

        building user interfaces in HISE :)
        web: www.vst-design.com

        toxonicT ustkU 2 Replies Last reply Reply Quote 0
        • toxonicT
          toxonic @Straticah
          last edited by toxonic

          @Straticah oh, i'm afraid, i'm not! ;-) This here is just a simple hyperbolic tangent saturation, which is most of the time enough for my needs. I tried some other saturation stuff in the past, but that was just tinkering around....
          Edit: you can find several saturation algorithms in the internet, but it's not always trivial to adapt them to Faust or other environments.

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

            @Straticah Ahhh... DSP... Unfortunately, we're all on the same boat, which is gathering information on DSP... But I'm afraid you'll never really find a consistent source of information that can explain an algorithm from start to finish. Yes, the secret is well kept, and the reason is that DSP guys are making their own algos which are the heart and strength of their revenues, and this after years (decades) of work, experiences and lab research...

            Yes, I have a quite dark vision on this but it is easy to understand why isn't it?

            Now, that been said, you can have a look at some books, they will give you the principles of the most famous effects, saturations included of course. The problem is that they often only scratch the surface, so don't expect to get a complete recipe, especially when considering analog emulation, trust me... The other problem with books is that they often tackle a specific environment, so you have to transpose those principles to your environment of choice (SNEX, FAUST, etc...)

            And when you find most advanced books, a great part of them is spent to explain the C++ programming more than the DSP principles themselves...

            There are communities too that are a great starting point to understand algos, but often again, they are scratching the surface of simple designs.

            Decapitator? Yeah! Definitely a great processor in there that I'd love to get inspiration from! But my guess is that it is a very advanced algorithm for my level.

            If you have an electronic background, this can definitely help since a DSP is generally derived from an analog circuit (be it real or not). The main difficulty with reproducing analog equipment is how components are interacting with eachother. A saturation is easy approchable using filter and shapers of all kind and combinations. This will give you something that works, but definitely not a good one (chances are it'll sound like old DSPs from decades ago) That is because in an electronic circuit, the saturation component have a backward effect onto the filter that precedes, and the filter on the rest too, and again, without talking about frequency and gain dependent impedances... This is very hard to derive and program. But FAUSt is made to deal with this and that's amazing. But still, that's just a part of the job and just replicating a circuit in FAUST will not make it sound as the original (I don't have the experience, but I'm confident in this...) because you need to adapt "by ear" and lab measures. Also, getting active component in FAUST might not be trivial, I don't know where we are with this now regarding OpAmps, transistors, etc...?

            Another thing I'd like to approach is that a lot of content about DSP are approaching the problem from a math point, so it is even harder to understand what to do with this, of course depending on your background!
            At least for me, understanding the math, FFT, how to code all this along with DSP algorithm, measure and give birth to a final and advanced project seems to be a long, very long journey I count in years decades. No, my version of Decapitator is not yet ready to make me famous :)

            This was just my two cents about how to get in the DSP world. In short, there is no ready made formula to make your own. You (and I) have to start at the beginning, read books, understand concepts, apply tiny things in minimal projects, compare, learn more here and there. It's a lifetime job!

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

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

              @ustk I wouldn't be so pessimistic and it's a bit gate-keepy to expect plugin developers to be DSP wizards in order to make good products. Sure in order to create a truly remarkable new DSP algorithm that stands out on its own you will need to get into nerd town and do these things, but it is not the only option.

              If you combine a reasonably well sounding algorithm with a good UI and a use case that solves a real problem for some people it has a reason of existence and can be successful too. You just need to be creative and have a good sensor for what people actually need.

              And if you really want to go down the route of making "the best sounding plugin" you can team up with DSP developers who despise making UIs.

              ustkU 2 Replies Last reply Reply Quote 5
              • ustkU
                ustk @Christoph Hart
                last edited by

                @Christoph-Hart Good point!

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

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

                  @Christoph-Hart my intent is not to be pessimistic so I'm sorry if that's such the feeling in my post. I understand that small but powerful DSP (powerful in terms of answering a customer problem) can be developed without years of learning. And thanks to Hise and now Faust this will be more easily accessible than it ever was with any plateform or framework. Although (but you now better what products are created from Hise), synths (with DSP or no) and samplers are more accessible to create, while DSP effects in my opinion requires much more to learn in essence. And we can't hide that material about DSP development is either poor or too technical, intentionally or not…

                  But still I have good hope for me and others to see new nice releases shortly! :)

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

                  1 Reply Last reply Reply Quote 2
                  • Dan KorneffD
                    Dan Korneff @orange
                    last edited by Dan Korneff

                    @orange @Christoph-Hart
                    Completely unrelated to wet/dry... in a formula like @orange posted:

                    input = 9.5 * (1.0 - 1.0/Math.exp(input));
                    

                    It only affects the positive side waveform. Do you have any quick tricks to process +/- evenly with an equation like that?

                    sat_test.gif

                    Dan Korneff - Producer / Mixer / Audio Nerd

                    Christoph HartC orangeO 2 Replies Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart @Dan Korneff
                      last edited by

                      input = Math.sign(input) * 9.5 * (1.0 - 1.0/Math.exp(Math.abs(input)))
                      

                      It's just a random shot, but if you take the absolute value so that every input is positive and then use the sign function to invert negative inputs, it might work.

                      Dan KorneffD 1 Reply Last reply Reply Quote 2
                      • orangeO
                        orange @Dan Korneff
                        last edited by orange

                        @Dan-Korneff said in dry/wet mix on whole Effect Rack?:

                        @orange @Christoph-Hart

                        It only affects the positive side waveform.

                        Sorry it was just an example. This is a Logistic Sigmoid function, for both 2 sides you can process positive / negative portions separately like this:

                        if (input > 0.0) input = 9.5 * TrshPos * (1.0 - 1.0/Math.exp(input));			
                        else if (input <= 0.0) input = -1.0 * 9.5 * TrshNeg * (1.0 - Math.exp(input));	
                        

                        TrshPos & TrshNeg parameters are the Threshold values for + / - portions (0 - 1 range)

                        So if you also adjust the Threshold values, it should give this:

                        LogSigmoid.gif

                        develop Branch / XCode 13.1
                        macOS Monterey / M1 Max

                        Dan KorneffD 1 Reply Last reply Reply Quote 1
                        • Dan KorneffD
                          Dan Korneff @Christoph Hart
                          last edited by

                          @Christoph-Hart Impressive! You're hired.

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          1 Reply Last reply Reply Quote 0
                          • Dan KorneffD
                            Dan Korneff @orange
                            last edited by

                            @orange said in dry/wet mix on whole Effect Rack?:

                            Sorry it was just an example.

                            No worries! I had a very convoluted equation going on and got lazy.

                            Dan Korneff - Producer / Mixer / Audio Nerd

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

                            23

                            Online

                            1.7k

                            Users

                            11.8k

                            Topics

                            103.2k

                            Posts