HISE Logo Forum
    • Categories
    • Register
    • Login

    A way to make preset up and down buttons? (SOLVED)

    Scheduled Pinned Locked Moved General Questions
    44 Posts 6 Posters 2.8k 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.
    • ulrikU
      ulrik @ulrik
      last edited by

      @SteveRiggs check this BasicSynth example:
      https://github.com/christophhart/hise_tutorial/tree/master/BasicSynth

      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

        @SteveRiggs you've forgotten to declare the cmb, paste this line in your initCallback

        const var scalesCmb = Content.getComponent("scalesCmb");
        

        Then the cmb will work :)

        About the "count" variabel, in my code it will dynamically count how many presets there is inside the cmb, so to answer you question, yes it has to be the exact number of presets.

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

        SteveRiggsS 1 Reply Last reply Reply Quote 1
        • SteveRiggsS
          SteveRiggs @ulrik
          last edited by

          @ulrik said in A way to make preset up and down buttons?:

          you've forgotten to declare the cmb

          Ah. I did wonder why that wasn't there. I just copied and pasted the code exactly as it was to test it quick. My bad.

          @ulrik said in A way to make preset up and down buttons?:

          check this BasicSynth example:

          I just check this example but it doesn't include preset up and down buttons. I found one in the music box tutorial but that looks as if its all json stuff which I don't really understand :( It json even still being used?

          I was hoping to just make 2 buttons and add them into my existing projects and somehow link them to the preset browser to switch previous to next.

          I'm wondering if these parts below from the customUserPresets tutorial can be picked apart and applied somehow? I can see in there that a list can be created automatically from the user presets, but they're loaded into a viewport then. Trying to work out a way.....

          // This gets a list of all available user presets
          const var list = Engine.getUserPresetList();
          
          /** removes the directory names from the path. */
          inline function getPresetName(relativePath)
          {
              local l = relativePath.split("/");
              
              if(l.length == 3)
                  return l[2];
                  
              return "";
          }
          
          const var prettyList = [];
          prettyList.reserve(list.length);
          
          // Copy the preset names without the paths into a new array
          for(i in list) prettyList.push(getPresetName(i));
          
          
          // Load the pretty names into a viewport list
          const var PresetListSelector = Content.getComponent("PresetListSelector");
          PresetListSelector.set("items", prettyList.join("\n"));
          
          
          inline function onPresetListSelectorControl(component, value)
          {
              // Grab the preset name from the array and load it.
          	Engine.loadUserPreset(list[value]);
              
          };
          
          PresetListSelector.setControlCallback(onPresetListSelectorControl);
          
          

          www.anarchyaudioworx.com

          www.facebook.com/groups/audioworx/

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

            Just add two buttons and put the loadNextPreset and loadPreviousPreset functions in their respective callbacks.

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

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

              @SteveRiggs what Dave says...

              like this(ish) where I have a button called myPresetName to display the preset name:

              
              const var myPresetName = Content.getComponent("myPresetName");
              
              inline function onNextUserPresetControl(component, value)
              {
              	//next preset.
              
              	Engine.loadNextUserPreset(false);
              	myPresetName.set("text", Engine.getCurrentUserPresetName());
              
              };
              
              Content.getComponent("NextUserPreset").setControlCallback(onNextUserPresetControl);
              
              
              inline function onPrevUserPresetControl(component, value)
              {
              	//prev preset
              
              	Engine.loadPreviousUserPreset(false) ;
              	myPresetName.set("text", Engine.getCurrentUserPresetName());
              
              };
              
              Content.getComponent("PrevUserPreset").setControlCallback(onPrevUserPresetControl);
              
              

              HISE Development for hire.
              www.channelrobot.com

              SteveRiggsS 2 Replies Last reply Reply Quote 1
              • SteveRiggsS
                SteveRiggs @Lindon
                last edited by

                @Lindon @d-healey

                Cheers fellas. I just tried this way but HISE instantly crashes as soon as I hit compile.

                Content.getComponent("NextBtn").setControlCallback(onNextBtnControl);
                
                inline function onNextBtnControl(component, value)
                {
                     Engine.loadNextUserPreset(false);
                };
                
                
                Content.getComponent("PrevBtn").setControlCallback(onPrevBtnControl);
                
                inline function onPrevBtnControl(component, value)
                {
                     Engine.loadPreviousUserPreset(false);
                };
                

                www.anarchyaudioworx.com

                www.facebook.com/groups/audioworx/

                ulrikU 1 Reply Last reply Reply Quote 0
                • SteveRiggsS
                  SteveRiggs @Lindon
                  last edited by

                  @Lindon The same crash happens as soon as I hit compile on your code as well

                  www.anarchyaudioworx.com

                  www.facebook.com/groups/audioworx/

                  1 Reply Last reply Reply Quote 0
                  • SteveRiggsS
                    SteveRiggs
                    last edited by SteveRiggs

                    @Lindon @d-healey @ulrik

                    Snippet here but it wont let me compile it. HISE just closes as soon as I push compile :(

                    HiseSnippet 1052.3ocsV0saaaCElxIbc1sdcEX6dgbkCVVfTh+IccC00+MXzkTiYmhdWAsDsMQjHMnnRhQQ.5dS1ixta2tGk8FrcnjrkbhsmgwhtRjmy2ge7vuygrmT3PCBDRjQ9AylRQFOC2eFWMo4DBii51BY7c3dR50lWPuUYB+EPUlWN0jvcMaItga1HToD7.yAs6O.0X1TRP.0EYXr2OqCfQ98QQe+8qaP7HbGZ5THz6ELG5uv7YpzY6U+sLOuNDW5.leFuKWuqif2T3IBAxtG1BMk3bEYL8Bh1sbXjwWz1koDx9JhhFfL1ugvcV+I.Ii8+8r.1POpdfMpODn3o6H7b0LVOKp4Dlmau4Ik.DDkdoon8hSQeC9blKaw7oopuNxfYJhr4Cibahd1Yom01SOiLza+X58BbeGIapJ0hlaOE2kqnxQD3HHKsh8Ek6aygaJ.O3pi8IWQ6HgAKPTppk0QlUrrN7UEKTrvbGGSUME9SEbXPoCzJjFJ9AGdbfddtRJ7ZR77FBmSkD7DyIFN7UEJv3dLN0bTH2QwDby66SIm4A+HyqIdgzCK7oBl5u17w.xi8DDWMjKCnxXoYoQDu.JD76f3uFdpkyafmIl2HOW1mshmZHLQXvJ4Z1TfPQeGujND4KbWAy6aZznUZKgJdT4JMqqkjaBXIdn+PpLyFHxQPTsrpEudUa1hJm3LeFGE7tbl5cSo70okQIGWfpduDVA+ohzzeUhltuGykJQLP59D7a4hg1nHBmzm3y+Tg+70n0ANtUUD373jivkfG+sUvSTpq.9kcaQTDcoYx9A1iSoRESm9LZAp.GZbgZdbKZvUJwTHKuPeB++etkuMcAeS8YoCpTGkINOUkzsJNNc.UnhwGOfAGW5n8b7zHcXCo3FPTlMpkyD0OOn9MLW0jES7G+V8IT13IoMs+qaqmrWi2XOG2aoHOb7791OCW1tpUsxurR0yPLE0OigSNqV0Z0rO6zLFNI1xKA.111UPQoVieG+ohPA1AZ4Uex0z3SlC9ASkLjdzBSQsNkqwntXJ3AypE6I2n8vvQtVHApouGZIiWDpYaneDlSKV3NT1igmrEhvzTec1xGnKm5gyh6k5Q+XcVv4BeXoHxYyKs1tUetFNypK+eX0e3MRv8hB2POhZ4KK0uPHw.zKZoakz27vCXpYYeAwixMnaKceAtGS4LY07M2J3KzA3wluIuGoHt8nQTGUJY2G24CO9O9.8qhPcGkyIJICDQXnPnOTz5PAlv4TO88EF4zsTiGaoGqyL8ob2nA+C7kXzVO1Hwn8biHehiT7Qm3dx5W77kQy.bhG8vu73y0iMWbQ.FacrExGdH1GcbzohuG39pwbxNf4zc.S4c.Skc.S0c.Ssc.yYaDi9MvuITI7iKSfI50NtusQaNATYQJRz+Ry8jIL
                    

                    www.anarchyaudioworx.com

                    www.facebook.com/groups/audioworx/

                    d.healeyD LindonL 2 Replies Last reply Reply Quote 0
                    • ulrikU
                      ulrik @SteveRiggs
                      last edited by

                      @SteveRiggs said in A way to make preset up and down buttons?:

                      > inline function onNextBtnControl(component, value)
                      > {
                      >      Engine.loadNextUserPreset(false);
                      > };
                      

                      Why have you set it to false, it should be set to true if you want it to load next or previous preset I think.

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

                      LindonL d.healeyD 2 Replies Last reply Reply Quote 0
                      • LindonL
                        Lindon @ulrik
                        last edited by

                        @ulrik please read the documentation.....BEFORE you comment (yeah I know I do that too sometimes - silly me)

                        false here is (bool stayInDirectory) not do or not do....

                        HISE Development for hire.
                        www.channelrobot.com

                        ulrikU 1 Reply Last reply Reply Quote 2
                        • d.healeyD
                          d.healey @ulrik
                          last edited by

                          @ulrik That parameter determines if it stays within the folder when loading the next/previous preset.

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

                          LindonL ulrikU 2 Replies Last reply Reply Quote 1
                          • LindonL
                            Lindon @d.healey
                            last edited by Lindon

                            @d-healey ha! beat you to it. 😂

                            HISE Development for hire.
                            www.channelrobot.com

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

                              @SteveRiggs That snippet won't even load for me, HISE crashes instantly.

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

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

                                @Lindon said in A way to make preset up and down buttons?:

                                @d-healey ha! beat you to it. 😂

                                I'm glad it makes you so happy :)

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

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

                                  @SteveRiggs <-- your snippet is crashing HISE so something else is broken bad in there.

                                  -- oh look Dave beat me to it

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @d.healey
                                    last edited by Lindon

                                    @d-healey yeah I'm a trivial person really....😏

                                    Sorry ---getting us off topic....its been a long day...

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    1 Reply Last reply Reply Quote 1
                                    • Christoph HartC
                                      Christoph Hart
                                      last edited by

                                      My guess is that saveInPreset is not false for the button so that loading a user preset triggers the callback again and you get an endless loop.

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

                                        @Lindon sorry, I was to fast and stupid...🤭

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

                                        LindonL 1 Reply Last reply Reply Quote 0
                                        • ulrikU
                                          ulrik @d.healey
                                          last edited by

                                          @d-healey thank you, I think I should stay out of this kind of discussions...🤭

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

                                          1 Reply Last reply Reply Quote 0
                                          • SteveRiggsS
                                            SteveRiggs
                                            last edited by

                                            @Christoph-Hart That's got it! Good guess. It seems to be working now. Cheers dude!

                                            @d-healey @Lindon @ulrik Thanks yet again for all your help. Got there in the end :)

                                            I'll put the new working example snippet here incase anyone else needs it in future....

                                            HiseSnippet 1204.3ocsW0sbZbCEVqsUSXSnoYl9.ngqfotNK9+TGOACF2xDaLiAm16xH1U.Z7hDiVs1lIimI8MouF8tdWuMOJ8Mn8ncWfEaL1CS8dERmezmNmi9NGZnjtrf.oBYko0vALj0KwMGJz8pzixEnZGhr9AbCE6RRc10ZB7q.llb9.BU3QNTdkfTNTqkh.RqpMagJOb.MHf4grrV9mMNvJyJnnu+48ko9TgKaxVHzGkbW1w79b8jcaT5Cbe+indrV79ozdyR0bkhJReYH.1kwNnAT2KncY0oF0VBir9lpdbsT0TS0r.j0JkkdCa1C.Yr9ejGva6yLKJhZBNJd6ij9dFDa1EUoG22qwnfR.B7RiIgnkiCQeO9DtGe79SBUeWj.xDKRGOrVZdvqXZ3473gmUJ3sRL7dMtoqhOPOQhAau.WSnYpNTHEjFVw5hV5OWFWQBZHzq0mdA6HErXrE421wYUxVNNE1KqcV6QJ1koqH6OPJfE4yYpPJqE4JrVfYegVI8qP88aC4o7RQh3DAE1y1lK74BFoSnvUykBxs0Iu6HmuJ4RpeHqf8msIluphtfkq4KodFSNOfohKMy2g5Gv.meC3+6Amlx44fyDwyEmSqyiBmFS3xvfYhUSP8Mugz7WN8WIUN+rypVuEowYUaVsEo9AmTkTqN4.xwGTt5w1vif.MbLJxwz1L+hj8Iy9ZFKN2ru.ePHaW7gfOuCIexMv35PkBzYB9MO7xWfr+9jb4JDeegu4CFSHOeNMjyxsJIWMAWa.nwNFDKVDm7f.LoXX1tLJNbeUBoCRE1KcYpTyNUj2DmxXeiM41h5zYlxRbkOSMSwF9N07LLuHrealJUVJRQ3g+zLK36mYIMwmabDIkhRgIib5.l393aPIgQCySBp.U0Q7NeaBuSSetGSg3.8xyvQwPTDfS3x+x91+86QmW6PplNxMfGgSY.So4lKf0gvaEWVLcVF7grfKzxAvEablCtyO3gd8jlGGTZ3jEaUBkxOuPmvoG6mif2pZtnaKNDvLd6U3AQESkUxqfJqzdcyTd8KsJcE2S2a7F+0uWpGi2s2jVae85RI203K1qvMlxys6Np61KwaVbamc17sas8tHtl0Okf02cms2Ymh6tQJAqGK4sfAEKVbKTTn05OveNK7hJmIA2jdIKtSctehnUgrUGKJpAi5dDZJmCtytlxsj9920czKkJ.Zlt0SIrdnAsg8irYir12fRmFd1zoyXuGk.xfSXaSE5KwmNgNcnGxE2JzidWo.HBTSDGwM88drGdRKozGt5+0CGGe3YSN7HRtny943XBuTG8WGl9neWICGHxxFeLi5QbbfWr2cb.XnDoWnOUO8jJlwyRD.jLSMRfosuHfqGld7smjwWdrv803FbsauYi2klAdAhkmZ7lLLXVb0NcXt5IfcE7Q+1S+jenyjgFhpSnZEGpPvv6ql.WfKCPhP.sSg8rVxPYGu1wr1DYZxDdQK9W3KQXQyZqDgEGID0m5pjexMln2Lt4yi1AvjHZp6L3SLqIiY3wXm0bP8gof+jqqIT7i.1msMqu.1rwBXylKfMas.1r8BXyNKfM6NWaL+AjCB0x9wOSfMZTMtcfUUAEpxhpHQ+Gc+O3bC
                                            

                                            www.anarchyaudioworx.com

                                            www.facebook.com/groups/audioworx/

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

                                            20

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts