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.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 @Straticah
      last edited by DanH

      @Straticah is this for an instrument or fx plugin? You can use send containers (but not from the master container b/c feedback - create another container beneath and route from there) - but this only works for instrument plugins.

      Otherwise you can use the routing system to mix in an effect but I don't think you can get 100% wet from it.

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

      StraticahS 1 Reply Last reply Reply Quote 0
      • StraticahS
        Straticah @DanH
        last edited by

        @DanH this is an FX plugin. So if i would go for a Dry/wet scenario on all fx in the rack combined it wont work well?

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

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

          @Straticah I haven't found a wait to go full wet on an fx plugin (without SN) - happy for someone to chime in with a solution though!

          What effects do you need that scriptnode doesn't have?

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

          StraticahS 1 Reply Last reply Reply Quote 0
          • StraticahS
            Straticah @DanH
            last edited by Straticah

            @DanH i guess all of them, eq, shapefx, and saturation ^^ i could come close to these but SN has no native parametric eq or saturation tool does it?

            HiseSnippet 1100.3oc6X0zaaaCFlxwLyNsaqonXc6lNlBzUXmjl1hdHt9qNiEmnEm9wNUvHQGSDIRUJJ2YTTfhcZ699Kr8SXmyOgg0yCHW2scYGG1Hojsjb87bLRKZ5hNXX9P9J8vm2OzqnEmYiCBXbfQw8F3iAFWD1Y.UzqVODgBZUGX7Qv1n.AlaFAUcfOJH.6.LLV39J.ih4A5q+XypHWD0Fm.A.OjQrwaQ7HhDTqJeIw0sIxAuGwK0pWuRKaFsFykEJ4yBvR.ej8gnCvaiTKKGDXrXCGhfw6HPBbfbMUYNC5zi8LZz5eHIfruKVMnLni7FEACp0i35XMbuF..F4sR14KDsyuBrMwgLBOQAtjdByDKRqAF4lFkJeBnjQJJkOhRKC6XyI9hjYT74BvVToCoKRJ0ooRzZAFGAqwjKfJtgG5PbStbvHCVYiRktto7mqc2tgTaAgQMYzsYB7NzUt1ROeohK8hkLGeptcm3bpGCm45h4SbZk2kOMCWgF5sOlecy9H2P7nEJ29Y0zEmMM0NZWmZgLZKJQriONdbSlqiRqT++08.fXYS9uGzpNRfTNkXL457wbAQQGi539xn5HWTQXcbvgBluLt907exHGlSnKRjMbRk2DOgTOx3CUNJZ.QLHcd03wX4+20iRozi+ic6LR2kgVDgcuIy2bSfuRU6MMeiyX+PXitcw1hDxlG17wSM8L+rEJkPkIlptXJtTXTcShmuK99I0Mi.LUHkmRcS.nN1EkQ.eDwQzKA3qqLgJqsn8kAjVLWDeb4egSqRR4m4XD0Vx7LSL8kgZI+rDg0gDmcH7kfVn2EBH1kEJHzCZiDbx2.LfaG50Q1dgMVRUJE6JePPibpZ+QiKoFqHTGL0QO3ukWwSVVM1HdxxCmLsj7wCeoPsPdebimNRK3xVXjT3olM9pr0BjDpIwU914QLoJR+j0JyQ+32tXEEP4g.+N8Gz.qFCTYs0d0lJf0x1IF0Y8DfBZSt4Pf6b7xGo.1HF33Gjae8Jt032zaO9M8NoJzToYy8ZPQRmRTo1SqxNuscZePjS6BvNHQHWEGqcaWLYbVWVLrJpdjX7Ka9Hr3ddrPpHsjYwwiWr2hEHFG6zqhswLledUXxt3+eooKOLMsSOjOV1xPTa05QlMebV2sNUV+4GUInfsvcEoccJrcIGzKC3WHArj2fzeayVrmkA56dUEotiSmjti7M5AHYSCRoHcdV1vkBU1E6DlsYf6EJXGL1Wio+pqVT+vLQj04j9YLssRvSkjq24iJI8FHF8cwZxqdBpIe7m9qeVlZxlexet0IulLHaM4e96ublZxu7u9se5jWStv6K0jmotpW87tpOuq5y6p98yWW+13Y3gr4rmXGcZTpTyBZD49lpOxwhv1pwlkA5SnRZGrzMJA7HNjmXaqNtgOWpOS1lUmCaVaNrY84vlaNG1rwbXyslCat8TsQcRrplc7hh+k.VMzGUmgQpW6A9GX0Hq6K
            

            if this can be done in SN i would do it in SN, any ideas? :)

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

            DanHD orangeO 2 Replies Last reply Reply Quote 0
            • DanHD
              DanH @Straticah
              last edited by

              @Straticah I think the math operators can do lots of shape / saturation but yes the Hise modules are currently much easier! And no there's no P-eq in there either

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

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

                @Straticah Here is a Saturation example with Mix knob:

                • Insert a snex_shaper node
                • Create a File & name it snex_shaper
                • Insert a Parameter (0 - 1 range) & name it Mix
                • Paste the below code to the snex file

                The Mix parameter will blend the Distorted & Clean signal together.

                template <int NumVoices> struct snex_shaper
                {
                	SNEX_NODE(snex_shaper);
                	
                	float Mix = 0.0f;
                	float a = 0.0f;	
                	
                	float getSample(float input)
                	{
                		//Store the clean input
                		a = input;
                		
                		//Waveshaper Transfer Function
                		input = 9.5 * (1.0 - 1.0/Math.exp(input));
                		
                		//Apply Mix Knob to blend Distorted & Clean Signal together				
                		return input * (1.0 - Mix) + a * Mix;
                	}
                
                	template <typename T> void process(T& data)
                	{
                		for(auto ch: data)
                		{
                			for(auto& s: data.toChannelData(ch))
                			{
                				s = getSample(s);
                			}
                		}
                	}
                	template <typename T> void processFrame(T& data)
                	{
                		for(auto& s: data)
                			s = getSample(s);
                	}
                	void reset()
                	{
                		
                	}
                	void prepare(PrepareSpecs ps)
                	{
                		
                	}
                	
                	void setExternalData(const ExternalData& d, int index)
                	{
                	}
                	template <int P> void setParameter(double v)
                	{
                		if (P == 0) Mix = (float)v;
                
                	}
                };
                
                

                develop Branch / XCode 13.1
                macOS Monterey / M1 Max

                StraticahS Dan KorneffD 2 Replies Last reply Reply Quote 2
                • StraticahS
                  Straticah @orange
                  last edited by

                  @orange thanks a lot @orange :) will give this a try

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

                  1 Reply Last reply Reply Quote 1
                  • 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

                                          7

                                          Online

                                          1.7k

                                          Users

                                          11.8k

                                          Topics

                                          102.4k

                                          Posts