Button from array



  • I have an array working fine, but I want to do now is to select anyone in the array and have a certain button to be on.

    ex:
    if I select 1 from array button 1 should do something, but if I select 8, button 2 should do something.



  • @Jay so turn the buttons on in the array call back



  • @Lindon @d-healey ?

    const var rtLbl1 = Content.getComponent("rtLbl1");
    inline function onKnob2Control(component, value)
    {
    rtLbl1.set("text", irsNames[value]);
    ConvolutionReverb.setFile("{PROJECT_FOLDER}"+irs[value]);
    };
    Content.getComponent("Knob2").setControlCallback(onKnob2Control);

    // === Ambience1
    Bottoms[0] = "1";
    Bottoms[1] = "2";
    Bottoms[2] = "3";
    Bottoms[3] = "4";
    Bottoms[4] = "5";

    // === Chamber1
    Bottoms[5] = "6";
    Bottoms[6] = "7";
    Bottoms[7] = "8";
    Bottoms[8] = "9";
    Bottoms[9] = "10";

    How do I do that from here?



  • @Jay ok so first - please put your code in code quotes.

    Second - this is incomplete, there are no buttons to turn on/off, whats irs? - assume its the array of IR names

    third - ok assuming there are a set of buttons called Bottom1, Bottom2 etc.

    
    function turnoffAllButtons()
    {
           // loop round all the buttons turning them all off
            for  (idx=0;idx< NUM_BUTTONS;idx++)
            {
               myButtonArray[idx].setValue(0);
            };
    }
    
    const var NUM_BUTTONS = 4;  //you could use the array length instead of this
    var myButtonArray = [];
    myButtonArray[0]  = Content.getComponent("Bottom1");
    myButtonArray[1]  = Content.getComponent("Bottom2");
    myButtonArray[2]  = Content.getComponent("Bottom3");
    myButtonArray[3]  = Content.getComponent("Bottom4");
    
    inline function onKnob2Control(component, value)
    {
        rtLbl1.set("text", irsNames[value]);
        ConvolutionReverb.setFile("{PROJECT_FOLDER}"+irs[value]);
        //turn off all the buttons
        turnOffAllButtons();
        // just turn on the button you want
        myButtonArray[value].setValue(1);
        // do the processing you have inside your selected button..
        myButtonArray[value].changed();
    
    };
     
    

    I just wrote this in here - not in HISE so there may be some syntactical slips...



  • @Lindon

    
    function turnoffAllButtons()
    {
           // loop round all the buttons turning them all off
            for  (idx=0;idx< NUM_BUTTONS;idx++)
            {
               myButtonArray[idx].setValue(0);
            };
    };
    
    const var NUM_BUTTONS = 6;  //you could use the array length instead of this
    const var myButtonArray = [];
    myButtonArray[0]  = Content.getComponent("ambience");
    myButtonArray[1]  = Content.getComponent("chamber");
    myButtonArray[2]  = Content.getComponent("hall");
    myButtonArray[3]  = Content.getComponent("plates");
    myButtonArray[4]  = Content.getComponent("rooms");
    myButtonArray[5]  = Content.getComponent("spaces");
    
    // =========================================== Selecting Bnt
    const var Knob2 = Content.getComponent("Knob2");
    const var rtLbl1 = Content.getComponent("rtLbl1");
    
    inline function onKnob2Control(component, value)
    {
        rtLbl1.set("text", irsNames[value]);
        ConvolutionReverb.setFile("{PROJECT_FOLDER}"+irs[value]);
        //turn off all the buttons
        turnOffAllButtons();
        // just turn on the button you want
        myButtonArray[value].setValue(1);
        // do the processing you have inside your selected button..
        myButtonArray[value].changed();
    };
    Content.getComponent("Knob2").setControlCallback(onKnob2Control);
    

    it's giving me the error "this expression is not a function" on the turnOffllButtons();, myButtonArray[value].setValue(1);, myButtonArray[value].changed();



  • @Jay did you declare all those buttons? - where?

    perhaps post a snippet?



  • @Jay said in Button from array:

    error "this expression is not a function" on the turnOffllButtons();

    Check your spelling. And you should probably use an inline function here.



  • @d-healey yeah that looks like my typo--

    @Jay :

    turnoffAllButtons

    and
    turnOffAllButtons

    are not the same... just rename the function to

    turnOffAllButtons



  • @Lindon

    HiseSnippet 1698.3ocuXssaabCDkqs21Xk5fl19Peo.D5IYjTacKoEv0HxWjRTiuHXIm1BCCCpcor1jcI2rKWmHDXf9XeLeB4k9ej+g9CzOg7GzNj6ccwWQ6Z.CwYlyvgyLb3P1wiaP884dHsE6Mxkhz9B8tiXhgaMjXwPs2FocO8cI9BpGNjzlibI99TSjl17OURPawEPpuO8jMI1DlAMkDB8BtkAcGKGKQJ0NMdtkscKhIsmkSFoq2nsAmsE2lG.1y75kQtDiWQNktGQJ1b5HsOqookf60UPDTePlM4li5Nj+FVn7uvx2puMUNnBpKnnPxnsFZYa1Ids5iPZKzIckOe3J+az20xzJgdpG3KULvoHx5CzlKuIsPNSpRVSpbFSpE21TpfYXdZYLuEBMu6q20vyxUjxQZa2UuMCBNCHfaOqYEJKZtOrn9VbPBlXEGxqns7fAIHJ83xkeH9QkKu7ZKUXoBfy2WfOi.gZN6LtcfvhyNfdF0qOdcrJsXkSohMBLs3cINt1zDaoTwIfTTpzlrSsXzUr4DSErVV1TeX94c3b6RKuFFu5p3c.t3MrswsO.aA7vNTGt2HL7q9TrKHYdqay.gfyp.1T7RCrps3NtbFLnTwH9JCXbTUuDTUmJpZWBpZSEU8KAU8hi62s77ALGcrhL3YVe80wa3z2hB6pprTAf8QkOFjnXLwUdC4rhfWL7CPHB7XINHNKDSkbXplCzrvTUgA1D3zm5keZFCS0DL0TXbsk6DpbgXpkfodFLUuhXdjBCWLbBKabL0Sv73TLiOMSESr++59gkEq7w7AP1b2whsgrt3.rRlwhxEWKCqwBl43kKnkiSXnoSXnIGm5Y3jWaYby4nG5J2u2yZdfBvREFDvLj67UtQ9fAvl4PeoeokWpv6VpPpi1lycwd7.lIl.a4Aki6GJpBrE6TIMGESPSIPwC3dXbIKy2td40f++S38Nb2S17vd81eutRBO3AKmJb5TJ+bFEZMa34QFcDH6wq3SEufXGPKop8EK34vuOWshxF4xLQvButpn0Hd.1fGXahC7opUAQpbrMkcpXHTFCNxDppAoAhgV9Y0VNiINYHuEBQ+qTws7npbonpNETUuTT0lBpZWJp3haW+cR3tTaJjNAYBaxDYccOmw6O6B3JtiUH1SrSe6YeRQH6HK0hYCmUgSxk4LkFkH8fCqLhg8PPyPlSZhcnVjoTkJJnuUT7gIa1ORI5ww4XSbHoDj7LwREeWmC1+matUuSZs+Na27fyK9.YUq7vWcUUYJXaw36cB4K4te9ceIHwuL.7Ig3YYfhkYxugHczStUIb5S2rTIi9L4Js3F1BfLZI0zPxYTY1ukIUN1C6qBlTynoakUtf4wXHgcJ0TY0xsgWXbVZUQwls.uQenUwR4CYoIfYpPwY6wEz8YkVtv6JrXgyKfGm0fASkWjRsodSksrUVuKBXIVfrpbb1SrfP+c4af7tytAxr8zZD5axHHm0lYI12kFMNsESIuvUcL2xnjEaVRoqwrTUKsoHVJoI6fEEE6fdY0iDGDUn5j8dQcx10FxR7PVfM945p.GR4axd+Azr.Gl9n.undTQwwg+ombcfeKm8Z2N30mB7CauMQPjWGHxaBdXWpmvRlmnsM8L3tUgWNXQ8so9uRvcgqHkrUAb8WpC+sIS36eciQIC9.qgCIkG5aaflTsKEo1cH8o1JsdG8vZgR0pC+gPij+3kfFjEFQZEziabAglscN0Xap0z3vLV5GGzvi.2r3oPOEtxrwpWSMWcVZ9usukZt1rz7u+5aolqOKM+dwjZdxqRBWnkaF.c7k+VtxqyGw.pbk65jxqLBE0Eixt45Ve02JSqvwUzbuudGKgwvoauyME6E1F8es8F8PBKo2bv.3PuTicA8V+5M8UCpbyd0fuJ1VxzygxV9Z8I5BImoss2n7uqyu8wegJxSBg1AralQN2aaG2.ae5NpNfylmDYUsYtAhrzOzmtIbp8opaCzanGzvbV80wiZRsI4limYsUFc7G+UisINtPuGYkoUqdQEESIAsXk7HRNxUhr1DBopwoq8memFRduDHZ3Ih4IIzjYFOTa9K5ompb0e5IzA7.Yys6RDdVxoeu.mtPmRFTHegwn19xobN4oGgiKGaBcoLS0f+A9hXVQNVKhYkXl+uLGNDCO9IFgGwIS+tihBrtYJW8h56JGiSNVVWu7JkA2uo0IFFxMEeeEDZ5XpdCvT6Ffo9M.yitAXd7M.yObCv7iWHF4yXtQff6DVvDHzoopCCMslLBj8pJ.f9WvsHMBi
    

    @d-healey



  • @Jay said in Button from array:

    like we said make one small typo fix and it works

    HiseSnippet 1656.3ocuXssbaaCDkz1LMVsJSSaenOhQOIOIUV2RZmw0SksrThZ7EMVxoW73wCDIjEZHAXHAchlLdl7XeLeB4SI+C8GneB8OncAHEuHKY6nlD9fFgcwYwg6tXwB10iaR784dZ5q1erKQS+KL5MlIF0bDlxz5ril9cL1C6KHdnPQaO1E66Srzz0W9QRA5qthl54e9osw1XlIIQjl1S4TSxtTGpHQZ2FOgZa2FaQ5ScRM65M5XxYM417.fOKaTVyEa9L7Yj8wxosjgl9sZYQEbudBrf3qoux1bqw8FweAKb9Ok5SGXSjCpn0CLTn31baKIikR0ZNhZa0cx6suFXktIdgkC8BeiwdTKZr7DuwWpTfRPj1enuzUQuJooW4aN8zSQuUBo2cM5Y5QcEIZjb6yM5vf.0PLDBRSqv4pszaW0nIGlASTxA+LRaOXPLhhOrb46idP4xqsQ9b4yAABeA5bLD14ry41ABJmcH4bh2.zlHUJRoyHhsBrn7dXGWaRLWJV3RPJHMZK1YTFojMGaof0lZS7g0m2kysKt1FHz5qi1Ezh1x1F04PDEzgbHNbuwH3eCHHWXlYY21ABAmUA3zjWMfUM4NtbFLnXgH8JBLMppWCppyDUsqAUsYhp90fpdgo86TOe.ywmnDCdlM2bSzVNCnDXGVk74.0GW9DXFElHrzKvmW.7hgO.BQfGK1AwYgXpjAS0LflGlpJLvl.mADurKyTXpFiolBiqsbmPkqDSsXL0Sgo5MDyCTX3hQWhYSiodLlGlfY5kYlXl3+eeePxBW9H9PHat2Tw1PUWc.VMmohxE1HkpoBlYzkInkQSXnoaXnIil5ozj0ZobyYjG5JOn+iacnBP9bCCXlxc9J2He3PXybnuzu3Z4y8p74Rbz1btKxiGvrPXXKOXbzfvop.SYmIk4nTBVJFJZH2CgJRsd4lk2.98GQ6ezdmt8Q86ev98jBt28VKYxIKo7wYbHa1xyCO9XXtmTxmHdJ1NfTTU6axDu.9+Ep2nzQtTKD7hWWUzZLO.YxCrsPA9D0aAVZbjMgclXDTFCN9DppAoAhQT+zVKCYljLjkgPz+FUbKKpJWKppy.U0qEUsYfp10hZRws2+cRndDaBjNAYBayDoccOgwGL+B3JsSUH1Sr6.64eRQn5HlRY1vYUn3bYNSYQIRO3vJyIvtOXYHyIIwNzJxTphEDjWJJb+3M6Gql5ISxwtzgjRPxyDKV3UcO7fetUy9m19fc2o0gWT3dxpVYgu95pxTv1ho26DpeF69hQh9i.vmDhmkBJRlI+BrzQe4sJgKexlkJormEWYE2vV.jQKokFgOmHy9oVD4XOjuJXRrhVtRkth0wbDlcFwRwZ41vqLNKYUTroI3MF.sMVLaHKIALUEJNaetfb.q3Z4dUtUycQNzzpFNbl5hLpMwalpks05cU.KxBjUkmj8LYhP+cYafzX9MPlt+VyPeSpIxYcXTwAtD17ZqTKxgBMXZDwJXpBU6k2Ip8xd1PnySiBcQ9YFJuolhvoavWadfCioJvqZDUoJF9szW.3Iq9sVjUu1+O30mA7i5rCVfk8nG4MAOrKwSPkAO8cHmCW9Iri8UM1g3+LA2EtCSb9K35uVG9Kic1u44MFGO3srFN3DcZeaCsKa17QlcW7.hsxp21Hr.UJy10MkYe8u2PV0RSOmwjtJzzlOemYLNwzMNJkoe2vFdXns+GAG36lJCpw6m8qNO6+21ePres4Y+W+7OH1u97r+aDyy9W99evsP4VAPaZYuZp793QJfxMYtCn7ddPkXw3z2W+ix8Uuoz8tFcoByQyluKMC9Bay9Xy2na+m2n0vgvIUIjcEi1+5m3q5+US3RpFETb4qMtTqCYn1Ndiy9gY9s28KDQVQZZ6B7lYlw81wwMv1mrqps0z4IQrpCyMPjV9Q9jsgiZOS0Be+QdPWtosWWOhEwFmYMdLsYJa7m+UicvNtPCComS618iJZlHB5KJ9q.4HeSLTmfnpAF9W4kIfngmHsfVLqIC0WNaDa4a1YqyHg4Pdfriz8vBOpb42OvoGzdiIAxWXLhs7fa8kjmtDNt7DJzivrTC9W3IRYE4X8HkUln7SxZ3fM83mZFdDnL861JIv6MS4pW0XO4XT7w1FFkKUFb+VzSMMkaJ9tJZZyFS0E.SsE.S8E.yCV.LObAv78K.le3JwH+1iaEH3NgELAAcao5.QWuECCYupB.Z+meZiPb
    


  • @Lindon the problem I have is that I have like 30 or so, does that mean I have to put 30 buttons in the array?, because right now is selecting the 4 first one, but was hoping to group it by category, let's say for example: 5 ambiences, 5 plates, etc.



  • ?????????



  • @Jay you have a solution - you work out how you should scale it.


Log in to reply
 

14
Online

648
Users

2.6k
Topics

21.5k
Posts