Forum
    • Categories
    • Register
    • Login

    Two Samplers One Filter

    Scheduled Pinned Locked Moved General Questions
    13 Posts 4 Posters 131 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.
    • 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

                            10

                            Online

                            2.1k

                            Users

                            13.2k

                            Topics

                            114.3k

                            Posts