HISE Logo Forum
    • Categories
    • Register
    • Login

    how can i use a Combobox to Switch panels

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    14 Posts 3 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.
    • d.healeyD
      d.healey
      last edited by

      Nice name ;)

      A combo box returns a value, 1, 2, 3, 4, etc. You can use that value as the index in your panels array, just like I used the currentPanel variable to store an index. In your case you're using buttons already, so whatever index you're using just swap it for the value of the combo box.

      The only thing you'll need to watch out for is combo box values start at 1 not 0.

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

      1 Reply Last reply Reply Quote 0
      • L
        LinuxVst
        last edited by

        the Combobox values are not Numbers the are the actual samplemap name
        let's say Drums, Guitars, Pianos

        // Sample Maps Array //
        const var sampleMaps = ["Drums", "Guitars", "Pianos"];

        // Combo Box //
        const var cmbSampleMap = Content.getComponent("cmbSampleMap");
        cmbSampleMap.set("items", sampleMaps.join("\n"));

        inline function oncmbSampleMapControl(component, value)
        {
        Sampler1.asSampler().loadSampleMap(sampleMaps[value-1]);
        };

        Content.getComponent("cmbSampleMap").setControlCallback(oncmbSampleMapControl);

        };

        this is the Part i Need to Create:

        i need to create another Combobox

        // Panels Array //
        const var Panels = ["Drums-P", "Guitars-P", "Pianos-P"];

        // Combo Box //
        const var cmbPanel= Content.getComponent("cmbPanel");
        cmbPanel.set("items", Panels.join("\n"));

        inline function oncmbPanelControl(component, value)
        {
        // this is where i'm Stuck i do not know what to enter Here!
        };

        Content.getComponent("cmbPanel").setControlCallback(oncmbPanelControl);

        };

        cmbPanel will be linked to this cmbSamplemap
        with the names Drums-P, Guitars-P & Piano-P
        so when i use the cmbSamplemap combobox that is linked to the cmbPanel
        i want it to switch the panels at the same time it Switches the Samplemaps

        Thank You

        LindonL 1 Reply Last reply Reply Quote 0
        • L
          LinuxVst
          last edited by

          Finally i am not going to use buttons i would like to have only Comboboxes!

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

            @LinuxVst said in how can i use a Combobox to Switch panels:

            the Combobox values are not Numbers the are the actual samplemap name
            let's say Drums, Guitars, Pianos

            yes the displayed values are these text items, but the returned value in the combobox callback is a number - the position the end user selected (starting at 1 not zero)

            inline function oncmbPanelControl(component, value)
            {
            // this is where i'm Stuck i do not know what to enter Here!
            // start by putting this:
                Console.print(value);
            //.... and it should give you a clue...
            };
            
            Content.getComponent("cmbPanel").setControlCallback(oncmbPanelControl);
            

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 0
            • L
              LinuxVst
              last edited by

              i Do not Get it yet!
              i am able to get the values of the Combo box

              with Console.print(value); it gives me 1-2-3-4

              but i do not know the inline function to get it to switch the panels
              i tried with Panels.showControl(true) but it did not work it displays Unknown Function?

              Content.makeFrontInterface(600, 500);
              
              const var Panel1 = Content.getComponent("Panel1");
              const var Panel2 = Content.getComponent("Panel2");
              const var Panel3 = Content.getComponent("Panel3");
              const var Panel4 = Content.getComponent("Panel4");
              
              // Panels Array //
              const var Panels = ["Panel1", "Panel2", "Panel3", "Panel4"];
              
              // Combo Box //
              const var cmbPanel= Content.getComponent("cmbPanel");
              cmbPanel.set("items", Panels.join("\n"));
              
              inline function oncmbPanelControl(component, value)
              {
              Panels.showControl(true);
              };
              
              Content.getComponent("cmbPanel").setControlCallback(oncmbPanelControl);
              
              };
              
              
              HiseSnippet 1040.3ocsVE0ahaDDdMItJ3qHkSppuUIKdhHkRVrMDPsU0GPREpM4PkznJ0VccwdIrM16hrWxEzo6+78OncWu1XSfPthRfGfYm4a1uc1YlcFFw7vwwrHfV4qVLCCz9R8QKn7o8lhHTvf9.suVuGKbLyrK6dygHJNv7JbLGzcwLTbL1Gnos2OIsUq79fjOe5G6hBPTOb9R.v0LhG9WHgDd9pCc+YRPv4He7UjvBV63NviQ6wBXyE7ZOcHXFx6VzM3KQRyJoCz9hy7IbVzHNhiiAZ62k4uXzT16oJ6ulDSFGfkBM.iDNRs74r.eIikqB5MkD3OL67GCDdYXdzXOUz3qzuf3SVtddT4vDEl4HJFOzJsM50nH8fe9zSq.81WQuWqOxKhLimqQxsWoOfxwQSPhqfhzRYKnjwdhqTgETd8Pzs3yiDBKQTqEDdrYSH7nuqhQECwEQL27NTj5tug4OXlg8FLWjYLiQEB0ppTWUh5AXr1NFqMgwd6Xr2DFmsiwop5DcxIJyiMeSTDZg4ImrlmhEd5OxNQGalwyr+Yu7eNU+qLelWjrpC8BGmX5iwsL8pSTpP8XrPEgiCiE6khS0+GFgVq5eRqdj5fPnADJ1bxbpGmvnlLZFb4NEwBp4ksMGKnRvb7QUL9PECIQhYA35yhHBFnzH73GS75SwRI0R8eOTPvXQkYs01YEAUNT9s.GujwwukV6HiOXT13iFlOT0jIaTWpiCvQaTsrARz1.ViNObLNJKPjYnnRZ0RU8GuTsXmDOUTpfgL5.Jg+1YX5iU.CRCsxR4TVILkmTHeXZgbRVjHIBPDUrF5YgUPBqy6PdnK32FzGwQY9R3VwVMCGwIxSgVe7ch9splDk06iiukylINcKuRAZGn14JYsPR1G41dftJyGbe9FRbWjKz288De9zkK7oX2oXxMSKzZO1Ul7l0B+U5ssrfMZCcZCxW2ZUEfBbq7SvMqmUtA6X2pS6lMWiav1M5.sfmBtqXC6+OD094knm1pUSGX6MPTqlMsrs1ch577daC6.sa0Ft9scCmN1MgNOIQepBhBrsaA15d8CXK3uWiseuaHR.WWSJyw2ySFoHoYKP6aRS9MT4YperMRiQf0eBVLH.yed.hu5zAxQhRUH5CsxyvxmZowD9hhiL8hLxvmKces9PB2a5l4aoMvWQamWZ9lN.VE8ylLA6wyI695m+6u7SaA9U1bNgdyEHdDQlsb47vQhzXOrfIT46wxLnRxt5JYnTVFYFgo9IB+q3SpxFRYsTkMxTBBQdQr24odKPNh2AIqH3DMYR2x5WHkMaj0+WWGVGBBESd9NOOYn3aEbeyXr1AL16.Fmc.Syc.Sqc.yo6.l1aEibn+2LmyBUkIhEFdVx6vZZmQQhrrjLRv+UNxGRJ```
              1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by

                Panels is an array. You need to provide an index to access the items in the array. For example Panels[0].showControl()

                You can use the value you get from the combo box as the array index. Remember the combo box starts from 1 and the array starts from 0 so you will need to subtract 1 from the combo box value.

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

                1 Reply Last reply Reply Quote 0
                • L
                  LinuxVst
                  last edited by

                  Hi David
                  thank You for The Help!
                  i do not Get it yet i am Really a Newbie!
                  Still Getting Unknown Function showControl
                  how do i create an index for the array?

                  Content.makeFrontInterface(600, 500);
                  
                  const var Panel1 = Content.getComponent("Panel1");
                  const var Panel2 = Content.getComponent("Panel2");
                  const var Panel3 = Content.getComponent("Panel3");
                  const var Panel4 = Content.getComponent("Panel4");
                  
                  // Panels Array //
                  const var Panels = ["Panel1", "Panel2", "Panel3", "Panel4"];
                  
                  // Combo Box //
                  const var cmbPanel= Content.getComponent("cmbPanel");
                  cmbPanel.set("items", Panels.join("\n"));
                  
                  inline function oncmbPanelControl(component, value)
                  {
                   Panels[0].showControl(true);
                  };
                  
                  Content.getComponent("cmbPanel").setControlCallback(oncmbPanelControl);
                  
                  };
                  
                  1 Reply Last reply Reply Quote 0
                  • d.healeyD
                    d.healey
                    last edited by

                    I didn't notice before but your Panels array only contains strings it doesn't contain references to the panels. Strings don't have a showControl method.

                    I think you'll find the arrays section of this video helpful:
                    https://www.youtube.com/watch?v=8JO4m-OloqA&t=412s

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

                    1 Reply Last reply Reply Quote 0
                    • L
                      LinuxVst
                      last edited by

                      Thank You David but i already Looked at this Video
                      i even tried Changing strings to numbers 1-2-3-4
                      i have No Problems Getting the Values with Console.print(value)
                      i still get an error with showControl method
                      is it possible to Change Panels with a combobox?

                      HiseSnippet 1036.3ocsV01aZbDDdOauUlKEoDop94S7IPhh26EvfRqJAvtB0ZGTw0pRoVoK2sX1561Ec2hiQQ4+b9Gzt68hui.FmhrgOMu7L6yM6LyNiB4tjnHdHPqzEKmS.ZeKb7RlXV+YXJCLb.P66g84AS3F832YLByH9FWPhDfdKmiihHd.Ms8+EkuZkN.D+6y+bOrOl4RxUA.WxotjeiFPE4ZG08Wo99mh8HWPCJ3sS2gtbVetOegjW6CQf4X2avWSNGqbaOHP6aNwiJ3giEXAIBncPOt2xwy3efk3+kzH5DehRvDLVFnD0mx88TLVoEzeF02aT12eDPFkQ4Yi8SxFeG7LpG8d84YkWFavHGQw7g1daidlEoG5qmdZEn2AIz6Uvwtgz4hbKJt8B3PlfDNEKuBJRqDeA6UZe4UpzClnQ.9FxogRg6QTsEBU2nIBU60k0KqKuHhDF2hCMvF+jw6Lu50E0EWOXJMjEuqIBY0xbNSJTsRh4J0VGi01wXsIL1aGi8lv3rcLNUR9JO5nD2iLdSXHdowQGsVjhh+7qaXU2vttgyUY3xaNVEjavjXbOz4mYOg0oBMhHRSTAIHpR8zysw+vorpU9KVkZIjkx7oLhwzELWAkyL3rL3pSJj6W0M6XpKoh+BRsx5errdZ7dG5pFQxZwLmEgRGjA9SwA+wHqhgoH6i88mHaLqtFAR3YR.U+KP0y4BxaYUqo+Q8R5eR23KMMc5FskFXeR3FMqleDtMfUYKBlPByxGYNJajVsSE9vcpEGj3ljkJ3HmMjQEucNg8P8ufzTqpSNkURWEw8wuLsONtXRVKAnxFVcXVZEDy5hSXA+wvAXANKVxvJOp4jPAU8UnMfbqbbaxLhRvAjnaD74xut6uRAZGlbxkylfDeNpi8PXRaK3t7Cj1cYtvftef5IlcuhOG0cFgd8rBS1i5ppgylf+BXaKKjYajSaPtdqUM.JvsROB2rdR4FpicqNsa1bMtgZa1AYgNFbaw40+eHp8SKQOtUqlNn1afnVMaZYas6D04o81F0AY2pMZ8aaSmN1MQNOJQerFhBrsWA118xufsf+dM19icCvR3PMkrfbmHdih3YtplEScKcacG41Iq8Zq7Met2BerX0EATa+jZPNyYkWbUupxhnhkE6ceV1N3qktuBNhJbmsY9t2F3qbDyyMeS20pL7joSIthbxd.7z+74ewJvuyWHnrqOCKBopJiyWDLVVx5RjLgodxTUsrmZBdhLRIqxLiILuXg+U9K0noRVK0nYlQP.1Mj+d2j49ps4NLVijSr3kZKAOSIaXlMqGBQMPf.4Rlu20UkJ9AI22LFqc.i8NfwYGvzbGvzZGvb7Nfo8Vwn1u+MKD7fj1DohQmD+lql1ILrrJKthD7eIoCf2.```could you try it to see what is Wrong
                      1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey
                        last edited by d.healey

                        You need to put the references to the panels into the array. At the moment you are just putting the names of the panels in the array.

                        So instead of this

                        const var Panel1 = Content.getComponent("Panel1");
                        const var Panel2 = Content.getComponent("Panel2");
                        const var Panel3 = Content.getComponent("Panel3");
                        const var Panel4 = Content.getComponent("Panel4");
                        

                        You need this

                        const var Panels = [];
                        Panels[0] = Content.getComponent("Panel1");
                        Panels[1] = Content.getComponent("Panel2");
                        etc.
                        

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

                        1 Reply Last reply Reply Quote 0
                        • L
                          LinuxVst
                          last edited by

                          hi David i Tried and i Can't Get it to Work

                          Please Check my Snippet

                          HiseSnippet 1088.3ocsWs0aaaCElxIbnVcFqEXXOK3mb.xhojuDGzMLmqCFaIwXNKX.cEczxzwrQhTPhtMFE4m49ez+AaGpKVJwNWpQhySmq766vyg5j9gRWVTjLDYT9rYALjw2hGLSnlr+DJWf5c.x3Gv6K8GJs1SdkUepf4YcFKRg1aV.MJhMBYXr1up80n75n3ee4W1i5QEtrbUHz4RtK6249bUt19c+Mtm2QzQry39E7tY2dtRw9RO4T.WqgIn.p6kzKXmP0tUBiL9lCGwUxvAJphEgLVeO4nYClH+jHw+y4Q7gdLsfMZ.jnD0GI8FoQrVKZ+IbuQ8y3eDBxR+7pwZIUiuGeLeDet97pxqhMXkGQw5gQo6Cd1EgG4wCOiBva8D38Z7.2PdfJ2hFauD2SnXgiovUPQXk3Kpz+VBtRAODps7oWxNJDDlGQs1DxlVsHjMdSEyj+pWO4hOxZ2vP5Lq50qXBWPQJqORCyL8yVu8cwQjH+Vx6.UYGyELEzDEHEfPspwdXWci2j4q8C3qSUMXRc14AbtQgD23A7sY0LVBbLuM+lDz0eXry2UlxrGmq50yD2JhAF4JleT0MSqRa8AIWTq5eKptQxAyEdbAyZ7TgqhKEVRQV35yJT5UyM6f1D.i2T1FUL+bESq4U4shf9pLmUgfCPhuNN4ODb0HLMx8oddCggrZK.fDbd87lgBP8Dohcpn1Fle1rr40lV21z3wK0VZh8XgK0r9sfv6KvZho9CYgY0iLGgghaN0gu6othOJ3lTkJ3nTzSvUmFvD20rHJszpmJSQE3pJdl7UoyjwsSP2DhCCel3rxJJF04O18ptn+r2ATEMKWPZgiJfEp3ZVXb.6ivSmIy6kwGvhtTIC.1M+JExdxIWI60f3yQeru.mLqgtJ+.4cmkKbP2OwGolLWwWh5NgwuXRgWoi5p6gydM9k3NNND6NjlcP45ctog.YvzfiYho8zc+EfAzkAMqo8ZfguCuqmmUtBzWAobdRIEYmFs2oSqVKPJRG6cHNjsWfTkSgg4SJqZ7zxpsa2tUSRmkvJmVsbZ3bWrpwSKqZ9z1.R1gzncGxhMf1M2oQKRy6hUM+5XU4G2.cApsWAp087aQMz+r.09ot9THbrgVVwtREucCOAz8vmN7CLWkE4pFTalCvayBZfgs12VSyEzrMnA1zZgMGf8Wjil5QU2boF8lboFf2buw1C5MDDQb0rha58rroyiEtuF2mqbmrb7VZI3Edh84Fuo6MVAe33wvsPNXWGeze87ujH5OjSUbwEGSUgbcm0IS8G.yGtL.IB8JC5tsR5ufkHSzx5Jy.lXTrv+A+RMZqkMRMZmYD4ScCku2M46d5MSeQrF.Sh3EzKiOVKaYm8sNLlrEA4CKL+dWWco3GAru7XbVgXZrBwzbEho0JDS6UHlsWgX5buwn+eU1cpR5mLl.J5eX7NGFFGJnPWVbGI5+A.CNB6I```
                          1 Reply Last reply Reply Quote 0
                          • d.healeyD
                            d.healey
                            last edited by

                            HiseSnippet 1094.3ocsWs0SabDEdVCaEdSsZhTUeqRi3IiRBL65KXDAUy0JqVHV0TTkhPICqGiGwtyrZ2wDrh3Oa+Ej+AsmYuvtDaiIVvxSmqy22YNmwG5FJcYQQxPjQ4SGGvPF+nYuwB0v8GR4BTmCPF+h49R+Kj38j2f6RELO7orHEZuwAznHVejgwR+t1WixKih+95usG0iJbY4pPnyjbW1ex84pbsca+GbOuin8Ymx8K3c81cbkh8kdxQ.tVxjfBntWQujcBU6VISjwObXetRF1SQUrHjwx6I6Ot2P4mEI9eFOhegGSKXi5AIJQ8QRu9ZDq0h1eH2qe2L9GgfrzMuZrTR03mMOl2mem97pxKiMfyinX8vnzCAO6hvi73gmQA3sbB7dkYO2PdfJ2hFauvriPwBGPgqfhvJwWTo+sDbkBdHTq6SuhcTHHbWDUaRHuA2fPVa6JVI+swFIW7Q3cCCoiwarQEK3BJRgulFlYZG7GNONhD4OPNGTkcLWxTPSTfT.BUWM1C6UWa6LesmiuNqpASpyNyw4ZERbs43a8UyXIvw7176SPW+KhcdVYJydZt3BOtfgGLR3p3RAVJxbPGdnzqpaVruAxu2H1ZUr9REKL7MPFhqxALS1FywuKs1ttGSboZHn50udsDG0eobje95QPqUVxiyH9sXa7N6f4ZHcaLrlG1WORaHNG6S87t.l3pNAzSX3s20YTfjmHUr2Kptl0WrJacqE9aMMXvTsklXOV3TMqeXH7gBrpXj+ErvrJYlivDx8GAMm8HXwWHbSpREbTJ5H3p2GvDyZvDkVZ0inonBbUEOf9xzAz3dKn0BwgIQKyrxJJF04u7sRaze24.phlkKHsvQEvBUbMKLNfcM7NZxveYyCXQWojA.6t6JEl9SN4JYOMDeN5icEyjAOzM4GHu83bgCZ+Yde0v6T70n1CY7KGV3I6n1bEyO6o4WX1xwgX2hTuEJWuy8MDHCFEbLSLpC3QTAX.cYPaaZuFX3mL20yCmq35rqHikPeG7y4Ikejsp0bqVMZLA+Hsr2h3P1bB9UNEFVKJAslCAq8zRvMa1rQcRqoPPmFMbp4LKBVa9D764Zq9SaaIYKRslsHS1VZWeqZMH0mEqpuvWakebS7EX4dEXY6y9FVh9zDr7cs8oP3lFZYE6FU7tP7D7+qoiUVoceo2Qo0Vzj6N.avH6Oxipt+ZM5c4RM.Ozdu8Gz6HHh3pwE206YYWmGKbekYWtxc3zwaoofW3c0ma7lt4XEyCGLf4pxA6xlG8OO+qIh9K4HEWb4wTUHW2sbxH+dP6uKCPhPuwftCpj9msRjIZYckoGSzOV3+fuTi1ZYiTi1YFQ9T2P4GcS9wN8toqDqAvjHdE8xlGqkw1Y+.moIYcBxGVY9itt5RwaArO8XbVfXps.wTeAhowBDSyEHlMWfXZ8fwn+uU1cjR5mLl.J5dX7hFFFGJnPWVbGI5+ADeA.+C
                            

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

                            1 Reply Last reply Reply Quote 0
                            • L
                              LinuxVst
                              last edited by

                              Thank You So Much David i will learn from this Snippet

                              Mike

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

                              16

                              Online

                              1.7k

                              Users

                              11.9k

                              Topics

                              103.4k

                              Posts