HISE Logo Forum
    • Categories
    • Register
    • Login

    Master Bypass Button

    Scheduled Pinned Locked Moved General Questions
    38 Posts 5 Posters 1.7k 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 @d.healey
      last edited by

      @d-healey Yup, you see why I want my homework marked now right?

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

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

        @ustk only just saw this, thank you :)

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

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

          @ustk Help please! :face_with_tears_of_joy: 👻

          I'm getting the error: Interface:! Line 50, column 35: Unknown function 'setBypassed'

          Which is the moduleArray line in the callback, but I suspect some other things might be wrong as well!

          Code & Snippet below:

          HiseSnippet 1371.3oc6Z80aaaCDmJ1ps1YtXcnOrGEB1CNqsYxRscCHqn1wwdvXM+A1oEaHvnfQl1lHRjZRTYynH.608sXOuOM6iR+FrQRIaI4nYq3zsAjZ8j3c2Ope2wi7N5ji8nVHeepGPozISbQ.kOQs2DBabywPLAzYefRE0iN7n1s0ZzsaieDr2DWnuOZ.PQov2ILQoTQf748ubOnMjXghEA.ughsPuB6fYwROt92issaCGfNA6jv5mVuiEkzjZSC3zofpNvEZcNbD5PnvrMTAJ2o0.Li50iAYHefRw8nClzaL8mIg1+FrO9LajXPMPO9DEJtM0dffwh2AMGisGb7T21G.Tt6wwAgBgAgGpd.d.dl73fwmJUnEiHY7PYiEQuZqH8TRPuhgz6Ap8r7vtrXMBtsoZGBC4MDxWBRRqPaAa7a2QsIkaAgsiC7bTaO9fYHp9bc8Gq8Lc8s2sR4Jk4KD9LsKfdZ6EvXTRMsWnME7HDqI0wkR3CptUj9sD3lGkwRPYjIJykfxbq44XuNG1RvPYlqDiHJJGUcKox49PBYFKBfQF.LWDfojpRYLwFSPZCCHVLLknQIQgHgO4QsqZM0gdLepsCPaWo76pTtjjm63iXSW6pV6IQFvm4Kky9RVBDni9JMg11mw29Tc9O+xnoQNnowMflFKllF4jll4fll2.ZZtXZZlhlw4ImI052vyCNgmtb5r0lGqMy+m8p4V8Skj4PGDXihwFl4xMOLiL5k4QclzAmgRnLgnS06mqstIgTqet12lDhQ+bso8JDSthj0mOKEFIUjUpgCzmeb1RxLFR8zpheg9tZ3uM4x0N1HxH1Xt3G8nsK+txZ7G7PspgXkCEOIVjNE2OUFFySjcIsDY6ixCjjtGtOG7kKN4LzC+mxMS4+auahHygTF5HRUgeUp7kk0lW0vgYpKZprQdYpVT+1aQ.qRBbNC4McAXpg7BYoqTtY9pTZEFSRXHkzgfYG4hhFGWKUnKzqmpUGLyYSJJ1GSJU5ZYXVrnqVpFDslwKZWLxbtoLYI66GUxNb2..y4XI0nMf.YzIYmTfqAbiaFby4gG4GKA98TCS1x3i+5N6CYPQmKQwCdLxE4wvhUZk8QWvaILrOlRp6i7OmQckArnjb964Hj8Ky9j+Z85ShGzpN3ZMSFhYRU4O3XmHd4KC8+qwLXFNCekx0dFlECicl5NIble+75fq17GuETw4IPV59REMiGofuELUCfhl7H9X1jjKSWilU0yrY0ZYsCHmz8ApGiYViyluajAe4YS+ay2nV+qn1Z3PjEKlrEUa+CqZe9qFUteHU1TsGu.mrISIQtqprifEbGr+Lu2AyM22A6HKF7BzIdPhuK0O0D2C4fOgmk6mT3q842r.8ScEKqIk2jB8xT06eYatWlIldPVfmL+ngCMfvRkOTXktrU5sIIrOiadU7+gKF9geu1M+ngB4itK4tqklxwdXGWaTKxEHadcAIG+Ldgfgv.a1TooSxOfRntioDrUxLftHlGdzHjWRtmoC0fw3MHEK4g06hrQvjYyeQ8WwyBgd73DZEiE0xerXQqWetZHc0D6L0tcbjdgONORuKMfgIiN.xSTEMIbXfSO9AqVHNSHD9cDD8Krg3vwvw5hwgmrRFHG7W7mHk0DiUhTVapxbW1vXcYi0kMtsW1vXcYi0kMVW13CXYCyT2LacYi0kMtEV1vbcYi0kMVW1HGkM9u3a3.s7nu0J72fVjKeOoDteSj+i.TR8.wXsY+t4pp56nCb3mH9VKKQ39I73S1XLVALlq.lmtBXd1Jf44q.ludEv7MKDinXTi.F0IbqHWvwsj+M.TTZQf7LYYVO3ugmYIVD
          
          const var Button1 = Content.getComponent("Button1");
          const var Button2 = Content.getComponent("Button2");
          const var Button3 = Content.getComponent("Button3");
          
          const var SINE1 = Synth.getChildSynth("SINE1");
          const var SINE2 = Synth.getChildSynth("SINE2");
          const var SINE3 = Synth.getChildSynth("SINE3");
          
          
          inline function onButton1Control(component, value)
          {
          	SINE1.setBypassed(1- value);
          };
          
          Content.getComponent("Button1").setControlCallback(onButton1Control);
          
          
          inline function onButton2Control(component, value)
          {
          	SINE2.setBypassed(1- value);
          };
          
          Content.getComponent("Button2").setControlCallback(onButton2Control);
          
          
          inline function onButton3Control(component, value)
          {
          	SINE3.setBypassed(1- value);
          };
          
          Content.getComponent("Button3").setControlCallback(onButton3Control);
          
          const var buttonsArray = ["Button1", "Button2", "Button3"];
          const var moduleArray = ["SINE1", "SINE2", "SINE3"];
          const var bypassArray = [];
          bypassArray[0] = Content.getComponent("Button1");
          bypassArray[1] = Content.getComponent("Button2");
          bypassArray[2] = Content.getComponent("Button3");
          bypassArray[0] = value;
          bypassArray[1] = value;
          bypassArray[2] = value;
          
          inline function onmasterControl(component, value)
          {
          	for (i=0; i<buttonsArray.length; i++)
          {
              if (value)
                  moduleArray[i].setBypassed(true);
              else
                  moduleArray[i].setBypassed(bypassArray[i]);
          }
          };
          
          Content.getComponent("master").setControlCallback(onmasterControl);
          

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

          d.healeyD ustkU 2 Replies Last reply Reply Quote 0
          • d.healeyD
            d.healey @DanH
            last edited by

            @DanH You're module array just contains strings, it doesn't contain any modules.

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 1
            • d.healeyD
              d.healey
              last edited by

              bypassArray[0] = Content.getComponent("Button1");
              bypassArray[1] = Content.getComponent("Button2");
              bypassArray[2] = Content.getComponent("Button3");
              bypassArray[0] = value;
              bypassArray[1] = value;
              bypassArray[2] = value;
              

              More crazy code :p

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

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

                as @d-healey says. Use your variables, not strings.

                const var moduleArray = [SINE1, SINE2, SINE3];

                Dan Korneff - Producer / Mixer / Audio Nerd

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

                  @DanH Ok so many things going on here

                  First, the error you get is because what you stored in moduleArray are strings, not the variables you declared at the top

                  Then another error, why are you declaring the buttons a second time in bypassArray, and why are you overwriting it again with value?

                  bypassArray should be at the top too (like all declarations actually) and kept empty until the buttons callback are feeding it

                  So this is better:

                  const var SINE1 = Synth.getChildSynth("SINE1");
                  const var SINE2 = Synth.getChildSynth("SINE2");
                  const var SINE3 = Synth.getChildSynth("SINE3");
                  
                  const var moduleArray  = [SINE1, SINE2, SINE3];
                  

                  Even better so you declare directly the array of modules

                  const var moduleArray = [Synth.getChildSynth("SINE1"),
                                           Synth.getChildSynth("SINE2"),
                                           Synth.getChildSynth("SINE3")];
                  

                  and then the buttons have the same treatment:

                  const var buttonsArray = [Content.getComponent("Button1"),
                                            Content.getComponent("Button2"),
                                            Content.getComponent("Button3")];
                  
                  const var moduleArray = [Synth.getChildSynth("SINE1"),
                                           Synth.getChildSynth("SINE2"),
                                           Synth.getChildSynth("SINE3")];
                  
                  const var bypassArray  = [];
                  

                  Now we are going to feed bypassArray
                  Before, you would have done this (temporarily, to show the progress):

                  inline function onButton1Control(component, value)
                  {
                  	SINE1.setBypassed(1- value);
                  	bypassArray[0] = value;
                  };
                  Content.getComponent("Button1").setControlCallback(onButton1Control);
                  
                  
                  inline function onButton2Control(component, value)
                  {
                  	SINE2.setBypassed(1- value);
                  	bypassArray[1] = value;
                  };
                  Content.getComponent("Button2").setControlCallback(onButton2Control);
                  
                  
                  inline function onButton3Control(component, value)
                  {
                  	SINE3.setBypassed(1- value);
                  	bypassArray[2] = value;
                  };
                  Content.getComponent("Button3").setControlCallback(onButton3Control);
                  

                  But instead, you can use only one callback for all the buttons

                  inline function onBypassButtonsControl(component, value)
                  {
                      var btnIdx = buttonsArray.indexOf(component);
                      
                      moduleArray[btnIdx].setBypassed(value);
                      bypassArray[btnIdx] = value;
                  };
                  for (b in buttonsArray) b.setControlCallback(onBypassButtonsControl);
                  

                  So we put altogether:

                  const var buttonsArray = [Content.getComponent("Button1"),
                                            Content.getComponent("Button2"),
                                            Content.getComponent("Button3")];
                  
                  const var moduleArray = [Synth.getChildSynth("SINE1"),
                                           Synth.getChildSynth("SINE2"),
                                           Synth.getChildSynth("SINE3")];
                  
                  const var bypassArray  = [];    // The array that stores the buttons states (bypass)
                  
                  // INDIVIDUAL BYPASSES
                  inline function onBypassButtonsControl(component, value)
                  {
                      var btnIdx = buttonsArray.indexOf(component);   // Which button has been clicked
                      
                      moduleArray[btnIdx].setBypassed(value);         // Set the corresponding module bypass
                      bypassArray[btnIdx] = value;                    // Store the individual states
                  };
                  for (b in buttonsArray) b.setControlCallback(onBypassButtonsControl);
                  
                  
                  // MASTER BYPASS
                  inline function onmasterControl(component, value)
                  {
                      for (i=0; i<buttonsArray.length; i++)
                      {
                          if (value)                                      // If Master bypass ON
                              moduleArray[i].setBypassed(true);           // Set all to bypass
                          else
                              moduleArray[i].setBypassed(bypassArray[i]); // Or restore their original state from the array
                      }
                  };
                  Content.getComponent("master").setControlCallback(onmasterControl);
                  

                  And the final snippet:

                  HiseSnippet 1461.3oc6Y0saaaCEVJNps1ctXcnWrKIB1E1ncoNNscCvqn1wwdvXMwFVocqnHnfVhNlHRjdTzYwnn.6QYOR6QouAaGRJaK0oj53sVr0YcQf4Omi9324P9cnROA2iDEwEV14OZ5Xhk8m43NkIG0bDlxr5rukcQmtG1scaTi98a7Bq8lNFGEQ7srsy88poXmeSK8yaexd3.LyirnKKqmyodjmRCoxE81q9OPCBZi8IGQCSL6GTuiGm0jGvm.vImSEqwXuSwmPNDql1FNV1WqkOUxEtRrjDYYu4db+oti3+ByL+mSinCBHpF6X4BNxzcadfuBwpdsZNhF32a1xNxxx958VPB4LjvcbNf5Sm2+Bx3y0CfVXQR9vdiKCd6jDdUVd3Ym.daZf2scb8DzwxEinv1Mc5vjDwPLDBRBKybs1v5ZNM4vLXxsCwmRZKfFysnzipT4dnGVoR4ZEKTr.DHhjnyvBzfIRIzngPfmhdL5kybwIDYSd3XNCZTZq8zyZmsJeuhEPW3ykYa0+F1t6VkO9cfcH2eR.YNp04zZaU7qtUosb6bXq2CjuP6pth1kATGniUFnpv5w0Td392GczHBBq6VNBKQQPpEIB9MYVPA5RkogJYbQYkeKV.rryg6244c1+YMdJZuWzqgqaK2hEnr.JifFNg4IobFhyLYIFNLRQvBdPIuYr68.zELg.d80lUpFrRVG+yAXlLuXaJymbd2gKrsbMyR3GGQ8FEOWzHbDZ.gvPdATuSI9FuZ9ah30KMuii2NhHmkGWx.kZyIXv2tDolL73BfWf2qOkcRrihIUiuSPvy7Mr.zdrVVAOkuUbs16vRidF0eBNHlsKV3MP.bHW.zNLZJhnLZfB0wTYSbPv.3HrRYyzlcZ530AMbOpU+3XUVQpPbDrQ88Ghzvh93J0PzuKUDJfvNQNB59t2srdluddxKcHJldQK0iJ+ZH5.Mhh4VT2CSsWHYzjlNPJEohiyij.Wgj7X+M2YjfHxx54jgY5wv6.7bWABxMlELoBSLDMTvC0QW81K8K3Ml3Z1GyXn+sJmcvMUvobsDgsC4RRWVoxEdcg7EdSAz6NzvgYNVrqBHhLGVIaJtLCKwlDNfHlkcLahf9QZAJmKVfJo9omgSRLQNqCiJ6NlvtHYKqXhDDvxEiJ3WRs70shkuLaGrnfJUdmXEDKMjSVUg0Uv7puq4w.YIMe2Ld6Oqy9XIVoCGuhfU4XhPRUDn89jyfBbLpx4c1mDcpjOF3444NvuWhE84yek+Z85SWznUcqqjmplvS0II7j0U0S6lvSuUbwdx4B8zMbL6KRBovDN52NsdD9LRGVOXGJQppTw5uVpCTvkZGOVltJLUomwC.Y9oJ2QURCKhJmlLL9AozrkEt21oGU5MJa7tQF3Ex19Pi23BcK5zZ3PhmbAX2zo8O8gup1jP4VFnbSGWPzSWpjFHW2QWeVJtJ8MN98k8FGiW5abz0SB4jGIvLnfhnTN1kDROBx5iR14yhf5nI+beUXMY+M4XQlC81mzFVkYZiKVNQnyOZDxmvjoxGxszAgqvMe17e0274i2oA4VN39dtbV9YXzkFNNfzhcFI.jJzX7K.sgg3IAxY8lJuN2AbFe7HNi5kLn2mHEzSNgHRh8LWPMjRnTjE8bm58IADbxD3up9SgDOr.3IxJxE6r7bwkEu9RGCbQpMinOMNEO2+OOEuOehDtz0AXHQEj4cNbRnKbVpGAPBiAEuC8Yug57PS6Jp1lCSY95F+A7DO3Np11wCtyrAWZkhpWx2lZsRwZkh+qpTTcsRwZkh0JE+CpTr656TrVo3SPkhcWqTrVoXsRwRnT7w3cDh8D7W4Y95ypb4an6AV2L8+O67NGnZil+IucbprcEqP3DwW44on6uF3mrso5JXytqfMOXEr4gqfMOZEr4aVAa91K0FkXTiIRdnYqHzQuV5O9uscKFFxj0Y8V+I7haMR
                  

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

                  d.healeyD 1 Reply Last reply Reply Quote 1
                  • d.healeyD
                    d.healey @ustk
                    last edited by

                    @ustk You missed an opportunity, you could use a single callback for all the buttons ;)

                    Libre Wave - Freedom respecting instruments and effects
                    My Patreon - HISE tutorials
                    YouTube Channel - Public HISE tutorials

                    ustkU 1 Reply Last reply Reply Quote 0
                    • ustkU
                      ustk @d.healey
                      last edited by

                      @d-healey That is what I did, except for the master bypass, but I don't want to complicate it more for @DanH
                      Or I don't get what you mean?

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

                      d.healeyD 1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey @ustk
                        last edited by

                        @ustk Oh so you did! I read through it too quickly :D

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        DanHD 1 Reply Last reply Reply Quote 1
                        • DanHD
                          DanH @d.healey
                          last edited by

                          @d-healey @ustk @dustbro Thanks guys, I told you I find it confusing! this is going to really help me learn :)

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

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

                            @DanH I just updated the snippet above with some comments ;)

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

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

                              @ustk :folded_hands: on Daddy duty until tomorrow afternoon so look forward to learning it all then :)

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

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

                                @ustk Thanks again for doing this, super helpful I have a few questions if that's ok?! Feel free to answer whatever you feel like by the way!

                                • Declarations: So I'm declaring the modules and buttons outside of Arrays because I'll most likely need to refer to them in other parts of the script. As far as I can work out, only declaring them inside of an array prevents me from referring to them in other functions - is that correct? Otherwise this is a very neat solution :)

                                • bypassArray: In the first example of the bypassArray, the line inside the callback 'bypassArray[0/1/2/3etc] = value;' will load the '= value' value into the index of the array, is that right? So if the value was say, 59, and the index number is 0, then the first value in the array is 59?

                                • bypassArray example 2: 'var btnIdx = buttonsArray.indexOf(component); - nice, I haven't seen this before, I assume I can use this in the same way for other Arrays? However the last line 'for (b in buttonsArray) b.setControlCallback(onBypassButtonsControl);' is confusing to me... I've not seen a callback like that before. What does the 'for' do, and likewise. what is the 'b' for?

                                • Lastly, I'd like the buttons to all switch off as well, and then return to their previous state like the modules do. I've tried adding buttonsArray.setValue(1); but can see that's probably not going to work (and doesn't!). Make a second array for the buttons? Have a duplicate set of buttons which are linked?

                                Like I said, thanks so much for this, even just typing these questions is helping me get a grasp of it all.

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

                                d.healeyD LindonL ustkU 3 Replies Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey @DanH
                                  last edited by d.healey

                                  @DanH said in Master Bypass Button:

                                  As far as I can work out, only declaring them inside of an array prevents me from referring to them in other functions - is that correct?

                                  An array is just another type of variable, you can refer to your modules from the array variables or from individual variables. You don't need to use both.

                                  'var btnIdx = buttonsArray.indexOf(component); - nice, I haven't seen this before

                                  You should watch more of my videos ;)

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

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

                                    @DanH said in Master Bypass Button:

                                    the last line 'for (b in buttonsArray) b.setControlCallback(onBypassButtonsControl);' is confusing to me... I've not seen a callback like that before. What does the 'for' do, and likewise. what is the 'b' for?

                                    Please go read up about Javascript - this is standard notation....

                                    This interwebs is full of explanation for this sort of thing:

                                    Link Preview Image
                                    W3Schools.com

                                    Well organized and easy to understand Web building tutorials with lots of examples of how to use HTML, CSS, JavaScript, SQL, Python, PHP, Bootstrap, Java, XML and more.

                                    favicon

                                    (www.w3schools.com)

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    DanHD 1 Reply Last reply Reply Quote 1
                                    • DanHD
                                      DanH @d.healey
                                      last edited by

                                      @d-healey ha I do... but there's a lot to take in when learning for the first time. I have to rewatch them from time to time when I've learned more, and they make more sense to me.

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

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

                                        @Lindon good site thanks

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

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

                                          @DanH said in Master Bypass Button:

                                          • Declarations: So I'm declaring the modules and buttons outside of Arrays because I'll most likely need to refer to them in other parts of the script. As far as I can work out, only declaring them inside of an array prevents me from referring to them in other functions - is that correct? Otherwise this is a very neat solution :)

                                          As Dave said, you don't need to use both, but you can if it's better for your implementation. You can also just keep the array style and refer to them later in the script with moduleArray[x]

                                          • bypassArray: In the first example of the bypassArray, the line inside the callback 'bypassArray[0/1/2/3etc] = value;' will load the '= value' value into the index of the array, is that right? So if the value was say, 59, and the index number is 0, then the first value in the array is 59?

                                          I'm not sure of what you ask. value is the value of the button you pressed. it will be stored in bypassArray at the index btnIdx, so the one corresponding of the button pressed. Play with the buttons and watch the bypassArray content changing in the ScriptWatchTable tile, it'll make sense to you...

                                          • bypassArray example 2: 'var btnIdx = buttonsArray.indexOf(component); - nice, I haven't seen this before, I assume I can use this in the same way for other Arrays? However the last line 'for (b in buttonsArray) b.setControlCallback(onBypassButtonsControl);' is confusing to me... I've not seen a callback like that before. What does the 'for' do, and likewise. what is the 'b' for?

                                          Like @Lindon said, go learn more javascript related stuff, try to find exercises online, it helps a lot...
                                          for the moment I can just tell you that this is equivalent to:

                                          buttonsArray[0].setControlCallback(onBypassButtonsControl);
                                          buttonsArray[1].setControlCallback(onBypassButtonsControl);
                                          buttonsArray[1].setControlCallback(onBypassButtonsControl);
                                          

                                          Or,

                                          for (i=0; i< buttonsArray.length)
                                              buttonsArray[i].setControlCallback(onBypassButtonsControl);
                                          

                                          but for/in is better isn't it? ;)

                                          • Lastly, I'd like the buttons to all switch off as well, and then return to their previous state like the modules do. I've tried adding buttonsArray.setValue(1); but can see that's probably not going to work (and doesn't!). Make a second array for the buttons? Have a duplicate set of buttons which are linked?

                                          So you mean the opposite of Master Bypass? In this case, just do the same thing using moduleArray[i].setBypassed(false); instead of true
                                          With all of this, you can now even make a single callback for the Master Bypass/unbypass buttons, since the only difference is true/false. Just use the indexOf magic trick to determine which button has been clicked, and then if you should use true or false (there's even something shorter but I'll let you find your way with a simple IF statement first ;) )

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

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

                                            @ustk Thanks mate! Making a lot more sense now :)

                                            So my last question: I just want the buttons to do the same as the modules - they all turn off when you press the master button, and then they return to the state they were in before you pressed. So doing exactly the same as the modules.

                                            This is because the buttons are on the ui, and need to show that the modules are off (otherwise the user can't see it). Does that make sense? Becasue buttonsArray is already in the callback I don't think it can be used again...

                                            And I will try to figure out the quicker method, give me a few weeks :face_with_tears_of_joy:

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

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

                                            42

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts