HISE Logo Forum
    • Categories
    • Register
    • Login

    How can I improve the tracking when using LAF on a slider?

    Scheduled Pinned Locked Moved General Questions
    11 Posts 3 Posters 137 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.
    • VirtualVirginV
      VirtualVirgin
      last edited by

      The space for the knob here means that it has to truncate the space of the full slider in order to fit into the LAF graphic.
      When the slider is all the way to the left or all the way to the right you can see the difference in the mouse tracking compared to the value:
      Screenshot 2024-12-10 at 3.31.51 PM.png
      Screenshot 2024-12-10 at 3.32.05 PM.png

      It is a small difference but just noticeable to be annoying.
      How can I truncate the space of the slider values detection in order to match the graphic space of the range?

      You can listen to my orchestral mockups here:
      https://www.virtualvirgin.net/

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

        @VirtualVirgin I'm not 100% sure what you're asking but I think adjusting the mouse sensitivity of the knob might be the answer.

        4da893ba-ddb1-488f-8b60-f4ddfdbcf6c4-image.png

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

        VirtualVirginV 1 Reply Last reply Reply Quote 0
        • VirtualVirginV
          VirtualVirgin @d.healey
          last edited by VirtualVirgin

          @d-healey

          I've never gotten the scaleFactor or mouseSensitivity to do anything.

          The tracking I am talking about here is the difference in space between the actual slider width and the LAF represented width. The distance traveled from min to max value on the LAF graphic is less than that of the actual slider, given that the knob has to have a margin to fit inside the slider graphic area (otherwise it will get cut off at min and max):

          Screenshot 2024-12-10 at 6.57.41 PM.png

          So that means the mouse is traveling a larger span than the knob is, so at min value the mouse cursor has to be all the way to the left of the knob, and at the max all the way to the right.

          It's actually not a big deal when the sliders are small, but it is one of those details that will bug me.

          You can listen to my orchestral mockups here:
          https://www.virtualvirgin.net/

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

            @VirtualVirgin said in How can I improve the tracking when using LAF on a slider?:

            actual slider width and the LAF represented width

            Can you share your LAF?

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

            VirtualVirginV 1 Reply Last reply Reply Quote 0
            • VirtualVirginV
              VirtualVirgin @d.healey
              last edited by

              @d-healey said in How can I improve the tracking when using LAF on a slider?:

              @VirtualVirgin said in How can I improve the tracking when using LAF on a slider?:

              actual slider width and the LAF represented width

              Can you share your LAF?

              // Local LAF for horizontal sliders
              const var horizontalSlider = Content.createLocalLookAndFeel();
              	
              // LAF horizontal slider
              horizontalSlider.registerFunction("drawLinearSlider", function(g, obj)
              {
              	var a = obj.area;
              	var thickness = a[3] * 2/20;
              	var knobSize = a[3] * 5/10;
              		
              	g.setColour(obj.bgColour);
              	g.fillRoundedRectangle([knobSize/2, a[3]/2 - thickness/2, a[2]-knobSize, thickness], 2);
              		
              	g.setColour(obj.itemColour2);
              	g.fillRoundedRectangle([knobSize/2, a[3]/2 - thickness/2, (a[2]-knobSize) * obj.valueNormalized, thickness], 2);
              		
              	g.setColour(obj.itemColour1);
              	g.fillEllipse(
              			[(a[2] - knobSize) * obj.valueNormalized, 
              			a[3] /2 - knobSize/2, 
              			knobSize, 
              			knobSize]);
              }); 
              

              You can listen to my orchestral mockups here:
              https://www.virtualvirgin.net/

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

                @VirtualVirgin Looks like the circle goes all the way to the edge, so I don't see anything wrong with it.

                65c08e56-271a-4e6a-9f00-9c9e1a0edc1d-image.png

                a06e5929-a0ec-4359-9206-79656f08442a-image.png

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

                ustkU 2 Replies Last reply Reply Quote 0
                • ustkU
                  ustk @d.healey
                  last edited by

                  @d-healey it's wrong in the way that the potential movement is restricted to width - ellipse's radius which create that mouse tracking issue.
                  So yes, mouse sensitivity is the way to go
                  Another option would be to draw in a panel and use a shorter slider on the top, but that would be two components...

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

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

                    Forgot to mention that mouseSensitivity is working only for rotary sliders, so just change that and the LAF function and it'll work

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

                    d.healeyD VirtualVirginV 2 Replies Last reply Reply Quote 2
                    • d.healeyD
                      d.healey @ustk
                      last edited by

                      @ustk said in How can I improve the tracking when using LAF on a slider?:

                      Forgot to mention that mouseSensitivity is working only for rotary sliders

                      Aha that's the secret sauce!

                      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 @VirtualVirgin
                        last edited by ustk

                        @VirtualVirgin @d-healey Another secret, the mouse sensitivity is calculated on a basis of 250px, so a little trick allows us to automatically predict the sensitivity based on the potential mouvement we need:

                        HiseSnippet 2389.3ocyY07aaibEensoyJkrKR.1BzBTDLPGBn201RhxwIowNwN1VaD1XG0HGuYQPfwXxQRSLEGVxQ1VYQNVf9+Qu2y6+IEn21yEEnG5odnsu2PRQJKE+01lFGDINy6qeyady68FJ9IJtuK2c+HeQP.WQHFS2LT5vihjgDih6NHfSLtgYqA9ptazkI7IM1jX7qLasyVuZ+s.oC8YdaxTrcYG3wiHOYP.KJh6RLLl9aP1MJLCQ+2e+wOg4w7c3YSQH6IEN7mI5ITYy1bsuU34Um4x2UzKG2KsVCGo+FROYe.ZSaVgDvbNj0guCCYaJSxSYQcIFekYk6tLmeuZsccY0p4t7xK+f6+fkdPUV6JKwNn5xOXI6ktm88uWahwra4JTxvVJlB.uwLOQ5NnUW4w9wFXOQj.VV3fpjVfkimttzyEWh3rjM5J7bG5yh.O3L47fSG6A+RysEthgym4Iuol.MSh7NPioFEdSOB7plGdUxAuI.IibPZlXHcKyVNgh.UFEDOW2rgOro1lA6S4gRLujorm0bCIvguZwdrC40CgACkvZ4JUlmBeL2CKVD1qhTziXgzu0WdPU5pzTA6vUaH6EH8gAVkzTKARLp.1mo.1iKPsyTfZn.vekKSelzg4Qe150oskgztxPw6.wfoh7Dt7vnb5MiXKMsblvIjCaJZc8Lo7v08cqy4dVfUzKnEi3pwHdZ0kvr8kg4ZWTl0KUXQN1Br3oYdwPdGQDrGVuuuiRH8sJ4FxN9EREKbPLKklm1NkXm4oxCd6bE+ghEPeDCbJv3EYfC4gwSo5JbNzGBp.RrWW6MzuhZW1tRB0CgUQKw63YDua4pHwBEKzAWcwGwsPkdPm3Av5An0FxK7BYeLg0K3NJleGOt0qS0WY640JrrMcgLHDOq8aVHks4yn8l4o1yMYCKT7dwCs+4YaqQL9bvpEU+QLu97cjg8XdvrtWVLUMCSa44IBh3VfDEds1X.BNWygbqc9Z.meUfTxbU4G8FvnuetGRSNF0S1Oh2h6GIThiDpATQD8.FjtfJ8gfBHe.j4hJaCC45SZ12sRvInjQR5wbJy8s8giYvBGja.UwNT32gJ7URJywA7zHMNsTfDOuIfv2PFD+gZrm7HdOXxRTqt7PdRbM0i62Q0EVO1UnVUAiQ6wB6H7oblSWZDvybykc5zpzoWAPPd0EqPKSs.nF+PL2P5juS3p5ZM2B1.g4lK+A2Krdr+f5o1kRO0lndJld9D726.trm6aoOhV78EomlT61SjFlZKT54wCmHYrZb3YInke+dGvCmmpC2FxHTwYzxXle3xX4qx5DmoMGiR+F9B0yC39enZujjzyXeLInBdRoK38EIE7hynQDPcsqYp2fIZ.muUExEVX6SKbBHtPBWaBV9kMv1ovZ1IqEX8EvCUBz0YrI+Hnio3J3EL2jGcnRFnWrIk6HFe14tbOIyftqMHav2u1wXXErCY7Oggc4hNcU3HKjyPVmMEgb8lN1S3SGVFgb5HWTk+tUK9m+iA+MzUdgglcNns1ayCM2TnkRc+094Aue5ce4e5a9o+xkBd0x64dTN3AXcnm6eXj2yc6q.z9wa+6+q+1e7e8Xx3MsAsKJc66wTi1CI1ocBAzD4abCaNC09f7AY+WqwxKJDukYSgxo6jw3TS.iP7++KvXR63et4VsaC6GY.bFy5u5iPu2yFa+hIQXfMQieijgz5up5HfXm98RtWEDJMMrTfIhiJaBW8QOKDsQRZN23OXlkUNHjG.sjsqroGafUDqWfG+EvRYd5AdRmC0cGLVp7fXj9DjCKmtLeetWzUIi+rWXmW0yduCZ4RA8ErMSEJfCelnC.Z.xguQB5PevTXN23wUvwX3CblxUO3eC+kPr5PGFPrZJwrZFjc3pikgGp20RdFN6GuEEocx629D.9vsDzGkulIT9cwJj087jGiIRDIQ2vdmdtlRuAAck9BGbpXNRg958vlbRwOb20cYBO73Pq9QPIN2m62BXVegYHbzXGoK7zr008UMnICy1bKSrHIDCCMw6LLVdDrlENgd33qJOBCndSuTcrqCfYOc9P3J0PLHPWeq1D.fV3yMcvvx8U3mjQfzuPCIH1Xw7rLITLpRNGXLC5673mjVaL4XQ5Sv2MfVyOIINpIKDLAbil3yeoi.0rsveu3Rtl3dGYa1ICGCMao8eWyLdpQXjjqLLgjkHaWnEStBmKm+4Kxuzp9olCp5mXNH6O0bP1++2AccyHe9I66iyLh24lf2IjuXF0I4XhkFU24d9dl7nRWqBGAUhmBgQAyM7.s2vMcobyLbsOjZWo0VN2p4P25zIt0oRbqyXtPUxVP4BW3JzZtQ6SNEWXz44xzGPU4qLRHq22UHqKzfg.eGuWR1TDE.UDeRenAf3tCxuSOUtc5YuH6zW2LShQXtkhGfEYGN9P9wwajohStr15FY1x9RarIEukeoSNy3faX1HZOjpCzyZhogxVWk6p7QojdOlSnb+j7H3B5yzy.wW95CHEL2FGSqN9s25IbE663LppFSP6qpf0tpBtzUUv6dUEb4qpf26pJ38OeAwWW958UxdwMZAA1M2JNEfwV9XZBciyDdR1g3Viw36gy.4uRRKXLUagNuB9ULR90Y42JOZltE6l9FIHS8Km1TwgzdP2szUD9J5N68HZjJruihNpTXKw5eqjcd9laYMJM7k3g+qbYJ9dMDLOQDW+RuR5CGegXPqfNQT70bUrvQRgaZi8VMi+tkld.zkdgeP+VCeehJeAOhqNs1BDAbOncw7JLDYzZL4SZCWqgHQGelWhPYqb75xnaKkW8uCDL2inIHUOq0ondGpK7Th8vWLnE5AEqV4gTwJ1vGe8WCD0TiIyfs66Pi9MZ4ds3MH0XxEvO..i++LvMKh1FyzM1B.M7Fih15HiVQAL+UZ6IYp4AFxi3IYlsarYCJ+HHzXjcJHCkqG+ovl5VHMqgOcGJeL28K0a8hnraYojTXioef1D7jepMMRRzOPM+u.mU7uaQ9o.fOOU6cwBmiYyVoAHCqCLQOTyDODXugULrbk8gCazixoz2+vhDxXmnt8G9D0I87xNSsmg4JOFlgdT7sqVsDT2pDEt.jzEBcWszK2s9B2uzieTwhqjU35QEozrgzzxnqVpBJbZUzDckVlLgZVUxX5fpx8WiMWszPEWhlWsaxay56oxMU4OR3v9B.jUJm28PH+G.1whlvB
                        

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

                        1 Reply Last reply Reply Quote 1
                        • VirtualVirginV
                          VirtualVirgin @ustk
                          last edited by

                          @ustk said in How can I improve the tracking when using LAF on a slider?:

                          Forgot to mention that mouseSensitivity is working only for rotary sliders, so just change that and the LAF function and it'll work

                          Thanks :)
                          I changed the LAF and the component over to rotary/knob and now the mouseSensitivity does work.
                          Setting it to 0.35 seems to do the job.

                          You can listen to my orchestral mockups here:
                          https://www.virtualvirgin.net/

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

                          9

                          Online

                          1.7k

                          Users

                          11.8k

                          Topics

                          103.1k

                          Posts