Forum
    • Categories
    • Register
    • Login

    Two Samplers One Filter

    Scheduled Pinned Locked Moved General Questions
    13 Posts 4 Posters 123 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.
    • D
      DanSound
      last edited by

      What's the best practice in a situation where I have two (or more) samplers (each in Synthesizer Group) and one main filter, with the option to disable the filter for selected samplers?

      Right now, the only solution I see is using separate filters on each Synthesizer Group, all linked to the same parameters so it appears as a single filter to the end user. This works functionally, but I'm not sure if it's the most efficient approach.

      Is this a good solution, or is there a cleaner or more standard way to handle this?

      LindonL 1 Reply Last reply Reply Quote 0
      • ILIAMI
        ILIAM
        last edited by

        Pit them inside a Container
        and add Whatever effect you want to the container Fx @DanSound

        D 1 Reply Last reply Reply Quote 0
        • D
          DanSound @ILIAM
          last edited by

          @ILIAM said in Two Samplers One Filter:

          Pit them inside a Container
          and add Whatever effect you want to the container Fx

          Thanks for the reply. But how exactly would you handle switching the routing per sampler? For example, if one sampler should go through the filter and another one shouldn't, what's the best way to set that up inside the Container?

          dannytaurusD 1 Reply Last reply Reply Quote 0
          • dannytaurusD
            dannytaurus @DanSound
            last edited by dannytaurus

            @DanSound You can do this with Send Effects and a Send Container.

            • Sampler 1 has Send Effect 1, sending to Send Container 1
            • Sampler 2 has Send Effect 2, sending to Send Container 1
            • Send Container 1 has Filter 1

            Then use a script for each Sampler to simultaneously toggle:

            1. Routing the Sampler to the master, and
            2. The Send Effect bypass

            This will send the audio from the sampler to either [1] the Master output, or [2] the Send Container > Filter > Master output.

            HiseSnippet 1707.3oc6Z0sTaaDEdEFk.Ns4+1lbmFldgokgAIHjjgoCNXvIdJDbhoIsSuHcszZaMQZWUoUT7jIyj9pzWjxE8An216ZeCReBZOqjr8Ji.LN7aq8EdXOZO69se6YOmuE4p9LSRP.yGojeq1dDjxGoVqMk2pTKrMEUYUjx0TKa6vI9OmExsoMQqz1CGDPrPJJ4drnSJSNNJ5y6WdErClZR5YBgdAy1jrtsqMum0pE+ZaGmxXKxV1tR8dghULYzRLGVH.nbpyg7vluF2j7TrnaiohdBNnER4KTMsVvbAyEqufNF23950WjT+A52Wm7.y6Y8PSSr48papO+7XjxkVyxly7qwwbR.RY7UXVsq0h8Sz3I3E1A10cHhF5nZvLGatLywRrDEVQkZY6XUsCSEfPJWtZOdKWLuca0Mrsr6ZuG+c8nGn0yCYBTYrzvKWJ3oKCu4jfWFPRQBRiGCoanVyz21i26IB7bE0JTX6rAF1mjgRbeQi8G4TKwfdP4y5heMorOznqGEVbt4lQC9Z5kxmG1qB3Z9t5ZekVTPyrMI7jvjMvbe6cJL0KwaSZv7c0dLgR7wvRUeJv2NtZbjb0nmqADpUp4csFMHl7BSUCdfVbC8zc23P5dznm2l5XSIZMBolbaFUiQiC+2h0roCQWPM9LmBlLWOFEHoYz1F6DRlN+axqAeranUH1f1aDTyrlNDregoWZoXHOa.g2g0Kz.6DPldIs2F4JAZj3D1xBlHJIBBElaFftyvt9L5Sm0vx8CiG02tT9NakvRtTGHWXpTKoolV3cxBqD1woNbnqP1qaACcHTjwAQQS1G+XzG+XLH7iw9vOF6K+X7AvOFCB+XHwOR7xSYbxlzBQq77vpn+G0nQlOKYvbH9Y9XQRS+CxwBzP25DeYdWzQHwP5rMp6e1F4jglwbjTGYzJTa9ldD59khDkPrPlowRPEzUdTdoqljWZkPNmQQ1V8JxjDsgh.tbYDzQdPLxXP9lJqh4XQ1xD3AP1i3ysErgxpjsgZUw4NmTcURvq4LuH7mDX.D3.uB1o6DWjUrc2FuqYQzPLdF623sqSQzdy7C0bXVgNhblxEhDkqSd.DujJ6uHCOMvl2Vtb9wV0oAEh2PspM2rU1XbrLvnH75D.iI0z+X03JC8.33pk+1SlB3xS+cim9qnJJAFUxJZx+D0Lpld.5w98AUOl2.qGaSSN.gs7wz.OV.Dl2KZ4WqQbs2BhqCzkmu97vP9Yc8Hk0UI7PJQeulR0KAUTFnBo9MQwNFMjMVESk5z2sKzN0Hsg8NxMWihgMrZDXkasYfIPLBdV9XQ0PnRzKss3sjF2+Txrgr4mf8sf8PyTKbN1mWsENH8xrm4T.TI2AogUeH0vdoSJMriOXGANX3cAHoVJI2S1Ai0rc8bHqQ2l3.kVhv3MgZIMvgN7NVSencCFk40hQsSEh7bBnBtYSRpHuLWPOhyAAI8rb6hOm.hpBjNH+4EWGTrg8AdhLjbg9Q95GYtecG0X3pIxzn8grucpFlcfElxMPElN1w6YPQpTayWNd9mPUbGJXFES8UUku+Upp2oqMUXW.ufRcGPCLntNcUApUEpEYG4c+ZtLFuk3++fbHQtS6v2aDu9N6iaScWYPI+SCcqAUoMIIzpPcuxXBcywsmSztC6F03efOIOTWzVI4g5cd3fmBFpfdw4n7moBU0MzhNOqc1ef9Tdi7HHszX+jV9t125TUZojPwyJokWefjVVbjzxQRKOakVZLRZ4Hok+2WZowHokijVNRZ44pMxIhYlqEEGK9+qCzBwWN1tqQ8i1aQ98Kmkzx2ub1RKgZY8Is7jQky3iT4LpZ44gpkIBDuoZUlS6X4dwu6nHPLYxKR5fNygPk8I+XHgZ1g49geq9uT7Yxa6oE3cmhOKD6zGSuhsGyA6+g9dZNjBpiOfgJepZ2Ek1YuJ9qGiTU00KuYxAO3uz5ha8CGX8uGs6e8y+8xh7eUn8e8UwM4SdQlccecRSXhjsrEw0ismKP1QNT5rp2t35LlW7MXsRckUwkJyPpELraw1.G.gdkbXx2h.gpzjx7IwucbY6kBC3L2NKfnewO03DunWZqx2qt3ByBeZ7khueXI3q4273o8wXz4XCXz4sh196tOKBDNmm5MFwoNSctuXgHM2EG8i2UMICZDKewA2WU8Y+O4dKmFygK1zm8Jy3euKhTJSDYAV2zneFjSptgnsVF+JYbAQluxzL8PsGGMFVGmeXcbgg0w6MrNt3v538GVGevg6n3N.OJDpvEeNAg1n5Zw01T5VXUIG5ewp9040
            

            Here's the script:

            const rm1 = Synth.getRoutingMatrix("Waveform Generator1");
            const rm2 = Synth.getRoutingMatrix("Waveform Generator2");
            const send1 = Synth.getEffect("Send Effect1");
            const send2 = Synth.getEffect("Send Effect2");
            
            inline function onFilterToggle1Control(component, value)
            {
                if (value) { rm1.clear(); send1.setBypassed(false); }
                else { rm1.addConnection(0,0); rm1.addConnection(1,1); send1.setBypassed(true); }
            };
            Content.getComponent("FilterToggle1").setControlCallback(onFilterToggle1Control);
            
            inline function onFilterToggle2Control(component, value)
            {
            	if (value) { rm2.clear(); send2.setBypassed(false); }
                else { rm2.addConnection(0,0); rm2.addConnection(1,1); send2.setBypassed(true); }
            };
            Content.getComponent("FilterToggle2").setControlCallback(onFilterToggle2Control);
            
            

            Don't know if this is the best way, but it works. Although I can imagine getting in quite a mess if you needed multiple routable effects.

            I couldn't figure out how to do it with routing matrix since the filter effect seems to be hard-coded to the 1/2 outputs.

            Meat Beats: https://meatbeats.com
            Klippr Video: https://klippr.video

            D 1 Reply Last reply Reply Quote 1
            • D
              DanSound @dannytaurus
              last edited by

              @dannytaurus Thank you, this looks interesting and with proper routing it should do the job. I guess the Send Container was added recently, because I don't remember it being there a few years ago. One question though: is there a reason you hard-panned the Waveform Generators left and right? At first I thought it was an issue related to the routing πŸ™‚

              dannytaurusD 1 Reply Last reply Reply Quote 0
              • dannytaurusD
                dannytaurus @DanSound
                last edited by

                @DanSound The panning is just to make it obvious which sound is going through the filter. πŸ˜€

                Meat Beats: https://meatbeats.com
                Klippr Video: https://klippr.video

                D 1 Reply Last reply Reply Quote 0
                • D
                  DanSound @dannytaurus
                  last edited by

                  @dannytaurus Ahh, got it πŸ™‚ It seems the downside of this method is that you can’t use envelopes with the filter.

                  dannytaurusD 1 Reply Last reply Reply Quote 0
                  • dannytaurusD
                    dannytaurus @DanSound
                    last edited by dannytaurus

                    @DanSound Yeah, I assume it's because the Send Container doesn't get the note triggers, so anything triggered by a note, like a voice start constant or triggered envelope, isn't available.

                    If you need envelope on the filter, then ScriptNode is likely the way to go.

                    Meat Beats: https://meatbeats.com
                    Klippr Video: https://klippr.video

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      DanSound @dannytaurus
                      last edited by

                      @dannytaurus Yeah, or separate filters on each Sampler 🫠 Anyway, thanks for your help!

                      dannytaurusD 1 Reply Last reply Reply Quote 0
                      • dannytaurusD
                        dannytaurus @DanSound
                        last edited by dannytaurus

                        @DanSound I'd try filter on each sampler first. Do some CPU tests. The code to sync all filters/envelopes/etc. from one set of controls is easy enough. And it will give you much more flexibility.

                        Meat Beats: https://meatbeats.com
                        Klippr Video: https://klippr.video

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          DanSound @dannytaurus
                          last edited by

                          @dannytaurus Yep, I've seen a few HISE-based instruments with independent filters on each sampler, and the CPU load seems fine.

                          1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @DanSound
                            last edited by

                            @DanSound best practice is to use separate filters in each sampler's FX chain - and have one set of controls that manage all the filters....

                            HISE Development for hire.
                            www.channelrobot.com

                            D 1 Reply Last reply Reply Quote 2
                            • D
                              DanSound @Lindon
                              last edited by

                              @Lindon Thanks for confirming! That's exactly what I'm going to implement. Now I'm confident there isn't a better way.

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

                              18

                              Online

                              2.1k

                              Users

                              13.2k

                              Topics

                              114.2k

                              Posts