HISE Logo Forum
    • Categories
    • Register
    • Login

    Recall previous parameter value

    Scheduled Pinned Locked Moved Scripting
    12 Posts 3 Posters 855 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.
    • ustkU
      ustk
      last edited by

      Hi all,

      I am a new Hise user for a few weeks.
      here's my first (beginner) question

      I made a panel responding to mouse dragging for setting a parameter (Q in the EQ)
      my interface requires a panel, not a knob (which would have been easier...)

      everything is working great, except that I don't understand how to recall the last setting.
      currently, each time you set the parameter, it begins again from 1 (which is the middle/default value)

      I know it should be easy and has something to do with storing the last value for reference, but I just don't understand how to handle it...

      Any help much appreciated!
      Thanks a lot, guys!

      reg Q = 1;          // initialise Q to middle position
      reg Qlabel = "";    // var for Q label display
      
      Panel2.setMouseCallback(function(event){
          
          // Q setting
          if (event.dragY && event.altDown){
              
              // If mouse in a 200 Y frame
              if (event.dragY >= -100 && envent.dragY <= 100){    
                  
                  //  ----------Ratio--------------   ----------Log scale for the 200 frame--------------
                  Q = ((8 - 0.1) / Math.log10(200)) * (Math.log10(200) - (Math.log10(event.dragY + 100)));
              };
              
              // Limits
              if (event.dragY < -100 || Q > 8){
                  Q = 8;
              };
                  
              if (event.dragY > 100 || Q < 0.1){
                  Q = 0.1;
              };
              
              // Set EQ
              ParametriqEQ1.setAttribute(2, Q);
              
              // Dispaly the rounded Q value
              Qlabel = Engine.doubleToString(Q, 1);
              Label1.set("text", Qlabel);
          }
          
          // On release, display no text
          if (event.mouseUp){
              Label1.set("text", "");
          }
          
      });
      

      Can't help pressing F5 in the forum...

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

        You need to enable the SaveInPreset button for the panel.

        Screenshot from 2019-01-06 18-53-04.png

        Why can't you use a knob for this btw?

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

        1 Reply Last reply Reply Quote 0
        • ustkU
          ustk
          last edited by

          Hi
          Thanks!

          But it doesn't work... My code makes the value always beginning at one when dragging up or down...

          I can't use a knob because the panel is also draggable in the whole project, and as far as I knoob (triple play word haha), a knob doesn't allow mouse callbacks and/or dragging...?

          This is why I try to handle everything within the script

          Can't help pressing F5 in the forum...

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

            @ustk A knob only responds to mouse callbacks, dragging, and double click. You handle it in either the on control callback or by using the .setControlCallback() of the knob and passing a custom inline function.

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

            1 Reply Last reply Reply Quote 0
            • ustkU
              ustk
              last edited by

              Maybe my explanation wasn't accurate, I need to drag the panel accross the interface (not just allow dragging onto it)
              I tried with a knob with no success. Of course the knob responds to mouse drag, but can't move accross the interface.
              My panel will just be a dot of 4/6 pixel in the end, draggable in the interface and responding to keyboard event (at this moment it stops the panel dragging and change the Q)
              so no possibility to embed a knob inside either.
              Everything seems to work fine except the value is not memorized

              Sorry for my bad english

              Can't help pressing F5 in the forum...

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

                @ustk I think I understand now, so you are trying to make it seem like an interactive EQ display. I'm not 100% sure what the problem is, can you make a small demonstration project and post it as a HISE snippet so that I can test?

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

                1 Reply Last reply Reply Quote 1
                • ustkU
                  ustk
                  last edited by

                  Yes it is exactly that, but as I am currently rewriting everything (my code is working be so badly done)
                  I previously tried with the allowDragging property, but it seems not possible to stop the dragging "on the fly" (I would have prefered as the inbuilt dragging is much smoother than my method)

                  here's the snippet just for the Q thing

                  HiseSnippet 1696.3ocwX0sSabDEdVfMJ1sHkD0KZ6USckRsarAamPJpjeHXLoVEB1XRJHUojw6N1dTFOiytig3lvM8IoW2a6iPusuC8Unu.somY1c8tFL1PkR5hDZ2YNm4722b9w08jNTeeoGxJ09C6SQVercygBU2JcILAp1lHqaXqn9JrqGoSGlnCtZCzFC6S78otHKq4erlNqTKfLO+0C2fvIBGZ7RHzyjLG51rdLU7p0W+6Yb9VDW59rdIn9NqWyQJpH4xAfNMucQTehyKIcnOgnIaNaj0Up5xTRulJBnXHqE1P5NrYW4wh.5eFym0hS0eTB0DNnfk2Rxc0ZrdUTktLta8Ha2GAmR8XOw7AdhOwdGlKaz5wdjqY1.GyQR+g0bSS8JkT8JdwUOqDp2BAp20sa53w5qh2QqaejcMgh50l.gfjpU.sn49yqZWQBTHTK0i7R5VdvGi3H6cKVLOdkhEys1hoWLMDHf.+QDObchG39UdrWUsQI78wFHxRcnppsaScTYyDS.fOJk4r7KnbMiQxFXshrWeo.9PysdaCWw7rMo0z3IX6PI4Q6f6K8O.nN3rzD+XtrEgWW5yTLo3frZRCI7voP3g.ggGYCfrRqgG8r7xXl.HhvY9TXWkD2i45xo5yzvbHebsxALmIyZg7osn1ROfof8bY984jgZkOTQ7opcjC7oUHbdK.yms8.gi9LyROBr3buYwz5yJ3+vItYzExiYptXeS7MOtE0g.GBtFHAWwWovsYBWLAeLYnVcAwR.zGFjg73QmPeOYepmZHVJvptTba9PiTXswABeI8se7MuI9KB9zQ4w2DfzQJ0GDUJVTwdrnfVVSz+V3Xs8f7wzOgGCHHI8GNc5KUbV6qgWSgf3MCPtyP6wEv2dkKqIfKTdF7r5LLixq.fe8KmrVR31HPWCLn1JH.s3D.HGpQHmO.YLnRs13dZzNbgBfBkKVDeHtsNGRLUm9vev8wEJADpEhHw52CtjBordSfLF27.IgKL5YOB3sKL1CN49aK6.nVB.F0WU0vNshYTqw4ZbgnSSjM6pPHq3RkxgWFuCAxNxkcJULKb.4xg+Zb1SsFPbxkRZm2xXN4RhmNYsywMZpp5e99r6E3xd6aAk7A3USFNhz7UmobNSf.O5LumwjmvoBKeQz+lTETvH4M6DEZzWQdjB9n0.EMa473F4NuyYyfzolXlmbf.pkBpwQD9fD.pQokqJfbLzkbkCfDO6KaBhPzIai73RIEP78zrYTzWqxjGmow2hy.AnfSJ5pxDuorq.6Q4ThOMO1G5Gf5aTt95TWiJWfIPlvvRAXgDqEyouYYtl7z9IcxWnRciklX5k6ltMmI1NSeRP81f+hJPA4nehTQ2UjMW52jNU5SNyNsaOoszE18jbN0aR6p6KzaJrkULnWKpW9fnbDcP6Qi2+k842+Ux1CcBZxHAgRQMnV+t8ohyqqLTXmI59yBUJfTko6rEC6Ny3PQLnGrqZaduLxnuHqA1Ev6CHBWoBy7C5uVWHLcA7OzkJvU1eus0azGfNPSbIPO.bpuuA5XpYF1WQXh4z6J3A2CZf6R8.zGfq5.sttbaO5qPnmVaShhDoxf1WOnRKS6rr1jdDzqdPClor2j5+RPVfQMpwKjU5wMPCtJz.CvXnWCdcKrEBMT+xuCNJidF0XCHmO2tBmAukG+cxind3aNp0AzwLWUWMeoA95RYc5ph9pUmn4BRcED5cuSOu.SQ6MsUKmbYTByH0LhSglweiBMieEdwmbDslnNDPnJcS0T.oQLfIHrC2VLymLx.pOlA7YmR9omIN40ilJ5EtqOLdDoUWOPV++.f5MfqXbH8IXzyMxVugURa8GMgbVGQOiodEaNssB0FvaMY+Thg8JtN5ry0.SWIcGvIpwG4ROmY3FPZfwlsQO+h.xlML4bnuWlC6hptW2tNS4zcx56bSPeg6iuu02voZWzNXlsXkcA6sN3+5HrSdB6hyZD1TQYXpLv6HZ0WEFiGeJxwzomLn2VLNLmpNktEf1Pa.32hgdvWvXe455EJE4R+ze6mMKTNbgeg+G+yC0Kb6w+wJDt2Idgqst07ia5yewL8I342SNPeaB5wyioyj.FPSHejCEb7B3RnwNlSmSH36h5u0JQSpwtrsdG7DtYoHiVuYonM+fHidDGO4ycBJuoiiW0rBX2ByuHSJ6czeiKEUWS6OfohYO2wQisJ.3xIyQ4KMG29Rywctzbrxkli6do43atzbr5T3P+iQ8nAJYufLMvB0qZpwaYUUnKHXR5f9W.OfbP0A
                  

                  Can't help pressing F5 in the forum...

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

                    I think something like this is close to what you need. It stores the previous Y value and uses it in the next calculation. I tidied the code a little too.

                    HiseSnippet 1677.3ocwX0saaaCElJIpn1aAncXWrsq37.5rWsSjca5BVvvbiiSWvRZrqSaStpkVh1lnzjNRzI0qnX.6IXWuK2qPew1aP2gTRVRItNwCXcJ.Ah7bN57C+34G2xW5RCBj9HqbGMYDEY8o1clHTCZLfvDn81AY8Y1JZfB64S52mI5ia1Fs8jQjf.pGxxZ4Go4yJ2JHyye+SaS3DgKMYKD5YRlKce1PlJY2V0+EFmuKwidDaXJtue88bkhFRtbLXSKa6fFQbeEoO8wDMaKYirtQSOlR52QQ.CCYsx1RuIcFHOWDx+yXArtbpdQUTG3CEt8tRtm1h06hZLfw8ZE66AH3qzJIRrbXj3ysOf4wlteRD4VFB3DIRGOrVZdlW0+klmUJyakPy611cb8YiTITz11mXumPQ86QfifzlUHunk9iaZ2PBbHTqMj7J5t9vhoRT7ANNkwa33TZqUyuZd3f.N3Oi3iaQ7gvuxmcZy1Uw+H1.QVqOU0rWOpqpXgDF.7Q0BWVdAkqELV2fnMjCGIEvBszZxFoRjYeR24ISH4HM4S6iGICNF3N7aoY9QbYWBukLfoXRwwE0rFw3IygwS.Fi9jsA1ptEd5y5qiYBfIBmEPApJIdHyyiS0eSivQxw0FGHbgBaEIm1i5I8AgBo4wBFwISzFejg3QTj03j.k13b1JEk.p5.43.ZCBm2EtMTr2XgqVaEomAwhRuY07ZsD9ePW6DeU8blZ.NvbxWF2k5RfOBdOP2dhuUg6wDdXB9bxDsi.FDAvkXPGxym9EF4KGQ8USvRAVMfh6wmXzBqGNT4qoyKfuycvec3RWkOeG.rGaTeTLoDUkDwhONKZvE2EmXsGWNg+Y7XfGo4+j4yeUmqhtF3MGFRHFhouBqGWAeuMVTW.Wo1UHylWgaTaC3Zg9k2lxalB4ZiAiVAGOqNC3wIkdCvBfQtLDIMHwTg.GZt9DQeZBQ8smIv0hCHPZGCshpArfT2Yta5yKbkp5DYUcxD5y.HwUl97DBDoqj4Aml99x9.hk..Q8EXMjqliCtmNgWVoRTfNwQwhaBGUNqUsDd8PCmK6W0oHHboR3uCW7B6ALmdqIvAn1AJMGzSVElJ3ztrVwkwaNa++BwNP1IaAAkNPYKJDmOivGS+.wsNTEjgO8EtTUFzH2GpfEcGqnEqUF29CF+2IL+mIb5KGKfhefSbAMOMOZSAb0mtlmbLjO3HYGPEh9ZurZZEjb8oXAE80pBkwEZ+C3BPjL7KEifSmubJD9PA1mxoj.ZYbfNRDXLtQ5LJSyuiIPBpnb2XgDqUyEg7C04pe5nzY.uV0lxb6c90mluOWHwOy+1vBjg+EW2.Rc9XohdnnXo7uIet7u8RT50aVjzUh8kbN0eVT0Mx4OGwJJFOrK0ub3obLeP+LYaXx950vjaXWAoXTJ1CJNe3Hp3C0FEJpUBcCUQFEvpxzN0pQsSYBnHFzzzMsMuWCYrWj0X6J3i.DgmTgYAgMDqqOkuB94CnBbiidx9ZBi.nCz0UJzC.mFEXfNlRYQMBDkwL+gBd38f13ATe.8A3p9Pulq2ymdJB8z81AtoFaxf02Jr.HSGrr1gdFzbcXGg4r2gF7JPWfSMsSIjU9rNnAWE4fgXLzqgnt0eAwmI5WdG7hwNi62.zyWY2fyf2Ji+Y4YTe7clVQGcNySMPKWdPtATV+Ap3Uc6G2HetafPu+85F7YJ5v4saszaiR4F4thyoH232hci+DdIfbFcOQK3.gpzcASAjFw.lfic31hYfhoNPqLNvWdA8m+JwIud5XLuzq9jjYZ1rdnt9+A.MbLWw3P5SvoWJxWirL7o0i82Xa840gla6KFZb4aXyo8Tnd.tqC6WSMklSczkGHAFKR5MlSTYmUROfXDAHcPlgRzCdHfrZSRO.4BL.ky0d.pqq4da6VLk6fYauKMC6EtW9es8FMN5p1gCakXrqXu6wejm8LWbllFi8Oi17zny3ri+kwld73g6x3v.l5T6VVfqsMfichhfujw9l55MpFGR+h286lMpkDiwlMtW1ekAg28S13V0sVNqqu70y0mQj+Ixw5aUP2T9LcFEvA5.4kboPfW.WFM9wR5bCgqczq0FQGpwursdO7DQrZrSqIVMl3GEcLj35KegaXYN843MM6.9sv7Sojy9.8Zb035a53ALNK6EttZrUE.LLaIpsvRbuEVh6uvRrwBKwCVXI99EVhMmiD5eEoGNVIGFloA1nUSSsdKqlBcgASRGz+fBzeCr
                    

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

                    1 Reply Last reply Reply Quote 1
                    • ustkU
                      ustk
                      last edited by

                      Marvellous it's exactly what I needed!
                      Tomorrow I'll tweak it a bit, because somewhere, the movement is shorter/less precise, but that shouldn't be hard to find I guess

                      Thanks!

                      Can't help pressing F5 in the forum...

                      1 Reply Last reply Reply Quote 1
                      • ustkU
                        ustk
                        last edited by

                        Ok so I just checked, and now there's the same problem I had when trying to use the last value

                        when you're dragging in the upper part, the value is increasing. But when you go down, it's increasing as well instead of decreasing. Then when you pass the middle (dragging in the lower part) everything is back to normal.

                        this is due by the fact we're adding the last value to the Y offset, which is always positive in the top, and negative in the bottom part.

                        What we need I think (not sure though) is the information of the mouse going up or down. I worked on that these last days but couldn't figure out this behavior.

                        Can't help pressing F5 in the forum...

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

                          Check out all properties of the event callback by typing event. and press escape. You‘ll find event.clicked and event.mouseUp.

                          1 Reply Last reply Reply Quote 0
                          • ustkU
                            ustk
                            last edited by

                            Hi Christoph thank you for replying

                            I am already using these events and it's working fine, the problem I have is either the last value is not stored, or if stored the behaviour is strange

                            Can't help pressing F5 in the forum...

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

                            41

                            Online

                            1.7k

                            Users

                            11.7k

                            Topics

                            101.9k

                            Posts