HISE Logo Forum
    • Categories
    • Register
    • Login

    Next/Pre Preset & Label what am I doing wrong?

    Scheduled Pinned Locked Moved General Questions
    10 Posts 3 Posters 186 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.
    • M
      Mighty23
      last edited by

      My goal is to display the name of the current preset in a label and to be able to choose the preset via buttons. The two buttons are MouseCallbacks of two Panels and not two buttons.

      
      // Preset Browser
      const var lblPreset = Content.getComponent("lblPreset");
      
      inline function UpdatePresetLabel()
      {
          // no preset
          if (Engine.getCurrentUserPresetName() == "" || Engine.getCurrentUserPresetName() == "init")
          {
              lblPreset.set("text", "init");
          }
          else
          {
              //if any other preset is loaded
              lblPreset.set("text", Engine.getCurrentUserPresetName());
          }    
      };
      
      	// Pre <<
      const var pnlPre = Content.getComponent("pnlPre");
      const var svgPre = Content.createSVG("/*base64 svg code*/.");
      
      pnlPre.setPaintRoutine(function(g)
      {	
      	g.setColour(Colours.white);
      	g.drawSVG(svgPre, this.getLocalBounds(0), 1);
      });
      
      pnlPre.setMouseCallback(function(event)
      {
          if (event.clicked && !event.mouseUp)
          {
              Engine.loadPreviousUserPreset(true);
              UpdatePresetLabel();
          }
      });
      
      	// Next >>
      const var pnlNext = Content.getComponent("pnlNext");
      const var svgNext = Content.createSVG("/*base64 svg code*/.");
      
      pnlNext.setPaintRoutine(function(g)
      {	
      g.setColour(Colours.white);
      g.drawSVG(svgNext, this.getLocalBounds(0), 1);
      });
      
      pnlNext.setMouseCallback(function(event)
      {
          if (event.clicked && !event.mouseUp)
          {
              Engine.loadNextUserPreset(true);
              UpdatePresetLabel();
          }
      });
      

      this is a snippet:

      HiseSnippet 2174.3ocsXssbhibFV3wLYvS1SUsWmRwUxVLkcoAAXvr6NSrNg4LByAiII6VBoFj.Q2XoFvxYmp1KxCv9HjWg7FjGobWtbR2RbPXyX60UspJiq9+P++0+mzuZUGjNv0E4vDIVKuo.lH+9nM8fXSISMKHSQYlHedzpZtXfCa.IQuoZtt.ClHQdw4TBQhsOi+y+8uHpYqA0AaHwvzAYoCpXMwBugp5YksrsyqY.ZYMIjzoOqnNBJgrQyH34EQSvLUSer1PPMMpX6EkIxKULrvHmlXMLvkIx9hHCullnEv.46X4Z02FPWvyzjrQAjyirMnHlRkQxzx1Pc041kgrKpa7BuHvK70QqZYXsl9FuwW5yfciFg8GQ1aa38hsfG+mBd6.RQBAo8CfzWEsoti0T7FNT775nEgjfy.MhaOLTBjkYue3UQkPDIfXtIZiA4cHKVqQ7LIRbLK4m27cGbvaeK4TAbAXVQGzBWfyAjfgKlctlCqce6k7dG6psaH.KglLEAIKhe3ZINjtWVPaKHfcvLnN1BAYaO0f3QBDnhVefc72bv+3.VxCwpPD6TeN9DrFvFWANjntuEl43P1+1D3DnMMUH9aXe26XO7P1e5mXeZhZAsH.ye+CLK8YMj4H+E+PL3F7gGuR1uyWrO3+Kv1EbGce6aI3TC5whvljRi.7yZ4xZiHo0FOhMdTPux7zeN3CDGZrfnC62+8ghJSgzM+SFRBXSOJaTwc9vsUQ2APhLM6bd7CSlMMGrUlxmJwax0RVjqaia4KHpVzTiSIw4scwixwehamFtCalTZrE2TckqTZzAkYV8YWkRvKeGt4bpk45JxUTJq5ElEAMpWq7sb1kpqVOs2BTQgJ.mFJIxlfqkPyRUaLOq2DYuKrDkr0y0cT+aqLrbCSU4RsGlIsAp6nzoTNpz3FIudldIkKybShR4FPv4Ui5kkawP4zWLBJ2NQ0qDDGYNoUylMKJLSzNyIIqwW6nR7IlV4xzcV.yj0qShz5W5l25T7D2dW5ok4RbiNI4OpTxrbbE6XJOdPJUyQ2tPRRU8ljV4K.ydapBbdbFBBkEK.JUhSnQIwlybqzNckttmTsuaFdU9zJBhyuRoVi5b21WxCTnQ4ViNUYtb978jDlcU9bkzg0jfpsqOBIv0Ss27dEFcUIEN+ZkfvDM+PkzjAeAZFljbDeUsS7gjRkXGDaHUhfdiwC9mK2BSKLfrGDlFNZKnQwf.7wrXSKWZ9PEjtlsHZFzvMdh2bLKOQ7OrsYqhl4Bjzrs6S51twtf4j7iUkozpReBb51V5iAFrey2v9GCnLgpe6o2s7ZYRNsffXn4VDo1jlGG6LCrLKm9riFDqp.8QKM+uFo3g88ue6B.ehOPE.k+8JAtiR6tFXXPMPYYdYwVnE5WmSRoyk0.Wm67FsSfS6kWXQp187pNtewgtlEq2tZgKFqLnL2bQtIbCrfPkphou0QkDtRkMEbgcda4KN0qVx9I5JUWox34EFex0KfJJ1iF2RqJVNwfqJ0dz.UYGaOPoZmN10w7xTFUAswx78b3amQnmSCr7h4BlREaoTDl.qogxlpwhlSQHThdC3Rp12dX0IMOOSuByRJkI+IYSdT1yuAmOYUwq0zNpVmY3LWM+xbymjtaWuR4KRx+aMZPmB0F0EUse2ToGlWeN2P4ysyKzWpqhLr.WUa3bOqBDmi8oUa4Vt+423Hm6Hua.RED3ZHcEWtxyA74ysfuNGed4JopNbdtS6M3laKHwcipdCNNYNntzokDDjqvMfegbkwhqqAnwjGqH3gpA1pDftYOsZfUl829h.pkdtE.qeQJBVCgA0g9u+L1Aj2OcWVCFrSdzbcGjsMvYmroCh47PJFGNaRefywjRHaBvWIHY5jsG44kOsQdzCJ8BIHBVj7h25SAKW+vyrwrr1kNpzRDRDE6OnzmubPol1VF.GFKxlDK5XX+V.WLiO7COfJS6hxZXsUaDYOI1YJvAaQONQjIctzAASfEKpLvcLFMkXp0cYXh7p.y9YqlOSCBr8s5qiFzjkDRYtYiM+Sm4sdw+4uclIvZnYnoie+YKrLvlqI7y+vYjL7IqFKN1K+yGw8QJiMTSFl7VX628ov1qVhsv.6qCALBJmpQGMIzlE97rDiQib.Q1UGgfULgTI1112OydouY8nQggP5vPfYiUT2xJ+AxJ.IsSyOyhD2IkV9eevCBYlmheIVzkMEnnJZDKhk7Vcvdfy7S1vuFu76KBLbdRmARmtgsrHmDp8+hngIwG12XE12He1Zz7KQBil8irt3HHq8KhF.ikS0yze3lTIxF8+1NUhR8e+weYWIXqBJ9kK68O2KJsM2gzR3lZyAhyvXD7vukk1X63UbTtYpFzkzIwUvkrUylPkXfFYf50h3Wn6ra0oczbu2dRh7AhuEqMjI8.oeHx2xxmXsRBFF61DW.fjQt2MOYfM.+I3kWaNxg3gnexZXdKQVQxo1.HhbHmssNx0lMIvQPAeReRAqujFOufD5QDF+U+d+I3Rcmmi+URmP9u6aiJVtXAxbNq8MKsvw65eq0J.YWfVnpYXPxIep50Dn4naJp4D7VWpZALphbV5OuKmM4P2kyJO883dvG1pzZ+mP6+MkS+73PkS+K7YL2+KtIeqOxXlsFd6K.fdqGKYPRr25qtoeYMIvi8BeqH+JtUfDO3sB7Tg3WEU0BqataLt2NvH4kF+Vfwk2kxmEUYv.fNdC.2OZ9tO2KN4QLevjiCqpgcrncvIkaMIMvzADqCIM4co8H2i9Rpf0Inqodfl.ng+hORdVxjmtNxRl7qXxLQS2A8i5AicPuslW4SgfIn+EUEKZU5ZV96OswDKCqeTWe6s5dJl74pXpmqhoetJdxyUwLOWEy9bU7zGWQ5c6ILCilDT1vvTUUw+0cQhn.oSa3msx7+AfFyRnI
      

      Free Party, Free Tekno & Free Software too

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

        @Mighty23 said in Next/Pre Preset & Label what am I doing wrong?:

        lblPreset

        why not just put lblPreset in your presets?

        HISE Development for hire.
        www.channelrobot.com

        M 1 Reply Last reply Reply Quote 1
        • M
          Mighty23 @Lindon
          last edited by

          @Lindon Hi, sorry but I can't understand what you're referring to.

          Free Party, Free Tekno & Free Software too

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

            @Mighty23 you want lblPreset to show the name of the preset - just set saveInPreset to true for your label, and you dont need to do any "setting" at all...

            HISE Development for hire.
            www.channelrobot.com

            M 1 Reply Last reply Reply Quote 0
            • M
              Mighty23 @Lindon
              last edited by

              @Lindon This solution does not work, changing the saveInPreset of the label does not change the result. I tried to activate the breakpoints for writing in the label and for the next/pre functions and apparently it is not "stopped". So I think the error is in the code and not in HISE settings.

              Free Party, Free Tekno & Free Software too

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

                @Mighty23 What Lindon is suggesting is you write the name of each preset in the label before you save the preset. Then when you restore the preset the label will already have the correct name.

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

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

                  @Mighty23 said in Next/Pre Preset & Label what am I doing wrong?:

                  @Lindon This solution does not work, changing the saveInPreset of the label does not change the result. I tried to activate the breakpoints for writing in the label and for the next/pre functions and apparently it is not "stopped". So I think the error is in the code and not in HISE settings.

                  What David said, and it does work - its worked for a number of years for me.

                  HISE Development for hire.
                  www.channelrobot.com

                  1 Reply Last reply Reply Quote 0
                  • M
                    Mighty23 @d.healey
                    last edited by

                    @d-healey Are you suggesting me to load all the strings of "*.preset" in a vector? Anyway I solved it with a handler, the problem of the next/prev bottuns (panels) that do not react remains.

                    solution for the label

                    const var lblPreset = Content.getComponent("lblPreset");
                    lblPreset.set("text", "init");
                    reg currentPreset;
                    // Preset Handler
                    const uph = Engine.createUserPresetHandler();
                    
                    uph.setPostCallback(function(presetFile)
                    {
                    	currentPreset = presetFile;
                    	lblPreset.set("text", presetFile.toString(presetFile.NoExtension));
                    });
                    

                    2nd part
                    When I put breakpoint in the if condition, I never get a break.

                    pnlNext.setMouseCallback(function(event)
                    {
                        if (event.clicked && !event.mouseUp)
                        {
                            Engine.loadNextUserPreset(true);
                        }
                    });
                    

                    Here is an update version:

                    HiseSnippet 2144.3ocsXstaiiaEVNy3ti8ra2t.6CfZvhEdPBzZY63K6rcpstEe2xwWhi6kExRzxxVlziDkujhAX+QeP5iR+Qef5aPKojuHm3Y1zfNBHwf7bN77wC+3gGRUGjNv0E4vDIV2MK.LQ9xnc1.wSDmnYAYpHQ6XgCvEfgf0XFgMKzbcAFLQh7hqoZDI1KY7+92+QAMaMnN3PWLL8QV5f5VysvG5UsXMKaaEMCPWq4gzNSwJ5HnHxF4QPyKhljYgl9LMSPSMpZmEkIxuQ1vBib5f0v.WlHuT.YroyDzJXf98sbsFYCnM3Y5PFnftUP1FTDS6kQbhksg5tYsKCYTTODCdQPL3ai1vxvZe+GhE+NeArGrHb7HxYGCuWbD73CCujgf2IfTjPP5kAP5ah1Q2wZA9fDJddczJPLvYrFIrGFJA5xb1+5KhJhHZ.wby0lATbHM1aQhrISdIK4eu4swIQdWL6RMGV6Q1p9q2r+A1c1ZBvhn4KPPRiDmuWiyIFtuAG4uDmiIjjyuj8bKnkuXGfIqtmiCwv.0da7e3GX25fxZPCafyVm6sXBwkxPSKHfS2APBh8bANA5tU0DjgLNQQpyTQtXQMa6QDVRhwdPcrEBlHfqpXYCdS7+V7XG4axveP7aiG6zX+fJbXTGriEzLznx0DIulDTbIN6MDz7AJhhELmX+oeJTfbAjN5eznXf3yOJ16tz7XSBBCc5echySkKCGra1Z4E4mv0URfaP664KKnVYhFmbxq64hmVf+J29scM6jRblE2Bc46ja2Gk0qk2coKsQoO2RN0ZbCD3pHlS8lIU.sa0r18b1Uao1JylUnJkpCbZKmLWRttk5TsQ6k41LWZyMVBh15EFLcz80Mq0dhpT0dlYyXfFLMSZ4KpNqcp26oWU91rqSVsvXBNua5vbbqLkxbyTnTujMtqjvzIy61oSmJk7DrydUpl7MunJexE0uMS+Uvr41zOYF8acUrxim6N71MZYuE2teJ9KplJGGWk9SjlMNs5jo2uRTTUccJKkxvb2mtL2FNiRkpITFTsJWo1UE534VuWl5CbupwH2r7p7YjKIr7N4lsawc+HwMfxsq0cZd4kRJJCEK4cmRgp5vlhP0dslhJwMTc3xgkmdWUYN5ZS7fkIe9FII.9FjGlvOOv2LIzrXwiYR0HH2Uhfeb4VMwBCHiAQngi1J5pXvB7kr3IVtT9Pcjtls.xCZ3lH4atjkeGi5faaf7bAOlmCVR3GTJNK4yZLaPGb51V5y.Fre+2y96C5YN09dKdiuhApS+1tOyFoQR8.VZQz5vtsDXGOJxoJ9gCT7ljMHru6cGyw867SPxoxeDK+AFcZZtY.MulDujPWzJ82WPTt+sMAuuv0s6kDmYiRoUo6MbSiYipX5NoRqdMJeyL4w03VJvMmarEDJ2PHy8NpjUjz4RCWYqXKcS9MMSMJ4.wVx0msr7rqd+Jnrr8zYc0ZfkRN9tp8lNVUxwdCnZy7ybclbaZiFfdXI9gN78xVZnSarzpkklHVoqbEXRrlFJW51q5r.gPIGNlKk5HayFy6bc1gk8RIlU4pbotH20qwJoZH7dMsKZ12Cm8tk2VX47LCFropREBEu6zw8K2b5.TiQCRmwTQeImoz01JkFINPVBVlqgMb4Fqxjfic9FccqM550NREtXyZfX4RbsEuiqPsk.dkBq3awwqHUOcCykExOb756KKxsVUuMGmDGTWLe0RkjpyMlekT8YB6o4z0jeMd9mhleDKmNXOMZ9N294mmS8zmfiuykrHXSDFzBlv+Dj3eHN6CEMd7IkQoyNHa+yoNgXZ4NNeJCS.8lOB3bIYWhsGXuhjZ.Ntvhne7BKBW2idvtqPJhfUHmK2ZA.9wpFhY6VRZQHaQEQUreIH+1skfzw1x.3vXQpzHVzYvQcAtXFeHGtzOldUjzvZ6FH+CgQK.NXK5THhDImiNHn1lXQk.tyvnEDWsO4ASjWE31uZWkOZPfsuWeczfzijUQl0G742Uby9F+y+bwI.KyIgp67cEWYYfmruie4uVjPbmuqfyuLZlT44SweUt77LGDj5ARNBgewGCguZKBCCuuMD7HXcgFsvjPCV3Y0wHkn8CmLeWQlPlF6XbTWaz9H09ZbBCkLggByC8V2SD5.DBn19hWoUJQl8QIrQLOymblv7TBWwhtMQPHPVb3wwqmPH4ICjWi2Vle.PTHYGHY6L6RpuyGOeczvcwGNzYEFURODUadHpJtn3V1e.U+qiF.GAGzJRpHlQlg3e7YRWHWpzWkh4QDybYKjJWpGPLoKE96wN6ueVTZJuyo606nsDH3gwH34+HKMI2k6jHudglegqtkbICh2bpFi0rcOnh+ckbNs4zTetOZLIDi.0ORzgtIIKoWU3GY4St2nRFFm1E2.fjK6cZYR.a.9iHSQaIxgDan2fLrrsHqBYVa.DPNj41QS4ldyCBDTvmxuqf12RWWugPAPDA+I+CIRxk9AeW9+X+jt+K99ntkKtDolm8wlsd3xS8ydqBP1MnUpZFFDt4S0tN.MG8IBZNAm.SMKPPCjy134CkbfC8PI6hzORZ7ObzVrW9DNy3v1peYVnsU+CbQlGeAXxUuQFd1Z3iuON8QH1JfPrO5RvzK5RV3waB+HE+e6R5OUH9MQUsv5SNMFO6DXjbh4mCLt8oM9pnxiGCzwG.3KipL3yy6XvDTEoYCMxsnIK1QIa25PRcoCHdGRR9SqkIxYzpNBZmj1lFA5.fF9M9OjusB4osirUH+NgLy0zcP+rdPsJzGO4U98PvDz+cihEsAsMK+iKQYtkg0Oqqe7P8HCS8bML8y0vLOWCu54ZX1mqg4dtFl+W2P5SsUxCilGrsggogpr+wcQhHCoEi3yVY9ujoM1aB
                    

                    Free Party, Free Tekno & Free Software too

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

                      @Mighty23 said in Next/Pre Preset & Label what am I doing wrong?:

                      Are you suggesting me to load all the strings of "*.preset" in a vector

                      Not at all.

                      Set the text of your label to "Preset 1" (or whatever your first preset is called) then save the preset.
                      Now load your second preset and set the label's text to "Preset 2" and save the preset.
                      Do the same for the reset of your presets.

                      Make sure the label is set to saveInPreset=enabled.

                      Now when you load a preset the label will restore its saved value too.

                      The only problem with this is it doesn't work for presets made by the user - but this was Lindon's idea so he can provide the solution to that if needed :beaming_face_with_smiling_eyes:

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

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        Mighty23 @d.healey
                        last edited by

                        @d-healey said in Next/Pre Preset & Label what am I doing wrong?:

                        The only problem with this is it doesn't work for presets made by the user

                        Ok I think I understand and it's not a problem for this implementation. Thanks.

                        Free Party, Free Tekno & Free Software too

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

                        14

                        Online

                        1.7k

                        Users

                        11.9k

                        Topics

                        103.4k

                        Posts