HISE Logo Forum
    • Categories
    • Register
    • Login

    I am once again stuck with a small problem

    Scheduled Pinned Locked Moved General Questions
    33 Posts 3 Posters 1.1k 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.
    • MikeBM
      MikeB
      last edited by

      I have 16 knobs - all 16 are visible.
      There is a selector knob with the value 1-16
      If I change the selector knob I should
      only as many knobs are displayed as the value of the selector.

      For example, the selector is set to value 12 - the knobs 1-12 are displayed.
      the knobs 13-16 are hidden.

      In my example code here, only the knob that corresponds to the value of the selector is displayed.
      So unfortunately it is the other way round.

      I have tried to adapt the super script from Lindon, but due to my lack of experience I am not getting anywhere.

      const var selector = Content.getComponent("selector");
      
      const var myPads =[];
      const var nrPads = 16;
      for (idx=0; idx<nrPads; idx++){
          myPads[idx] = Content.getComponent("Knob" + (idx+1));
          myPads[idx].setControlCallback(myPadKnobCallback);
      
      }
      inline function onselectorControl(component, value)
      {
          if(value){
          for (idx = 0; idx<nrPads; idx++){
              myPads[idx].showControl(idx == (value-1));
              Console.print(idx);
          };
          
          }
      };
      Content.getComponent("selector").setControlCallback(onselectorControl);
      

      Bildschirmfoto 2021-06-24 um 08.52.12.png

      "One hour of trial and error can save 10 minutes of reading the manual."
      "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
      HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

      ulrikU 1 Reply Last reply Reply Quote 0
      • ulrikU
        ulrik @MikeB
        last edited by

        @MikeB

        HiseSnippet 1122.3ocsX0saaaCElxwrqVctXAXO.B9Jafr.YGGmzUzF233LXrlDiprh0aVKsDcLQjHMjnRiWPdZ1KReD1c619Hrq1saj5GK4DqNGKUciAOmyG+9NzG96PWlI1yi4BTpb9roXfx2BMlQ4S5MAQnfAGATdJ7DjGG6pEZ5vYSQddXKfhxF+jzfRkxffu+9fCQ1HpINwD.7VFwD+ZhCgmXcX2elXaeLxBeNwIUzs6NvjQ6wrY9B8rATGLEYdI5B7oHYXkf.kG02hvYtFbDG6Ih4Pl0LiIrORCi+sDOxHarrQSfgniBMC5MgXaMLNW8..kxCSx7MBy7uGdBwhL2dxHv2E3PKAQ5w.kRKJoxKHolYIoiY1VxNHC4ojRdkCk2lPCSWxTdhGo1dBb.U7myXjXXOsrBiET5eTf8XhHn7scPWhO1UzXNh5cz02RaWc8FOupZUUwfuGW6Jjq1kzQdZuPKF4EX9qrs6wblxnh1d0qIBnVHnppDpMgh0F6SM4DFUiQM5+598N+r2Hw6xrqaFibKQua6iaTU8lppUFyb0papQnA7ILpI9tI7G4mz51DpE95yFW2rg1KeQHbsCzL21CyqW6pvA2ZaoMFY6ga7i22A2Uv2yC5yaqpdaflSkWySp50hUcsFx9HR68P11iDUg0uWVIS+T47oLN9LZ8Fp2nVQ8VUs65Z73k5KpyrwtK0sbBh6WBXcpuyHra7.abfhplEKKexpUVZFNxjJPFc.kvOaJNpcRgqzWXVG6UGLOYSaJIGSaMH0VRXIlt+7BPz+bhYHaFEtHTdv7imFM+vvlXgcADgFeDTTB0DDLzjdQIvphsUNvtSNv1NGX2MGX6jCr6kCr6mCrOa8v9MA0F54Aby7.tUd.uSd.2NOfuS00e8G+4AqN30r7REFuz6cwq2E7KCNBwQxsLiVaPrdwTrKmHW0S4H7UhyeDtAZE3QXuK4roAKdDsrunH5+a4iqSq2Yoa7QhEeRhgeq6DL4hIoNoyftfUmoVYxzftEKS6jISuqfYpcVL8oQELS6lYNQJXl5jEScYELS6k4nmaAyz9Ywzm8KXldVJl9Lp6Wm4SwKtmP0mVfpBbBU7VAYQ06JZpZkEUE4Tp3sYxJqHEMUsyhphbRU7VXYM.5VzT0IKpd3SqTWksGSX6C9O3JCGz0o2Y0Yw616wwSMH+tPBPXys0ANDKKa7PlGQdgjjH05Bt+cWE2flY4ai3KdsZ46GD4P1Gou+p7NpTQeOKsFd.20Veo20t4xtSwJJ2MgCIbyIKWukVhdEmI4qsdid4hpv9iGiM4IhsL73eccelhGfTdCymSnWbBh6RDEOvS8cLX9tlXgRnTrsfHnRI4o7BaqKaKGYLvTqfF+q3KxYSYakHmMicBbPltr2aFdLQ4ai73.KBMQCdVnJvSjs0leZbHTOr9j7dSS4PwOHz9xwzZMvryZfo8ZfY20.Sm0.ydqAl8+hXjuV1q74LmvoIBCC6GbHcEk9TjnJKnhD7ePf2mN0
        

        Hise Develop branch
        MacOs 15.3.1, Xcode 16.2
        http://musikboden.se

        ulrikU 1 Reply Last reply Reply Quote 1
        • ulrikU
          ulrik @ulrik
          last edited by

          @ulrik or

          inline function onSELECTORControl(component, value)
          {
          	for (c in knbs)
              {
                  knbs.indexOf(c) >= value ? c.showControl(false): c.showControl(true);
              }
          };
          

          Hise Develop branch
          MacOs 15.3.1, Xcode 16.2
          http://musikboden.se

          MikeBM 1 Reply Last reply Reply Quote 2
          • MikeBM
            MikeB @ulrik
            last edited by

            @ulrik Thank you :folded_hands: :folded_hands: :folded_hands: :folded_hands:

            Since your concept is much better than my attempt, I now have the following problem
            How do I get the value of one of the 16 knobs in your way?

            SliderPack1.setSliderAtIndex(c, value);

            "One hour of trial and error can save 10 minutes of reading the manual."
            "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
            HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

            ulrikU 1 Reply Last reply Reply Quote 0
            • ulrikU
              ulrik @MikeB
              last edited by

              @MikeB

              inline function onknbsControl(component, value)
              {
                  local index = knbs.indexOf(component);
                  
                  SliderPack1.setSliderAtIndex(index, value);
              }
              
              for (k in knbs)
              {
                  k.setControlCallback(onknbsControl);
              }
              

              Hise Develop branch
              MacOs 15.3.1, Xcode 16.2
              http://musikboden.se

              ulrikU 1 Reply Last reply Reply Quote 1
              • ulrikU
                ulrik @ulrik
                last edited by

                @ulrik check if it's working with this Console.print

                Console.print("index:" + index + " value:" + value);
                

                Hise Develop branch
                MacOs 15.3.1, Xcode 16.2
                http://musikboden.se

                MikeBM 1 Reply Last reply Reply Quote 1
                • MikeBM
                  MikeB @ulrik
                  last edited by

                  @ulrik It works fantastically - I thank you very much - you have saved me again many hours of try and error.
                  I often simply lack the syntax - I have to work on that.
                  I can do a lot myself, but often with 100 lines of code - while you show me here that it can also be done with 15 lines and much more elegantly.

                  "One hour of trial and error can save 10 minutes of reading the manual."
                  "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                  HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                  ulrikU 1 Reply Last reply Reply Quote 2
                  • ulrikU
                    ulrik @MikeB
                    last edited by

                    @MikeB I'm glad I could help. 😀

                    Hise Develop branch
                    MacOs 15.3.1, Xcode 16.2
                    http://musikboden.se

                    MikeBM 1 Reply Last reply Reply Quote 1
                    • MikeBM
                      MikeB @ulrik
                      last edited by

                      @ulrik
                      Sorry if I am annoying now 😬
                      Is there a simple solution to return the value of a slider of the SliderPack to the knob?

                      "One hour of trial and error can save 10 minutes of reading the manual."
                      "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                      HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                      ulrikU 1 Reply Last reply Reply Quote 0
                      • MikeBM
                        MikeB
                        last edited by

                        @ulrik I save everything I learn in a specially created Ninox database on the Mac.

                        • Text and image (for me as a visual person, the image is most important).
                          Here I can quickly read the English and partly translated German texts.
                          That helps a lot.

                        Bildschirmfoto 2021-06-24 um 12.45.49.png

                        "One hour of trial and error can save 10 minutes of reading the manual."
                        "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                        HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                        1 Reply Last reply Reply Quote 1
                        • ulrikU
                          ulrik @MikeB
                          last edited by ulrik

                          @MikeB this is a universal function that will return all values as an array, just set the SliderPack as an argument
                          (in case you have more than 1 SliderPack)

                          //  function, get all sliderpack values
                          inline function getSliderPackValue(sliderpack)
                          {
                              local num = sliderpack.getNumSliders();
                              local values = [];
                              
                              for (i = 0; i < num; i++)
                              {
                                  values.push(SliderPack1.getSliderValueAt(i));
                              }
                              
                              Console.print(trace(values));
                              return values;
                          };
                          
                          //  execute the function to get the values and store them in a variable
                          local values = getSliderPackValue(SliderPack1);
                          

                          or store them in the knobs

                          Hise Develop branch
                          MacOs 15.3.1, Xcode 16.2
                          http://musikboden.se

                          ulrikU 1 Reply Last reply Reply Quote 0
                          • ulrikU
                            ulrik @ulrik
                            last edited by

                            @ulrik then you have to set the knbs to that value

                            Hise Develop branch
                            MacOs 15.3.1, Xcode 16.2
                            http://musikboden.se

                            ulrikU MikeBM 2 Replies Last reply Reply Quote 1
                            • ulrikU
                              ulrik @ulrik
                              last edited by

                              @ulrik this is more simple

                              inline function onSliderPack1Control(component, value)
                              {
                                  for (i = 0; i < knbs.length; i++)
                                  {
                                      knbs[i].setValue(component.getSliderValueAt(i));
                                  }
                              
                              };
                              
                              Content.getComponent("SliderPack1").setControlCallback(onSliderPack1Control);
                              

                              Hise Develop branch
                              MacOs 15.3.1, Xcode 16.2
                              http://musikboden.se

                              1 Reply Last reply Reply Quote 1
                              • MikeBM
                                MikeB @ulrik
                                last edited by

                                @ulrik Where do I put your lines now?
                                This is how it looks at the moment!
                                I have three song packs for note, length and velocity.

                                inline function onselectorControl(component, value)
                                {
                                	for (c in myPads)
                                    {
                                        myPads.indexOf(c) >= value ? c.showControl(false): c.showControl(true);
                                    }
                                };
                                Content.getComponent("selector").setControlCallback(onselectorControl);
                                
                                
                                
                                inline function onmyPadsControl(component, value)
                                {
                                    local index = myPads.indexOf(component);
                                    if (Button1.getValue()){
                                        component.set("min", -24);
                                        component.set("max", 24);       
                                        SliderPack1.setSliderAtIndex(index, value);
                                    }
                                    
                                    if (Button2.getValue()){
                                        component.set("min", 0);
                                        component.set("max", 127);
                                        SliderPack2.setSliderAtIndex(index, value);
                                    }
                                    
                                    if (Button3.getValue()){
                                        component.set("min", 0);
                                        component.set("max", 99);
                                        SliderPack3.setSliderAtIndex(index, value);
                                    }
                                    
                                    Console.print("Knob " + index + " Value " + value);
                                }
                                
                                for (k in myPads)
                                {
                                    k.setControlCallback(onmyPadsControl);
                                }
                                

                                "One hour of trial and error can save 10 minutes of reading the manual."
                                "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                                HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                                ulrikU 1 Reply Last reply Reply Quote 0
                                • ulrikU
                                  ulrik @MikeB
                                  last edited by

                                  @MikeB What is "Button1, 2 & 3?

                                  Hise Develop branch
                                  MacOs 15.3.1, Xcode 16.2
                                  http://musikboden.se

                                  1 Reply Last reply Reply Quote 0
                                  • MikeBM
                                    MikeB
                                    last edited by MikeB

                                    @ulrik
                                    They are radio buttons that select which of the three slider packs are changed with the 16 knobs.
                                    Button 1 for SliderPack 1 for Note (-24 to 24)
                                    Button 2 for SliderPack 2 for Velocity (0-127)
                                    Button 3 for SliderPack 3 for Lenght (0-99)

                                    "One hour of trial and error can save 10 minutes of reading the manual."
                                    "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                                    HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                                    ulrikU 3 Replies Last reply Reply Quote 0
                                    • ulrikU
                                      ulrik @MikeB
                                      last edited by

                                      @MikeB aha, same buttons for 3 different packs, hmm...let me think

                                      Hise Develop branch
                                      MacOs 15.3.1, Xcode 16.2
                                      http://musikboden.se

                                      1 Reply Last reply Reply Quote 0
                                      • ulrikU
                                        ulrik @MikeB
                                        last edited by

                                        @MikeB So you want the knobs to change values at the same time as you change the radio buttons?

                                        Hise Develop branch
                                        MacOs 15.3.1, Xcode 16.2
                                        http://musikboden.se

                                        1 Reply Last reply Reply Quote 0
                                        • MikeBM
                                          MikeB
                                          last edited by

                                          @ulrik here ist the Snippet for better understanding

                                          HiseSnippet 2381.3oc4Zs0aaibElxxzqsx5bqYwt.8EBihB45rBRT9RRS2ZIeK1ariUsb7FfsEAzTCklXpgrji7Z2z.ru0W6OgBzW5Oih9ZeoOtO1G6iAn+.ZOyLjRintQJeY01x.3nyLy2Y9Nm4Lyb3LrhmiIx22wSI0bGeoKRI0GqV8RBswlMLvDk81RI0iT294GpUX0JF0dAw4TsiQ9TkMtz0v2GUSIUpzOm0xTyMsB+4CquggsAwD0oHEkSbvln8wMwzNkVozKv116XTCcLtoTqWtzdlNjMcrcZArJsZdEWCyyLpidoAqYSopjZlsqgoNdUoFTjuRpo2vo1kUa37MDQ6OA6iO0FwDJnTETjn3cbrqwXLqTkMafsqUIz58UTRoVoiuHsvW7H0Cv0vsKuiO497Jz5fP1ejZpgQuBxzKe7oWJI5MsfdOPspoG1k1oFF2ti5dDJxyx.FBjoknsJS8WlUcSGnEDZtlFmg1wCDZiHaA874er1J4yu3ylOi3evngOU6bCOsxdtn50wFfwUP6Kz3AJ4pinc4kxtfbyVfomNZnpMtFxqBLfxTPHO.UroSSWGBHjcAo1LPz5w.s9.QWLFnKFAcyKgI.9cCrrscar9YWfM8HBJejMxD7CCrCCaPDbazhRcHC1GETeeQoOBT58EUwQfR3OB+GlXiIHMqVDSJ1gnAJKvPX5vywNqYnBdLzI1sPKNel2Mel4r.eQVSMLIvgBEqAOuS7erGQ44vjZnKNzJq4hZ+xuPnBs00Ly4CSjB6CKCaezh+7HkR8fd6YBE994y7d3mix2mymUAG9lF11mBi+Y6wj5X+8Z8BROPaOy63rw1wzvViaYf2NpgFBZwmwaL1RKavvLi2mvTT1EWTxS0FAi9YWnIlrvi09b8kCM990FiKf1vZRP8cZozzNVaEhkgkF.5kkSxPqQvu2moC9NbUOIbM+HYZA80jaizj63ww46KIKd8Rxm9z9ywhImiPDjuiMJmqGlEgx2vcAskBhYVB9Mm17xBUx6yjgOq5LoYUAAbm0+.6thVYZn+A0RQDiJxlS.LDTm+YZXseQXrsMhTm1.JZokVTLOOxz7uF+aXTTLVzw4VOzuwqnLMKdw1QcvD5LwXii9a48ZRhY0Cy30+AlwqOZiWWx3kr4W5PQGRxxrq4fvJsnUYY025BTlMxquUyRuyaX.yRZ07TjmjWk2PHOmtSjRcvIRImmmov+H0PGxdDL8PWDYPoWoD3TgDs9z.VAMkxSy5tAoYIbeJXHapORkMyrfBmvsSc8udbIkXCVOBXkBI.bwHf+1cS.3kiB9fD.dknfKm.vqFEboD.dsnNrJI.7ShB9Wk.vOMJsiG3YEAI4i10GkDz8DikHz5WIzQixJUMIniFlU5UIA8JWo9d0wCcF0vT9hNl8yjvOs.+C6BOaUUtNlWUZOlP0nlhomZFTCkTes5pKmCdH41LWNqs1B94tmC+Yqxkg+tMStREd8L4xLY9i0RajS943xaxpee3OeYP6UFnQJx6gSv4TCxprC43lXBf1yZWeX8j.u3f5436Y0Ghm0xYCvys6NfmqxaYdFCl796xjsXxV75+RP9bBS9sL4SXxu1AjsrYxtLYRn7XQRI6bpdHImDVbRwHgUClbNVmlylQpi4jbOlLlI+Jd64xbi5Tl7qYxm2jgGyH4q1aKVm.utev9YvdbtHOJls8YpsPmiMQhyNXN0sP9mQcb4a3EjEALCXja4cAybtGXNWx9wuG9w2fqQazIV3WWpABWuQmS54a2uDjmLHNymEbbP9TjaU7uqq.H2vci2qFq+kOCAkl7CXZl+0+Q7nHQ34F41rbB+mu9I7UfTEEjZsTSRjZYAo96STjZEAodyTSRjZUAo92STjZMAo9ComjH0SDj5GO8jDodZj0v9ae+Rp1oI18BUSFrpPjUplLXkdjkplLXUwHqUcqvpLiNM7tWr55iUmG952oReUH3JQViXhifqFYk0aaB9Qw48Utnid2qzksE9StA7Hnt7kFb7kbt7s6b0D7xNR8y9Rb3O1pzvRtSt2lIFu0BevPObYxUfe3YTC67bOmVthi2ghtfMtpVEQ0XmaUB6hfUW9tvtnv.6h6x6hSP1NlX5kIraBVt3soFY27w7tYeDgEg0mNIVuuDuylUzYwafoCZ9YWGdzYiS2GXqeWns9Z3GIrqgQ7duAz6qdfSsV1LPxWNK6FoCp.Cdc4aAkcSmDe1nkT.+MxM1FW59.0JXpYi9y2o5CegWu6lluA2+87paaYAquzgrSqtyqu4uraYp7IBpbG0ux3bD+Fm4D4S3xVNdM0dNhf7DwMC9yR3eD2OKA2X+YIbnIEnvwdFDeWGeTAYMGoNc451BQaQ5t4hh5pULyaGv7jZ2rkBKTWtvJFjtTFH2klN.Ksv7+b8sIFv.RUDXM0Nz2DLVluSd5PkV19nuhsCWAYfcJVWt3cM7pAiKlcEflN1QE8+KzHe+9DHl4l5KzHc7n2H9pLZOoQZoLNWhr3VWLI80DSjt.ieTLNJt6pJXQPQQNNu3cZfyqdDxGQSrJjRf4dpurUyprLRDkEQI4i0o1dGUlF3bY7Xw84Jn5Y3APi3c5lfVb7nu.co+Uwi.FiKBw+RqhpfeZudi6Gn.XS4Sc1v4BtJf8iQ+1VHXst1EGeCRhJyqJVE6HCRcz3YMyoVsQKKKaz3EgcGUwhUGiQCyDF9Ix9HvczDeLjyhTE8PmayyleT7MLgxAy2Or9jyId+P084Wzcr8t2LG8crlZ7.UXGBBAYWc.2ySelYzWE8opG1h51hdMotGndPksg8.7BUXOtvXN2+dLEsMo1.TyPVPUZZ2Lp6BaD2mor2ZIfmNdYQNhMjmKjiUwMcsQaSNGlXAkv33CU2BYYzxlFVZ26KefCwwsgCA2UZMGgnd350QcksTeMnxTJahP6RdToifPDCeI+4Ooz9XBxvC7SnwzWjfjSF130moJnqFKiWs+23EmR++8u3zvmgBuTvObFogUa8M003C2Ze+OdejSKJlT+.CX0.14ZvxgEdqPHeKwpt9g23afb9va5tJhTiKvNhufJKvjSETYgvJuU5ilFldNuwTrg.aAiY4k.1Mg+o1Om5ALYsNeo.p4ykWoI7hUuwzjES+4f+o+XzGCLEGCLKOFXVYLvr5XfYsw.ySFJF16zVtE0ooH9GJnx17a7OUJQlx7oBJ+WDo1AcJ
                                          

                                          "One hour of trial and error can save 10 minutes of reading the manual."
                                          "It's easier to hit the developer with feature requests than to spend 10 minutes reading the manual. :-)))"
                                          HISE Develop - Mac Pro 5.1, OS X 10.14.6, Projucer 6.02, Xcode 10.3

                                          ulrikU 1 Reply Last reply Reply Quote 0
                                          • ulrikU
                                            ulrik @MikeB
                                            last edited by

                                            @MikeB can you send a snippet of what you have so far?

                                            Hise Develop branch
                                            MacOs 15.3.1, Xcode 16.2
                                            http://musikboden.se

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

                                            31

                                            Online

                                            1.8k

                                            Users

                                            12.0k

                                            Topics

                                            104.3k

                                            Posts