HISE Logo Forum
    • Categories
    • Register
    • Login

    Global DryWet

    Scheduled Pinned Locked Moved General Questions
    6 Posts 2 Posters 16 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.
    • elemen8tE
      elemen8t
      last edited by elemen8t

      Hey there,

      I have a project with multiple scriptnodes and hardcoded HISE modules, but want a "global" DryWet for the whole plugin fx chain.

      What's the best practice for it?

      (Counteracting In and Out Gain won't work without parallel processing)

      HiseSnippet 1426.3oc6XsraabCEkiroSrxilDDTzraV5TDXLR9QRPApkkkUpPpcThTbZWEPMCUDg3PNcdDKkftqKxuP10uftuqZ9G55Bz9Gj+f1KIGoYrkpRrxi5VTa.CQx6k2CuON2qbyPoKMJRFhrJ1dX.EYcdbqgh3d6zivDnF0PVWDuGIJlFZa1p5v.RTD0CYYsvcTaXs7hH8OudqpDNQ3Ry1BgNPxboeMymEmsayJ2kw40Idz1L+bRudkFtRwNRtLAvyBXGT.wsO4Iz8IJwJfQeEIpGx5yw2rzs27Vza6r1Z2dyRz0WmVtzFarQ40b5rliS4MVeMORGmadqMQVKsqGKVF1JlDSifKspzaXqdxCEFCb.Kh0gSUKJgZAV1rMZmdLtWyQNmHDxZwlYtpELtpqh2i4wFuelK6R5CryzHuSypvrfToS.jrxAoEMP5x3Vtgrf3rST34b3FBHB1k.wl7PwHKx5U3cjf.h3U8I8o0CgEiUXkMcbtgM7mq+EcSDtwLovVJ1WFSumXkqW74EWt32Wz93G0s6TOSYlPImSCm5wpzgvYo3JhD+NzvaX+TBOgNVP34eTe5Ruc9TWyqNmfRQCAK9dAzz00kbOkuR84Ii.nT2lJVjhPPzXcj3hoQhVblGMDwfK4L36JjcJgzfOeQB5gMpQhIitF3FAqDPCiYpGiUM5SghHS.dYbMZT+XYfVV+.oPYeqK7FM5fLC9kUFleQT7PkqYIsfHelmGm1TFwTt9bU2+BPBDzh8LMxe9U+o67GO6G1xOOA.B4SFjmOHJoaW1.ckaWF2OJFvVCenfFYcE7Cin1dztjDdrcTe3d3LQepWaoV9X5.3Y8I36vkcHb6ZgCeDE7ySlwC0ZRuDNI9nEfJpozCTOi7Y8pTaA77FlGpmfpRmYVU91BwKiaxhc6McLVXJXDxN9PfwTtrKf2saWpabF.WDW+alWhqYadqExY+kM1+J3lR9vfdRAysNiCjOZPrL1rnzL56fP0CoeWBU3l4sdwuV494CufaNWE2mU49IDdl28Ue609ssqxBjbR36pm+DzFYVoGeJd7ix9TddrJZb5FiWCmFbsUN0S2X8h36epAfESam.DAlwH1c.wOfSsKM0wHdANqkcPHMfDRaKaxICWIRq1C.DdC6NboaeUejI6yGXPPUkDq31iHDTdz7LNvRumJWQOPlDyDOYOBz5BZjg2OwuELcpKcmTzA6YUPMIfYsiZsJvzhJ7zK9S3mzCKoVakdXoQGlMDAZeZ7gxv95Y6R+Lx5rFWO035ebIz1bt7PUueVZNBDBz6kwfp1xHwHftsuLQMnfAsYIXUGEMFAbXD61DFW0DpURDLHj28Dsf6QOWu0BGPCiz17LXmUgeApw80bqKUm3Bt7gMIw8TrBpYqfbZZ3ptiysy+Jxm.YluO+op6bzWDvfK343qG0AFNP2.Yz7Ql4fUqf5hBJybdbinCTm5R3nCLCaAOa0cZbsF.qD8r3P5SogcPGA8mC2cvpoGLINGqya.jExCRTSRHnMzJyz.bzJ351iIN33SDtGYvw160a0J27WijqUe5gFnmWRSmyZfyDxcQsgQoZK0WGjpAHWa1ygen.F+BhPdniYpeeqZl4xlXezGdbeF7iXdPP3eWndIrV1OHfVk8TUJ66SzTCy0WV3jPtW9+I2+mhbu7+IH2KOSx8xezH2Kh6.eEqvjndGkd+BJ58wGMIVyo27SwWX1jNWpxjjNNUNFoyO9xW9ya82S5TDFqMtFMXdXKcpLchGmJumXKe8VyhsT+8wNwfFglNnOlu+cms7iAyfOwMT9XWCYmJi4r5cf7egNKbY7dp01S4+WjOyi8XW2idUSnX44Uw0lWEWedUbi4UwMmWEu47p3sdyJp9m+tcRrz2vfCULM2UmDZYsqf.8lzbMn+BG8.WgA
      
      HISEnbergH 1 Reply Last reply Reply Quote 0
      • HISEnbergH
        HISEnberg @elemen8t
        last edited by HISEnberg

        @elemen8t haha yes I remember this was a bit of a head scratcher the first time I figured this out but the solution is actually quite simple.

        First change the Master Chain to have 4 channels (1 & 2 are the Dry, 3 & 4 are the Wet).

        Then add a routing matrix at the beginning and end of the chain. If you Shift+Click you can set up send channels instead of regular channel routings. So at the top routing matrix you are sending the dry signal to the wet channel (1&2 to 3&4), and at the end you are adding the wet channels back to the dry channels (3&4 to 1&2).

        Then you just add a gain node for both the wet and dry channels. You can then write a simple function like this to mix between your two channel paths.

        const var DryGain = Synth.getEffect("DryGain");
        const var WetGain = Synth.getEffect("WetGain");
        
        
        inline function onKnob1Control(component, value)
        {
        	local wetGain = Engine.getDecibelsForGainFactor(value);
        	local dryGain = Engine.getDecibelsForGainFactor(1.0 - value);
        	
        	WetGain.setAttribute(WetGain.Gain, wetGain);
        	DryGain.setAttribute(DryGain.Gain, dryGain);
        };
        
        Content.getComponent("Knob1").setControlCallback(onKnob1Control);
        

        Let me know if this works for you:

        HiseSnippet 1747.3oc6Z0sSabDEdValPvjllDUU0d2J5MNUTjsIPRUTKFiwInTHNwDR6UQi2cLdDqmwc2wAbphTunWjWgbWeM5c8916Ze.ZeCxaP6YlYWuqwFCw7SgJ1HgXly7y2b946LmgT0W3PCBD9HqLa1sMEYcMbstbYyUZRXbzZkQVWGuNIPR8sMcUpaaRP.0EYYk9ApNrlZBj96cKUh3Q3Nz3tPnsDLG52vZwjw8Vs3iXddUHtzMYsRL56TbMGAeEgmnCfmz3bn1DmcHaS2fnFVJL5gjflHqOGWH+74JrXiEJz3dEle9EVH2cVrdiB4yk6tK5N+WNecWZdGmEykCYckUcYRgeMIQRCPVSTR31sVSwtbyFrEKfU2ipZjGUC1YS2UDdtpinpWzJMYdtUiTTAHXUpFq1RaTaeDdclKqW+wpuanEXGOijJPqT8Cuz8Au7IgWtDvaHPxJAjlv.oahq43yZKiknvyz303f0rAArSIghYrnTAovqHfQvky0hrCshOzn2LxB5zYsgeb66mICXqBj1uj3aW1uqxUv9qr09NysMUtZiFTGY1YBEMCLg3w+bp7fFenH03yjgw8XbpciNbGISvsE7GwE0yqvmuvKqinUaAGP5rvp50gd6L+Plo7DNDO6c6sCqx2FVC0VTl5vpS8BpH7UxpPb.MeVyLuezDc6cTNrIletb1egcuomYpPnOW.UtrT5yp2QRyF0o5GyFAK03CUL8O5nNMiNDKvneMnMhrJ.fVI5fmcFsBYlaqVlP0xJDOu5PbS190VvpjPOtgPReLOqVik40Yr2unFMFprv0xi5OTwpvY+QMwr7NspS8SZuTCDbY6ON.evwAICScLpjDCTvWiyjOtMkePAunP8nJlIDUvPk5HlqGFwTyi4R8QLHvXRrVIhz.Njpp3e+p+bIzyVqLQRhVFXEgcoM0WxTG.qxzWBDel.wovkoA6HEs0iMzzATSG5ltWL23WWraxF.gb6ZrWk.Q+zRR5dvp9g3G3IpCdxfuD37ArsCPL.TRB2NdDY+7TJesPAfQqOxAEA.OfI6ljs+Di75nBwahqxjNMGNFSMDLBFmSCLFR4+AXCoUL.m.W4aOk32mLw9OkY+uEtpvqa6lBNyoByCnn0fXJroQ9QjpFgp3S+9NTtSr15M+Qwmjz7Bp4D4l+jhOoCwaeZ2Rr1BOh+wUymezG8INhtGeLt2gx933GOwQyHM56Hbz8o0oatvf2OEGZzsUJ6KN3953mb9BroixM7TAj4G3MLdCpVL911qSf6DrW+wvVoOgBoPg6hYS.PrQmV0fKc6PAEFmCW0ARAaozEgsyoZqTL0nbWciTwByqZaEJT2HcrvBp1+C7oD1qQnv4SJrWijZoq1qnDVq1dzGDYNgTplKGcPjbEE+dlesL0izGozyYtxlwc7cEGREKqweIjEupxGe+TZoOqoztnwNbKrVkeQBvZWhKN.9F3pjyCNDGeFjD7.CxfjP3wjAITYlI7V1gDsSiWcOhhQwN+vpB15M33pWZ6SaS7oaJpBt1YCzS6oftbV65PMi6ntF9fk7z1ffRpQj0ITmLNUFck+S47iTsC0hEIbnVrTglygZwRGJL1h0qpLzFT4tB+czOpQ3uC4ALFMpwn8h7nk87D6pJlhEFG.FOcew2IV0kYDQGwkaI5np7xft3fnRQ1wHmzGRB1jv7TkUTqS.TMo6i40f0QmpvJ8VT+.8dNIN2bv+fK6tg91xWw71.cqRToYtIVUfJD4R8myoWDbxSQRWOyibkTpZMidMLCtfiSKcsiovfcNQAmlG.R0Bh8So1lqgWKXKkTGhGZKS0qvwVslFUqAvpgdUrOEx4UG0G5mF2Xu4BELHN6MmCAjoRBRTUhOLan3DEDR2qErbqy3aknDa825j81WeuaoZ8W3q9q1NzcMPO4HCul.nLAudzlPwwaJzKG3poxvq11owOi6Ra.VHWz91p+ZoxzFjNdxA5Gc5i6IMoktfg5qf0i8TAzJumRBwNsHZpgw50WdeRKT3xzBW7RKT3+EoEJLxzBENyRKjAWmIc76Dzr+DCefJwPOQCh0Dya7SNjZzzU2n3fzU4JtO5pe9su8WV5foqxfKwjkosGGd1bEGNkUthmP7ruaoQwypeat2aPiPCGz6S2ehxydvEvG9WF4fJf+GW429rKKf+xB3ur.9yQEvelk2+88gRKbt8gRG+m4.EurC9LGZomwnCMJan0.1vVDGewKbLWjUQZdUcOftlqumvT30Uss6+Otp9qEyk8BGm9WpAlXgwchyOtS7Ni6DWXbm3hi6Du63Nw6c3ST8+nkk6HEsLLXvcZptp9ZBVVqxIPjkNJD8u.85GEA
        
        elemen8tE 1 Reply Last reply Reply Quote 0
        • elemen8tE
          elemen8t @HISEnberg
          last edited by

          @HISEnberg That's great, but I also need the hardcoded modules like the Filter to be included. It seems that you can't adjust the amount of channels there?

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

            @elemen8t Yea the filter automatically gets shifted to the top of the module tree. I don't think there is a solution for it. If you create it in scriptnode you won't have that issue.

            elemen8tE 1 Reply Last reply Reply Quote 0
            • elemen8tE
              elemen8t @HISEnberg
              last edited by

              @HISEnberg Yee that's what I thought tho. But the scriptnode Filter doesn't have all the 15 filtermodes like ladder 4 pole etc.

              But thanks for the help!! <3

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

                @elemen8t Hmmm yea there's no reason those aren't included in Scriptnode it would be pretty trivial to add them I think. Conversely perhaps Christoph can edit the filter module so it doesn't automatically get set to the top.

                I'm also working on converting a library external C++ nodes for HISE that has a lot of filter algorithms that could fill the void here, but it's not quite ready yet.

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

                20

                Online

                2.0k

                Users

                12.6k

                Topics

                109.6k

                Posts