vector knob with steps



  • I am currently looking for a solution that gives "steps" to a vector knob
    I'd like the knob not to rotate between the integers, so for instance 7 steps from -3 to 3
    I cannot find a way to do it... ☹

    HiseSnippet 1348.3ocsW0saaaCElJIJn1aFnEXXWrqH7ECxatNxIooEKaXMwNY0qMIFwsYcnXnfQh1lHRjFRzIwqHOG60YuC6EXOB6EXX6PRQKYGmfBCTGf.yye76b3G443tIh.ZZpHA4T50SFQQNetauIb4vVCILNpSajyW5dFMPJRXjH7K4hywoR5nTz9SFQRSogHGmU+IksNkVCo+7O+39jHBOflKBgNSvBnuhEyj4R697WxhhNjDReMKtf0a+7NABdKQjXLfqUc8QiHAWPFPOlnLaEWjy5GDx.L0SRjzTjyZ6KBmzan3Jtw9yXoryinpEMQ8f.YDenHJTgXkTTqgrnvt17OEAQoad0XUS03KbOhExlJOup7PsBbtGEqGNqbevqYQ34+wCOmBvaMC7djaufD1HYtFE19L2NbIMoOANBJBKisnU9i0caI.K3xFwjKnGl.Kl5g2N990wOw2u1tUJClkJhnMBhnjDOkD0evgSpDeIIA3Cm2kvoQ3e.aiHILTKxqpUY053cfP1zDRcP0VlRU3dDMQxno.Hh+4dmb7Lt8gJkwvmpojKoc3cSnfKU+NrLYLsdlpqXgxgfLH5VQCorACkyJKlwAAOdqoqIWCqwSWShhDW0B9+4.SKETUsUDC9Vc7KDWRSveMtcBYv.FeP0JkuwVH1XCb285b7qqT1BZcRAbD4ohwRFm50eLOPxDbuA0pTNKeTUN..mJjPc6HhbXCo3TRHivS817o5pjxrJkKosjwAyjCYoMFPkd5To1tECzrpgLqfZtHIlDw9cZ3YjnwTvTOqsZAd0vOVsE0vaf8TwxrJGBCZjHTzXu4iz2jkC0wuyFweQcX3oB0l0mBoWnONLR+MUfKoiJTnL2v87u9.+1a0zuoNyAU8gWENEdyw6cM8quse8m4WeSesqEq7Gcxa5cvrU9iDiSo1Sw7RO8RftkW9Y8wFQ.sFNiog0xTXxX62fsHEtCSSgLghiHZJOj34VnyvPhjzPo0Vemq7ZNJtwVOmE.g.oZw6t5r6B301dTN7VAKhIm.wdKee04zbm1vY1bzC6427QLjkJUuLCgJG.uE7Oe0ut6cAmbBP67vLMhaLObKDmaGOMdSsEI8cfDBe.0aQ0zucAac84S45yeGnPQ3V6bvP0lEN8zYFhUq8d0q1euVurRYFOBtCisDIrfaYap2vRDQdAh3QBNT6paHGFVVoohajPGodNvyR7sunNJQI03iQ0M6l+z3.0kirPT3EwZlaM5sdJM+VfxlJ20eERmiER5IbuZk+P4RkuoLddU86uPcYaTDMYgpUcyStOG83iiOmlXqYVCg1Zy12z8t6aVrsdfopUvPAuCmIOYDkeWcSQYkZUe0LTAlJ0cUqX6ppJpHFz6rrqsFizPNeVkG7mn2zoMvWsABhYdWMPVa5kvjOl10kbaSSuPJFosM67E5W+QrsWCUCmuG1vIpuDBeQ24Ch45gYiXY56UTRw9lJ2b.YLIM1NZUo0e3C+q+VY4r8+PNek6c0+CEqm0a8+8+Lef6ZpkqZGz61Co.iJIBGGQjyN+jZnwLE.4XlAUTCi.uiHmTbnxOICU8wB2G41kICFtX7txBvKPG9Ti2rQTq3dP+9P2xbvtl6gu8S+7nHyHNCfGuSXJ54wii6Azp.JfDNvYUWfcVQcUyr1WsVUYflDg5EJ9SlxlV9oRYSqRTLIHQ79.yET0PvOPKAvDW+aAJ4djZMto8doqqeCefiFxdePfpT7X.6K1mMWBe1ZI7Y6kvmmrD9ryR3ySWBed185i5mEs2XoH1bMADz8.86iNNGvI.KSyHQ+O9o+7ZB
    


  • @ustk

    var v = Math.range(this.data.lastValue + normalizedDistance, this.get("min"), this.get("max"));
            
    this.setValue(Math.round(v));
    


  • @d-healey sometimes the solution is right in front of you... 3am here... need to sleep 😬



  • @d-healey @ustk @ulrik

    In this vector knob example I couldn't managed to make

    • Double click to default value
    • Set middle point.
    • Set the knob value with Label value entering

    Any help would be much appreciated!

    HiseSnippet 2566.3oc0Y0sbaabEFT1L0TsJiSRuo8pMblzAzlhBjRJoxdzDIqehUikMGKWmjwiljk.KI2Zvc4.rPRLdzqQupuCsOBc5STeCZOmcAHV.BonpYRlZZaZfc2yY+N+u6g8ij9r3XYjSsFuZ1TlSseS8SlITi2aLkKbNZemZ2oN04IylRiiYAN0pcmuBmnVi65n+7u+xmPCoBeV9PNNuVx8YOiOgqxG8G14q4ggGRCXuhOwZ0aryQ9RwdxPYRDtYdNSo9ukNh8bJtrkp6T6CNHfqjQmnnJVrSs69DYvrSFKOWXV+q4w7AgL7ktNm.LxL7gxv.Dw3nN6MlGFzOSXic.tzOWzuiQz+s0OlGvmOdtJ395IH4TXqOpsz0Aut1vy6lCuZVv6tF38Q0OwOhOUkOChsONczq.clIcV5u8I02SJTLgpyD5aYGFAubD7dzPpOysmmWaB7UqGuxxl+.1jXE4LZD4D9jogLzp2krMQ6bzYDScvvgLekaSyzD87Mynes0H6Ew.8A4qExAjGRdFc.KjvEDofQNmG.LXkk4hPN75vDguhKEj2BqsOUvBcEfsuM4h1jYsIxA+kVqr76VY4FgReZHAPlJRFB6TizGAXkIazffxb.wDA9.qOaUwLTINkEo3rXPUL4OcxKdtKwPy6LKG+zDPpZbyGgXni941VSNlwGMVkNq4E6ooggxy2C9d.3OGCKq4dgb3o1jmJOiEQ9Cj8iniFwEiZZSVL8L1Qh9QL.j.QpnDl8zS3hzcDdpvDzKxlfdAHqWhxcibkTm.ph1IfMjlDpdMMLgApMb41C83xqepkt0WaQ6SUicy3MXm2MHvXcKSZn1jWvznWm1z.tDMe1fvl4lnF2L6SNgWqch7.hWmMs0On14BfZ2hqo2lsrW0LXUyfUkaRsUkZItO3oqHQxDE37ZIzHnwodoYF2L2Z2QsLafEfUi4wXPjaSlfBIGBZ1hr81ZiM4KIiPdYxH55cgm2t6t6la0sE4Qkl4vCSm4w4bdTmgPZ1CBC4SiYtuoaaB727synnZs551Cl5HCidZQVUbyLeZ8Xh8RBhnmmuaaBa2lUtedUugdm1lrtIqQFOwbNBYzDZH+GYAYdptYTqGvsEYUK9gAEsZQVKeUt53gpVkwTlsYDvCt2W38u9GXtoWRCHt85ezZq2pHb.d8RoBPwwfyeGkDVHmJhcAJsUX3RijPY.LY11KHDOHkOWAE6BgW.UuYAk2Z8pR2sVuSsXT9Sf.o4HjWUFAzwHARksEyLqa111t..zpmF1baeap+ewuc2sRcXVvucWus1Zi813yuF+1M.+ktXQIiK0okLa4BIlbknjPUgISYhXa4lF4WgbuZWvPb0BekJTTrIveQtFqnQP3u1CnngTOyKFNDDUvN1qylUxNbk.xd0XnVf.pWCK0qi25OdgU7M5bTaS51wCbi6Ae+fBDVHnA.4wPYcRbRDiLSlPz0Oz.dJ3y9okLglb6c7CYzH2Vk4DTk0OIDUkH8LQPp3RFBoh0i4mDEAIpAnBN1EQNr745fUsUIOLUFrG6AkCRJCkIyEJba+QVjzrmDLuSLgRfTsy.bQMmfPNbQKuMfzwuPTn67AaWFjdc5tfBAqwkxW3vKfUAeYD+Ll.FBhZofJhqhgsGYRLlKIUi45Q5zoCo2C5eTqpsAPYwci7ceisosMYg2zdC4OcZQb2NWJq1IVG.9UHn.y1gPjl6a7tXX5GLTqCDqst9auKnasg9SdZG8d51JefmpyB415z7SLVNdQvNmLgoFKA2GlJIRjF+.dWr.x.YhHHNWa5KAOJeLvBLjE8nPG3zji1JN.EOQyD2RnbAymwWIy.5lDyReA3o1klN.NQFlEgdljGPNmwiPPiPENdVqx06zGAxBJsmCwEzXkhYyLNWlq1vyPsOaHdPXJF4oOtHY.aL8LNjtjb9XvKCiniYgnBhRlJmlLETshDv0p3APNVBBW1YNyOABC7TUfXz.OEMt+7glwfL..xXAVhn0oTRUe3IR0JLSj27j.SvMin4PQZxUMAvsfxpfWp.tka5k4ONGXfddz0hp8JjjJfCQCvsPIIwfECdkNRJfKKfrAxeLcpLRUjEnmEN69YTtMIem+VHQvpc0oqxG76J3WUILhgRPbE+LtZVp1Z.EtHFbqGKEXDULhUMXNwh9swKjciOSyh7KOypkHVPhWq7d9SKfXPsQJbCw62Co8v3l77gZgqUEngcdlifNIrdctU4o7vJPd6xhbgAPsR05.E6h4204.AbWKFrQIvAWdk7DUD3o3lgKHGnsKYQ2X8UYv3K2lHGgKejyX39HjOqYYZWPMdzHPpXVwMZ+p3rTOvvZ8YbQBgvg4JtOcgPnRp4RwHY1uwnlN28awEo4ZbFWy1uEUn4NDgoGr.uHTZJ9JWZBbAen9cDSuz1yOGEkL.7aFRiUrn1jAIJchOyzRQ3rJYFTTkAUKXQ1IexxWldjOEeBLe9nCSAp.udZkxcJ1NZxDFjzPwBm4dkRtFeoxK38LZDKJNs3koODYa7UrW9ZSQfaYmkKKjJL85l3kMM0Ms53wkYUMraPyaEC.267lmzbHOJVgMdAbT6so4euSeYhG0cSnBu4JDlmgnoGg+G8hGoOusc2.vQ.v.hdZybv8HGAkaeiT.HYOCVcwyiKELzpqc6RagiUyjPWtcUfdDr+LW6IvuyHCEZ3eYcFXDdMhTNaKnsLWvPu2yq+YCHjQVH84RE6EB2VK+tkar7kKSJO0vgUNWJyBYQUNM1YynqiPWQxjAnOuQ3xVnSs6VrGh0u5dHZ2hSeiVwZgRwQBt5EvUgtpNK5jpJwdLlhJXoJcGFWIqCinejCOvo1ut9bcriFyyab6+7o637mOZeH8XFm.ll20FXr8Ymw8YldW1n99r32pjScpszbCHL7MYeu.zG09cvVNK6AsuLP8G7WSa3rwi1dDvgFeMH8U6tpgboFLVwFz4T62W+pZPGpzli4eUQLq6okFyeXNle1fPD1oppcdwNyPv72SASF7SUjubGrZhSs6Ueis5rI4ybfLQJ57VF6rXmfue8ikAXQ4hMoFiaRm.75JzFXrUuXY9Y1ct+mkNWeSg6GUuOW4OtZ7tTE3Eby94Fuo+N.qT2zb6bvd25G9s+B2z+6M+miYdlQMT9v51cb+p9kYHX749rPZAE32Tvwy461ohe6liDfuupuLjFUV8emhx7ctYIo9I9sWtdeDTjHu23S+w00p72m.roKSu2.36WGpQ7+Av0zj+QvUYh3X8ommL4D3159L731PQLrFdskvpsl28v2Q.A21JP+x+A9jNY2rJR3jcyl7Wj8XB0OR98oGvDCMumdDPtE5e90F0OFemzMq5e85dc7blvC3euuOlXb0tNNUSSuaAMqeKnYiaAMadKn4yuEz7E2BZ9iWKM3uD8tIJ4Di+OLP+CzmBqVsCL8jGCEb9u.VDD1LA
    


  • @Fortune

    • list itemreset on double click is rather easy:
    if (event.doubleClick){
    
        this.setValue(resetValue);
        this.changed();
    } 
    
    • The middle point (or skew factor), I'm working on this myself, shouldn't be too hard...

    • For entering a value in a label, you'll need a callback for this label, send the value, and call your knob callback so it's updating.



  • @ustk

    For default value, I used that but it doesn't work 😞

    if (event.doubleClick){
    
                var default_value = this.get("defaultValue");
                this.setValue(default_value);
                this.changed();
            }  
    
    HiseSnippet 2600.3oc0Y8+aaabEmxIpKxatHsn+x1OcU.cfJQVlR1NcIFF0N9KsdMNQHNKsEAFYmHOIcKT7DNdz1pA9ei8uw1eBC6un8ev16cGo3QJZWWCzhEkDEw6d269799cO1WJ7YwwBoSsFuZ1TlSseW8SlEoFu2XJOx4n8cpcm5TmmNaJMNlE3Tq1c9ZbhZMtqi9y+4qdJMjF4yxGxw40BtO6Y7IbU9n+0c9VdX3gz.1q3SrndicNxWDsmHTjHwMyyYJ0+czQrmSQxVptSsO5f.tRHOQQUrXmZ28ohfYmLVbdjg9Wyi4CBY3CccNAXjY3CEgAHhwQc1aLOLnelvF6.boetneGin+Y0OlGvmOdtJ395IH4qvVeTaoqCdcsgm2MGd0rf2cMv6SpehujOUkOChsOMczq.clIcVZvmUeOQjhEo5Lg9N1gR3gifmkCo9L2dddsIvWs1ZkkM+ArIwJxYTI4D9jogLzp2krMQ6bzYDScvvgLekaSyzD87MyV+ZqQ1Sx.8A4aiDCHOj7L5.VHgGQDQLx47.fAqrLOJjCONLIxWwEQj2Az1mFwBci.aeaxEsIyZSDC9asVY42uxxMBE9zPBfLkTDB6TizeBvJS1nAAk4.hIB7AnOipXFpDmxjJNKFTES9ym7hm6RLq48FxwOMAjpF27IHF5n+caqIGy3iFqRm07f8zzvPw46AeO.7miAxZtWHG9Uax2HNiII+Qx9R5nQ7nQMsWVL8L1QQ8kL.jvhTxDl8zS3Qo6H7qBSPuHaB5EfrdIJ2MxURcBnJZm.1PZRn50zvDFn1PxsGZqxzO0R25qsn8opwtY7Fry6FDXrtkWZn1jWvznoSaZ.WhlOaPXybSTial8IegWqch7.hWmMs0On14BX0tEoo2lsroZFP0LfpbSpspTKw8AOcEQJRTfyqkPifFm5klYbybqcG0xrAV.VMlGiAQtMYQTH4PPyVjs2VarIeEYDxKSFQWuK771c2c27wcaQdRoYN7vzY1Jmyi5LDRydPXHeZLy8McaSf+lucFEUqUW2dvTGYXzSKxphal4SqsH1jDHommuaaBa2lUtedUugdm1lrtIqQFOwbNQB4DZH+GYAYdptYqVOfaKxpV7CCJZ0hrVNUt53gpnxXJy1LB3A26K892+SL2zKoAD2d8OZs0aUDN.udoPAn3Xv4uiR.DxoQwtvJsUXHoRATF.Sls8BBwCR4yUrhcgvKXUuYAk2Z8pR2sVuSsXT9u.ARyQHupPBqiQBDJaKlYV2rsscA.nUOMr4191q9mie6tON0gYA+1c8d7i2XuMdz032tA3uzEKJYboNsjYKWHwjqDk.pJLYJKJ1VtoR+Jj6U6BFhqV3qTghhMA9Kx0XEUBg+ZOfhFR8LuX3PPTA6XuNaVI6PJAj8pwPsfHndMPpWGu02ZAJ9NcNpsIc63Atw8fuePgEVHnA.4wPYcRbhjQlIRH55GZ.OE7Y+7RlPSt8N9gLpzsUYNAUY8SBQUItdVTPp3RFBoh0i4mHkPhZ.pficQjCjOWGrpsJ4goxf8XOnbPRYnLYtPga6OxjBydRv7NwDJAR0NCvE0bBBwvEs71.RG+BQgtyGrcYP50o6BJDrFWJegCu.VE7gQ7yXQvPPTKETQbULr8HShwbIoZLWORmNcH8dP+iZUsM.JKtqz28M1l11jEdR6Mj+qSKh614RY0Nw5.vuFAEX1NDhzbei2ECS+fgZcfXs00e6cA8wan+jm1QumtsxG3azYgbacZ9IFKGuDwNmLgoFK.2GlJQFkF+.dWr.x.QRTPbt1zW.dT9XfEXHK5QgNvoIGsUb.JdplItkP4BlOiuRlAzMIlk9.vSsKMc.bhLLKB8LAOfbNiKQPiPENdVqx06zGAxBJsmCwEzXkhYyLNWlq1vyPsOaHdPXJF4oOtHY.aL8LNjtjb9XvKCiniYgnBhRlJllLETsQIfqUwCfbr.DtrybleBDF3op.wnAdJZb+4CMiAY..jwBrDQqSojp9vSjpUXlHu4IAlfaFQyghqIW0D.2BJqBdoB3VtoWVgGKeHIEhAhDnRi9rysduskMy+H8.ru8rRajaS6i11zdGmix3L7TfIURp+XZzHVPQjaGik+q4pWvaYz0pa2qPp1.NDSC2kljDC9cvizQhH3JOHafrfSmJjpJjeX18yV41j7c96gzYq1UmzMeveXqx5vEfQLTHkq3mwUyRs4Cnv0Ig6tY4FHQsQ0f4Dq0uMdsxa7IyVje40GrDwBR7Zk2yeZADSMYjB2PrKEPxaL5OOqtV3ZUAZXmm4NqKknoysJ+8GVAxaWVjKL.pUpVGnXWL+FaGDA2XjkFT7JwIJI3o3lgKHSdk9t4WHC83cahbDtBUNigaUQ9hEBQVPMdzHPpXVQ+Z+p3rDnvvZ8YbwEBgCyUbe9BIBJolKEijY+zAe4teKRTwv4r8aQEZtCQX5wivqykVnpRRShB4voPjLMosmeZPJY.32LjFqXx1jAIJc5ayzhnvYUxL3nALnlGSZmBMKqe5AWU7Iv74iNLEnQ3krqTtSw1QSlvfjFJV3L2qTx03KUdAumQiXx3zRvltojswWwdUUdvRYwub9klwqLap9a02lKyp8Y2lo2EM.buyaATygbYrBaeD3n1aSy+du9JQOo6lv4TLWDx7aHZ5I3+Qu3I5aMXm3GGA.CH5osjB2ibDTtIThH.I6YvpKdqBQDCs5lBClFQY0RLzkaWEnGA6Oy0dB76rkgBM7ur9aLBuLTJmsEzVlqIo264UwsADxHKj9bgh8hH2VK+9kar7kKSJO0vgUNWJyBYxJmF6Oq75VnaTxjAnOuQ3xHzo1cK1Iz5WcmPsaTquQqXQnH5nHt5EvE5tp9i5jpJwNklhJfTktOoqj0mTzOxgG3T62VetN1QiY.a0zce9ubz9PpwLt.LLuuSvX6yNi6yLcesQ88YwuSIl5Tao4FOX3axddAte+dX6lk8CseLr5O5um1xbi2r8HfyL9XP5i18ED4Bh+hsXzo1en9U0hQTgMGy+lhXV2UNMl+3bL+rAgHrS6R+NuXmYHX9GofIC9lY+WubGrRhSs6U+Qc6rI4KbfrPJ57ld6rXurue8iEAXA4hsYGiYRm.73JzHarY0XI9Y1u6geQ589MEteR89bk+3pw6RUfWvM6WZ7l9lLVoto874f8t0O76+U90Vbu4uPo4YE0P4iqa+NCtl2sjiy9rPZAE32Uvwy4G1oh29zQQfuupuHjJKq9uSQY9N2rDT+Du8nq2GAEIxGL9zeZcsJ+CI.a5S1GL.990gZD+e.bMulhQv0Xjbr9zySlbhHQ5yviZCEwv520VBqzZd1KqlIbSq.8C+W3S5jcypHgS1MaxeU1iITeo3soGtDCMumdDPtizu.4F0OFelzcdk+5dc7blvC3u02GSLtZWGmpWSuawZV+VrlMtEqYyawZdzsXMe4sXM+oqcM36Re2DkXhw+GFn+A5SgUq1Al2p.FJ37+.nDsHzA
    


  • @Fortune you can set the defaultValue here:

    Content.setPropertiesFromJSON( name, {
            "width": obj.width,
            "height": obj.height,
            "allowCallbacks": "Clicks, Hover & Dragging",
            "saveInPreset": true,
            "min": obj.min,
            "max": obj.max,
            "defaultValue": 50
    


  • Thank you so much guys!!


Log in to reply
 

10
Online

544
Users

2.1k
Topics

16.2k
Posts