HISE Logo Forum
    • Categories
    • Register
    • Login

    Lord of the Knobs :)

    Scheduled Pinned Locked Moved General Questions
    41 Posts 5 Posters 3.2k 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.
    • d.healeyD
      d.healey
      last edited by

      @orange This is probably how I'd do it.

      HiseSnippet 1441.3oc0X80aaaCDWJIZKwadncXOtG37S1MNIR1sqC0qXtwIoHnKIF0coEnnnfVh1lHxjBTTN0qH.8g8Aqej12fsiTxVxIJI1IqCsBv+g2c+N96NRc5nZK3tjvPtvvbsWLNfXX9sVcFyjCZM.SYF6uigYAqiNb2mc3Qa6Xr83.bXHwyvzb4mpzat1JF5q+921F6iYtjTQFFGyotjemNjJSk1t4yn996g8HufNLi02u49tbVKtOOB3xxV1FAX2Sv8IGhUlsjkg4WsqGUxEcjXIIzvbks4di6LfeJK19iogzt9D0.GiNfihEuG22SwXkTiVCn9dsmDygFfWZmlAVNNC7CVGP8nSkmlItiVAJEQ17g4RWE8btgzyLC8VIld20piqfFHS0n312XsOSRD8vvRPVZEaqwRqrpUKNXASt4P7Ij8DvfoHJ+Pa6pHmZ1UZTrPwBvBQnDMBKPcnCC7IpkZziQ58Ea1mH2sWOhqrboTskNOvQf8u9MMPas0HmpnQ0fO0KVXzlBRHQLhTtdL.AoOh1H92gbORir9PfY8IaGIkfjX2ofziKPkovX6FHJ5WQ0geVe8JEK79hEPvUVTul9FvvIwMv7V7gAbFLnbomqrqz5koq6TQQlbvtYnBASJ39sv99cgMjk6JYZjs1tRiBmoHDk4SYDTuHlqjxYHFWLD6Sg7+K3ZSKmJ4XreDoJZHkAegeWFVSjQBlRAZcz4rGcOTYvXzFJ0Jpl6zFE3Aa7RVZNgw6pwlNCzdfWfTL5mdLJh4Q5An8p.KPsEjQPFAcJVvnr9HvWTFUFiJAr5J7TpzcPrSpjJNiEpKWbHAY+nYEptF8Za0hwEyNS4ZUDrI7A1SVLlEry0BdCG8l3KAesqEuSdf6JH3SZjSH5byCwZ12lXrJp9MODs0vm+nr1MOJctEQY8aUPlG33Hbpnyh0lZSZoL0M8OQJEztQRR4LxeI0SNnpN7y584.o5qp5HeAAtCwGOtpNpmf7r7u6OsrTY23JV.rYK.nu4+wyTiaSJTH3cG0aBlISxL0RruzRNb1AOY+Ceqp2fjxjfiRJvlY5Syzy32X8oIj3+r08.WEx8IaFHnp5zibdDpDTTbjix10Nu1ZIZqkq15IZqmm1MfK3AWpY8daAgn9wK4+vhowYoJ48PgKlHpzHSV5PtjbDqbkBuuvZENqv40zqWdpRbjOQjmVUyShq.VYVzvtDwjUgD6fdHlsIEq4qIE23jRFC4r8gmQbT.gcYstXjjIU8XkPJvTotEluKoElN9TOhvf5o5eYZJzPy4r8VZbYNHder1AqZouAv4Vgt14QmDGyG554f9O1eGrDq5jKIe.4n.hPRUoeycHifVji6qaMqcHgmH4AP2tS25AIu4Jk8toS5GCZNd5fObTSiL9Z0XeUbRGjXFwOI.z+2IieLJkwOFkadpp72TAn+p4.Bs+fzN6+vSa1kK.t0g9myjBhk9brGMJLqbykuHytp00LTCkkZ+34nlwwWfZMaFfEv7jcBmDwBfX7mJ3QAodX07xZW0tlLo+W84E2pmka8+zysKddE3TSbuHerb1iRod.WhBnx0LmYQctDVHUNN6cwKv4qrm6yWMuz8tVsUM+lOeWJG9Bau+Ty2jSqVzJ94oojcEq8d0+sGM095NZ5WO8cGLs4EMUlQvk+1CV8i5Ncxtb+xY2aZXjy6Wvb4Yiqkmu35ZdK.W89.8Yg+hYe62aoSreIQX8B+WND9Np5geFP2myijvo2O.CGi.p3acXzvN7HgKAnJCJXqZ1ybIU6LwisUiUDpCg4oG7OvUhRG0XyDkNST9+xbLD6J3uM47HpaMWUKAhal9EAtl0Apwno84oxMCodz255pJ8sAjcxGQsEFQ8EFw8WXDOXgQ7yKLhGtvH9kq.g5cf9jHIeX79cPP6c083ZZtKCC6b0a8M9W.x2t6GA
      

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

      orangeO 1 Reply Last reply Reply Quote 1
      • orangeO
        orange @d.healey
        last edited by orange

        @d-healey Thank you so much David. After selecting a couple of buttons and return to select Range 1 button, the values aren't controlled by knob 1, why is that?

        develop Branch / XCode 13.1
        macOS Monterey / M1 Max

        1 Reply Last reply Reply Quote 0
        • orangeO
          orange
          last edited by

          And also is this possible return the knob value to 0 when a button selected?

          develop Branch / XCode 13.1
          macOS Monterey / M1 Max

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

            Seems like mode != undefined and mode != 0 are equivalent, so I had to use mode !== undefined instead. Added a couple of other things to, including setting the knob to 0.

            HiseSnippet 1491.3oc0X01aaaCDVJIpKwaYncXebefKeRtwIwxtccndAyMuUDzkWPcaZGJJJnknsIhLoGEkS8JBP+v9g0eR6ev1QJY8RrRhc55Pq.xK7t643ycj7zQcrf6RBB3BCykd1nADCyuwp0Hlr218vTlw96XXVx5nC28IGdzVNFaMZ.NHf3YXZN+iU5MWZAC8ye+qag8wLWRpHCiS3TWxuQ6SkoROt4Sn996g8HOi1Oi02q49tb11bedHvk4spZL.6dJtK4Prxr4rLLu0tdTIWzRhkj.CyE1h6MpUO9YrH6OgFPa6STCbLZANJR7dbeOEiURM1tG0263wwbfA3kiSy.yGkA9dqCndzD4oYhaqUfRQjMeXN2UQOmaH8LyPuEhn2crZ4JnCjoZTb6qs1mIIhNXXIHKshr0Xt+XQqs4fEL458wmR1S.CRPX+fpUqfbpUsbikKsbIXgHPhFhEnVz9C7IpkZzlH89h06Rj61oCwUZuRp1UtHvgf8u50MParwPmJng0fepubogqKHADwPhc8H.BRWDsQze6y8HMx5CAl0krUnTBRhbmBRGt.YSgwUafnneAUG9ypqVd4Rua4RH3IKpWQeMX333FX9179C3LXf8JOUY2JqZSW0orhLEfc8.EBlTv82F662F1PZ2VxzH2dqxMJcd9f9fGs+guQcR4RmzDKzIrjQEMQbVh5XUQoLJymxHnNgLWIkyPLtnO1mBK2OiqYlcpjSv9gjJn9TF7K7ayjjHxPASo.sJ5B1itKxFLFslRsZNOunoMbfGrOOdmvoLdaM1zYf1A7Brhh9wM2DEx7Hc.3dkgMDGKHCgjA5LrfQYcQfynLpLBVLZ0SvYToauHuTNUbFKTOt3.Bp5CyKT8L7UUUK9SldRHaEDro+9UGu3mGry0BdMG8glKAesqEuSQfaKH3SaTPH5byCwZU+XhwJn527PrpF9zGk0t4QoyGQTV+iJHKBbTDlH57Hso1jV5Tc1+QRof1NTRryH+ETOYuJ5vOq2mBjpeUQG4yHvcH93QUzQ8XjmW7w+zxf1tQUm.XSVAPKBAU.bJOw4ac0gMyUyccJTn3sG0YrOyR+bEK0od6bY8bEj.Mkhy6ER+IKtBSYbU5LAR5ZVNuGoOcti9mMtK3p.tOY8ABppX+PmGhVApuNzQY6RWTasXs0JTa8Xs0KR6ZvC7FD0rd2MfPrQl.6PtjbDytbo2UZoRmW5hZ5zoHUwIAehnHspN0DWALaVX+1Dw3DWrcPCK46Hpzz0QjazaNyXHmsO7BhiFPRFGEjikT0HI3xJJMnxJUGLEXVpnIaCyH9s4p9EiMGLUpaG6aiaGqkO0iHLndpdwR1cYnSIPat2ZbSwFWlChNCncvhV5CWNInS5xdFPW6hnmo4tdAne996fkXUWow4CHGMfHjT0pq4NjgP69Q8ntj0NjfSk7APm6Is+.IuoJk81jI8CCZNJYv6OpoQFesXjuVdb2vXFwON.z+uSF+XrRF+XX27LUo0DAn+pYOBsauzao79G2rMW.bqE8OykBhj9TrGMLHqby4mjYW05ZFpgxRse3BTy3jInVylCvBXdxNgiiXAPL9iE7vAodXwhxZW0tlLo+W94E2pmkac+zysIu6EbCPtWnOVl+ZgpWdFq.JLl69Wp6XwBnxQYOEOC2Ur5TeWwokt2w5XUi0Ey24Jfuv16O07M9l2KaE8F1Txtf0du7+1qYW85tl8Wk7cPRZLRSkbBt7uDxu+AcWTYWteQ98lFFE7sRLmOebM+zEWWyWz3p2GnuW+WL6a+NKch8KIBqW3+xgv2VUO7y.59Tdnjx5d.FthBTw25vv9s3gBWBPUFTvFlHKy4TsyDMtpZrhPsHLO8f+AdhU5nFaFqzYrx+Wli9XWA+Mw2kQczbQsDHtY5Op4RVGnFiR5ySka5S8nuw0UU5aMH6TLhZyLh5yLh6MyHt+Li3mlYDOXlQ7yWAB02y8QgRd+n86ffi2U2iqo4tLLryUu023ewW0MhQ
            

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

            orangeO 1 Reply Last reply Reply Quote 1
            • ?
              A Former User
              last edited by

              @d.healey Would it be ok to show how to do the three knob version below, but scaling from their current position instead of snapping? Been trying to figure it out but getting absolutely nowhere :/

              HiseSnippet 1242.3oc6X0saZbDEdVvqSgVhhi5CvHeEnj5rfSRqjqUHfsiPw+fJ1tsJJJcX2YgQL6Lq1c1TnQVpuFsW2Whdmej5aP67yBrXiIPUZTsTlKr7YNmyLemyb9aocD2EGGyi.VENcTHFX8E1cFwD8a1GQXfV6ArV2tKE0GzXTHJNF6Arrx+BEOqBqAzq+5YMPTDyEOcK.3bNwEeHIfHlta65ujPoGf7vmRBxH8iq2xkyZxo7DINxa6.BQtCP8vGiThkyVBh88HBdTGARfikxzf6MpSe9OyLxeNIlzkhUDUAcjGjYaPy9DpW6w1XL.XsV6oVbdiE+k1GQ7HS1epkeOMC3TMx5CrxMKjVaFHU8lfzAbpm5.tA3YkAdqYf2F1cbiHghobTX6ysawD3HejzsmEVFYA49i71M4RIXhsBPCvGDIIlnQ4m537P3SbbprSohkJFg6AI5+S9LDKfuEEA8GB2E9pWK20e3qbdsjPGVrUOrXeeerqn7lcHAgTLTELrYEifUeeBVayJW4h5JXGRXCj5MFuRMaxCB4LIQ4MajHDbV0qo2.Fua7XLpILvb9mxKkBXNCinUWrnig43ycqXkHLQDm1DQockgmkU7Z1H6QtXoJUjvnDFF5mvbEDNCZ3U10nxCklEMAWoTw2UpHTtnbWDER7TuD5qXKByCO7D+wZnNUkfl+R7gkSclJK5b0gUtBb2cgNUfO5Qo.KFx3BnDGCvdF8RuM0R9BJuNsc7bgHhzMQfK6LFX6nk6Bi3XZLFd8CfGAKSj30YGHA9sovlhY8D8k67fGTYprYTa7cei27rhZ72FoMlYV.pAYVnpVEuXhWmyNlKvmvJWo36JVn3EEuJGe+4wJ0+QwQyiqpfVzBTqLKInKNZrAkJmLGe1hHqubEQbMAtYDjyZwHhSBwozSKyTcNkY.oQ9xBN4SAn7+D5xM2MsbSGJwCGAHxC4N15zGfF6oksqu81abIXoUt1JnrIiWqbA6zz+YTW2yAbVq8PBjplYp0HsvPbjfnbjV6geqrAjoBZA68vwCD7Ps4llnCrJ8dM3gSuvCqOZBQ8ypGKFodVVWKHHf34Qws4wD0qtRNKsf0tLVfC6P9EMx+8eSs9ymEjs44OdY.ZX1FmwI99D4N11PuF.eBMHVlOD1JP1ODXce6yj4cdXeTBU.iGHOJSt7obcix.tWpA6R5hopW5k1dqkwdcByXu+5GT68CqAdEuWV60dIBqlp7O0KiEC5UWfGJTFrpdpbzkq0VVNb.2KghDyNwfpIWJCkqIaqYU6WlzkMJaX7JLFgybGiXt42KIb2vtMQ31e93M2bvqLa6+Z7lNTVIayzCSA6Z1G7CeDl.KWFrbmIiDqmf4EigRI6LizbSSFqKxsGlhlw+88DOQ+LoC0myryV4WzztU+WNs6hCDT.GdqIv891ZG6sI.qe3u8.36Y2F8+g.huimHHrdGgj8HTMMNNIni7yDcwRnxXxoPk6YkSU32P6nnU.pCl4oI9a4JkYUEsUJypiYBVhL96lMiu1mR4+TJ+mR4uMmx+w3NBPtQ72j9s5pTyOSuiztY5eWqB1GongS93FkuQNZM4Mttpwc9Jo2Y9ZTak0X6UViGuxZ7jUVimtxZ70qrFeyBzP8y687DAOvDuK2n895OpzxZeFRF4pC8A+CP6V2pj
              
              d.healeyD 1 Reply Last reply Reply Quote 0
              • orangeO
                orange @d.healey
                last edited by orange

                @d-healey said in Lord of the Knobs :):

                HiseSnippet 1491.3oc0X01aaaCDVJIpKwaYncXebefKeRtwIwxtccndAyMuUDzkWPcaZGJJJnknsIhLoGEkS8JBP+v9g0eR6ev1QJY8RrRhc55Pq.xK7t643ycj7zQcrf6RBB3BCykd1nADCyuwp0Hlr218vTlw96XXVx5nC28IGdzVNFaMZ.NHf3YXZN+iU5MWZAC8ye+qag8wLWRpHCiS3TWxuQ6SkoROt4Sn996g8HOi1Oi02q49tb11bedHvk4spZL.6dJtK4Prxr4rLLu0tdTIWzRhkj.CyE1h6MpUO9YrH6OgFPa6STCbLZANJR7dbeOEiURM1tG0263wwbfA3kiSy.yGkA9dqCndzD4oYhaqUfRQjMeXN2UQOmaH8LyPuEhn2crZ4JnCjoZTb6qs1mIIhNXXIHKshr0Xt+XQqs4fEL458wmR1S.CRPX+fpUqfbpUsbikKsbIXgHPhFhEnVz9C7IpkZzlH89h06Rj61oCwUZuRp1UtHvgf8u50MParwPmJng0fepubogqKHADwPhc8H.BRWDsQze6y8HMx5CAl0krUnTBRhbmBRGt.YSgwUafnneAUG9ypqVd4Rua4RH3IKpWQeMX333FX9179C3LXf8JOUY2JqZSW0orhLEfc8.EBlTv82F662F1PZ2VxzH2dqxMJcd9f9fGs+guQcR4RmzDKzIrjQEMQbVh5XUQoLJymxHnNgLWIkyPLtnO1mBK2OiqYlcpjSv9gjJn9TF7K7ayjjHxPASo.sJ5B1itKxFLFslRsZNOunoMbfGrOOdmvoLdaM1zYf1A7Brhh9wM2DEx7Hc.3dkgMDGKHCgjA5LrfQYcQfynLpLBVLZ0SvYToauHuTNUbFKTOt3.Bp5CyKT8L7UUUK9SldRHaEDro+9UGu3mGry0BdMG8glKAesqEuSQfaKH3SaTPH5byCwZU+XhwJn527PrpF9zGk0t4QoyGQTV+iJHKBbTDlH57Hso1jV5Tc1+QRof1NTRryH+ETOYuJ5vOq2mBjpeUQG4yHvcH93QUzQ8XjmW7w+zxf1tQUm.XSVAPKBAU.bJOw4ac0gMyUyccJTn3sG0YrOyR+bEK0od6bY8bEj.Mkhy6ER+IKtBSYbU5LAR5ZVNuGoOcti9mMtK3p.tOY8ABppX+PmGhVApuNzQY6RWTasXs0JTa8Xs0KR6ZvC7FD0rd2MfPrQl.6PtjbDytbo2UZoRmW5hZ5zoHUwIAehnHspN0DWALaVX+1Dw3DWrcPCK46Hpzz0QjazaNyXHmsO7BhiFPRFGEjikT0HI3xJJMnxJUGLEXVpnIaCyH9s4p9EiMGLUpaG6aiaGqkO0iHLndpdwR1cYnSIPat2ZbSwFWlChNCncvhV5CWNInS5xdFPW6hnmo4tdAne996fkXUWow4CHGMfHjT0pq4NjgP69Q8ntj0NjfSk7APm6Is+.IuoJk81jI8CCZNJYv6OpoQFesXjuVdb2vXFwON.z+uSF+XrRF+XX27LUo0DAn+pYOBsauzao79G2rMW.bqE8OykBhj9TrGMLHqby4mjYW05ZFpgxRse3BTy3jInVylCvBXdxNgiiXAPL9iE7vAodXwhxZW0tlLo+W94E2pmkac+zysIu6EbCPtWnOVl+ZgpWdFq.JLl69Wp6XwBnxQYOEOC2Ur5TeWwokt2w5XUi0Ey24Jfuv16O07M9l2KaE8F1Txtf0du7+1qYW85tl8Wk7cPRZLRSkbBt7uDxu+AcWTYWteQ98lFFE7sRLmOebM+zEWWyWz3p2GnuW+WL6a+NKch8KIBqW3+xgv2VUO7y.59Tdnjx5d.FthBTw25vv9s3gBWBPUFTvFlHKy4TsyDMtpZrhPsHLO8f+AdhU5nFaFqzYrx+Wli9XWA+Mw2kQczbQsDHtY5Op4RVGnFiR5ySka5S8nuw0UU5aMH6TLhZyLh5yLh6MyHt+Li3mlYDOXlQ7yWAB02y8QgRd+n86ffi2U2iqo4tLLryUu023ewW0MhQ

                Great stuff David. Thank you so so much bro!!! ;) :)

                develop Branch / XCode 13.1
                macOS Monterey / M1 Max

                1 Reply Last reply Reply Quote 1
                • d.healeyD
                  d.healey @A Former User
                  last edited by

                  @duno Something like this

                  HiseSnippet 1361.3oc6Xs0aaaCEVxIpcwatncX+.XySxKWpcVa2.xBharSJBZtXTmltghhNZIZahPQZHQm3ff.zeZ6GxdX+D5K64sCIksjcTbrK1FZ.hdvV7bgmuyEpyQpdnviDEIBsrW3ny6Rrr+FmFmykcp1AS4V6Vyx9dNMY3NVacdWbTDw2x1dtWp3Yuv7V5qOs4VXFl6QRHYYcrf5Q1iFPkITqW4UTFaGrO4HZPJoeZkc8D7pBlnGfi4bJY0E6cBtM4.rRrbN.H11mJEgMjXIIxxd9sD9m2ni3LtQ9ioQzlLhZQYqFvFYHuif4qPrhpU0NTle8A9ajErK0S794Ld+24rO0mNjdRT3gZFnDMRGOryMI3U9yDd1of27F38HmFdgztxDNJr80N6xkjvVXHEjFVFYsxcv8bpJ.I3xUCvmP1IDVLTC2mWpzxnmUpTw0KjuP9PRaDUeGjRhjnSwgnV8Qafd26Aps5+tRuGVnKQVsMQtcqVDOo6hMnAcYDjpvXwhFAKeSBt1hEGyPMk78n7S.8FfWPyphftBNrvcws5IkBd4qnGCGIeEWz7XLqGIZ.XSKwI.2gLzKLNR11QsWFqXDs7jE03HiBBy1OvRJkzzcyPxxIRVdLIGpejxnbYnfUEyXMgiGtJdU2JMHmrTExS4LJmfZ0i6IoBNxvy0ynxxPfBrawB4u.gPExC+fXBOLCQ86O.gqR49j9G1ZfRpMNQvSUqLDnsPtONNelxmJhdxShgXDhKjH.QmP7M5bg4O0ET+.VU6QuPJCoM6IItPcJWDFfYTn.+Hwqw71DWiyqENwLKiVorprtTwA.TCxQi6JcFF4GaCh05RyeDVDAcELdJnbVa4Jl.45fqViBk8gD3YinlD4YDBWqABy8Qd8BANRivI6ZpXfHD4RAiTZcDE8ywI.Fg2V1AnrzRESj8BTpqDxCxDTzi2XCUdTE+O.B6xND89A2fknyvQn.woCxCC2zQWpthCV5DiITsOFNfGlNUjNNtxoPRXYTYHOLxdc40iWUpeFR72bZOqTepDeFocMBSW.j+xrN+bULkPQugKiBnb3Gbe0oJyVERj8B4JFnkPiIO56QtfvPEDvVAlKGZKAGRajC4tEyeQ9ExeY9w4zpUVrhOqwHgYwU0FNbBp4x6EzjDN3ICwxAciFscmyz0tyy7.zTBJ36xoxC6R3WWSPq3m5BsCmKFTvcRcyvGD2LrAi5SBsnPOu66nezskFuoGGwZpUdsQTtxe49GadsJa5GoUdAm3lSia6Oso0a1sFVhUczi8FvC6RBkTUvytF4TXTIS+8EbpQhNQJ5pc23lLP.9Fc39IFbuJmObQk2TIf56yH0EQTUtMQr+T4VSsEVKkEJ0MkE93moExLzkXieqcJaX0thjzWpFEU0NAFj7JCFAimI76wvxQmYSMlQLCEzRObjZ.HN.4ySmplgA4JM0CxMsv8QN0oRuNYi2bYfWnh5+Z7FOVbAGy7aIfcdmc9k+cmAtTVy.mKEVt+vWPQOC4KG.kBNoFpbBumxu960HL7Hwu2R8kcRIQkLdSF64F0wla5bra38MlbgfB3naMEteqiNvdaBv5D+sG.+Pm53uDJHdsnmjxaCy7ERgGV6bPufFvKs6Q.nx4vXx.M6bp1sl0kTqU.pAg6qW72vULyxp01wLKOfo0Tbh+AoOwu10cj+iPuv6Nxe2Q96Nx+k9Q9+OrQ.1KT7g3Oag5n4Woo.9MW+UFWvYe0ZzvA3UwFXzV5G77Ti6rBDcxVi0lYM9gYVimNyZ7rYVimOyZ7iyrF+zDzP8AVeQOoHvTuCDpus9Emrs2ligJWcou0+zC7snG
                  

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

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User
                    last edited by

                    @d-healey said in Lord of the Knobs :):

                    HiseSnippet 1361.3oc6Xs0aaaCEVxIpcwatncX+.XySxKWpcVa2.xBharSJBZtXTmltghhNZIZahPQZHQm3ff.zeZ6GxdX+D5K64sCIksjcTbrK1FZ.hdvV7bgmuyEpyQpdnviDEIBsrW3ny6Rrr+FmFmykcp1AS4V6Vyx9dNMY3NVacdWbTDw2x1dtWp3Yuv7V5qOs4VXFl6QRHYYcrf5Q1iFPkITqW4UTFaGrO4HZPJoeZkc8D7pBlnGfi4bJY0E6cBtM4.rRrbN.H11mJEgMjXIIxxd9sD9m2ni3LtQ9ioQzlLhZQYqFvFYHuif4qPrhpU0NTle8A9ajErK0S794Ld+24rO0mNjdRT3gZFnDMRGOryMI3U9yDd1of27F38HmFdgztxDNJr80N6xkjvVXHEjFVFYsxcv8bpJ.I3xUCvmP1IDVLTC2mWpzxnmUpTw0KjuP9PRaDUeGjRhjnSwgnV8Qafd26Aps5+tRuGVnKQVsMQtcqVDOo6hMnAcYDjpvXwhFAKeSBt1hEGyPMk78n7S.8FfWPyphftBNrvcws5IkBd4qnGCGIeEWz7XLqGIZ.XSKwI.2gLzKLNR11QsWFqXDs7jE03HiBBy1OvRJkzzcyPxxIRVdLIGpejxnbYnfUEyXMgiGtJdU2JMHmrTExS4LJmfZ0i6IoBNxvy0ynxxPfBrawB4u.gPExC+fXBOLCQ86O.gqR49j9G1ZfRpMNQvSUqLDnsPtONNelxmJhdxShgXDhKjH.QmP7M5bg4O0ET+.VU6QuPJCoM6IItPcJWDFfYTn.+Hwqw71DWiyqENwLKiVorprtTwA.TCxQi6JcFF4GaCh05RyeDVDAcELdJnbVa4Jl.45fqViBk8gD3YinlD4YDBWqABy8Qd8BANRivI6ZpXfHD4RAiTZcDE8ywI.Fg2V1AnrzRESj8BTpqDxCxDTzi2XCUdTE+O.B6xND89A2fknyvQn.woCxCC2zQWpthCV5DiITsOFNfGlNUjNNtxoPRXYTYHOLxdc40iWUpeFR72bZOqTepDeFocMBSW.j+xrN+bULkPQugKiBnb3Gbe0oJyVERj8B4JFnkPiIO56QtfvPEDvVAlKGZKAGRajC4tEyeQ9ExeY9w4zpUVrhOqwHgYwU0FNbBp4x6EzjDN3ICwxAciFscmyz0tyy7.zTBJ36xoxC6R3WWSPq3m5BsCmKFTvcRcyvGD2LrAi5SBsnPOu66nezskFuoGGwZpUdsQTtxe49GadsJa5GoUdAm3lSia6Oso0a1sFVhUczi8FvC6RBkTUvytF4TXTIS+8EbpQhNQJ5pc23lLP.9Fc39IFbuJmObQk2TIf56yH0EQTUtMQr+T4VSsEVKkEJ0MkE93moExLzkXieqcJaX0thjzWpFEU0NAFj7JCFAimI76wvxQmYSMlQLCEzRObjZ.HN.4ySmplgA4JM0CxMsv8QN0oRuNYi2bYfWnh5+Z7FOVbAGy7aIfcdmc9k+cmAtTVy.mKEVt+vWPQOC4KG.kBNoFpbBumxu960HL7Hwu2R8kcRIQkLdSF64F0wla5bra38MlbgfB3naMEteqiNvdaBv5D+sG.+Pm53uDJHdsnmjxaCy7ERgGV6bPufFvKs6Q.nx4vXx.M6bp1sl0kTqU.pAg6qW72vULyxp01wLKOfo0Tbh+AoOwu10cj+iPuv6Nxe2Q96Nx+k9Q9+OrQ.1KT7g3Oag5n4Woo.9MW+UFWvYe0ZzvA3UwFXzV5G77Ti6rBDcxVi0lYM9gYVimNyZ7rYVimOyZ7iyrF+zDzP8AVeQOoHvTuCDpus9Emrs2ligJWcou0+zC7snG

                    Thank you David! Much appreciated. They seem to be jittering a little when moving them, an idea why that is?

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @A Former User
                      last edited by

                      @duno Nope, I noticed it too but couldn't figure it out. If I spent more time with it I'd probably solve it but I'm too busy at the moment.

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

                      ? 1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @d.healey
                        last edited by

                        @d-healey No worries! Thanks for that snippet, will see if I can figure it out. Cheers David.

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

                          You simply need to make sure that the actual value update is fired from both callbacks - the knob and the ranges. Move the logic to a separate function and call it from both callbacks.

                          I've implemented this along with a few comments. Also note how I tried to use arrays wherever possible which heavily simplify the logic.

                          Content.makeFrontInterface(700, 120);
                          
                          // Set to true to print the values to the console.
                          const var DBG = false;
                          
                          const var simpleGain = Synth.getEffect("SimpleGain");
                          const var mainKnob = Content.getComponent("MAIN_KNOB");
                          
                          // Store the button references in an array. This will make it
                          // more easy to set the currently used range
                          const var rangeButtons = [Content.getComponent("Range1"),
                                                    Content.getComponent("Range2"),
                                                    Content.getComponent("Range3")];
                          
                          // Store the ranges in a globally accessable array
                          // It is multidimensional which makes the logic pretty easy
                          const var rangeOptions = [ [[0, 50],  [-100, 10], [1, 10]],
                                                     [[0, 200], [-10, 30],  [100, 300]],
                                                     [[0, 100], [-3, 30],   [1, 30]] ];
                          
                          // This will store the currently selected range
                          reg currentRange = 0;
                          
                                                     
                          // Changed the function to take a [min, max] array so 
                          // it's compatible with the new functions below
                          inline function normalisedToRange(normalisedValue, range)
                          {
                              return range[0] + normalisedValue * (range[1] - range[0]);
                          }
                          
                          // This function will be called from both the knob callback
                          // as well the button callbacks to make the module parameters
                          // stay in sync when you change the range
                          inline function updateValuesFromCurrentRange()
                          {
                              // get the range we're currently using
                              local rangesToUse = rangeOptions[currentRange];
                              
                              // grab the current main knob value
                              local value = mainKnob.getValue();
                              
                              // get the values for each parameter
                              // (note how we access the array within the array)
                              local v1 = normalisedToRange(value, rangesToUse[0]);
                              local v2 = normalisedToRange(value, rangesToUse[1]);
                              local v3 = normalisedToRange(value, rangesToUse[2]);
                              
                              if(DBG)
                              {
                                  Console.print("v1: " + v1);
                                  Console.print("v2: " + v2);
                                  Console.print("v3: " + v3);
                                  Console.print("----");    
                              }
                              
                              simpleGain.setAttribute(simpleGain.Width, v1);
                           	simpleGain.setAttribute(simpleGain.Gain, v2);
                          	simpleGain.setAttribute(simpleGain.Delay, v3);
                          }
                                                    
                          inline function setCurrentRange(component, index)
                          {
                              // Update the current range variable
                              // Note how we can use the same callback for every button
                              // and just set the value by checking the index in the
                              // component array
                              currentRange = rangeButtons.indexOf(component);
                              
                              // Update the actual values when the range changes
                              updateValuesFromCurrentRange();
                          }
                          
                          // set the callback for every button
                          for(r in rangeButtons)
                              r.setControlCallback(setCurrentRange);
                          
                          inline function mainKnobCallback(component, value)
                          {
                              // We just call the update method here, since the logic
                              // has been shifted there.
                              updateValuesFromCurrentRange();
                          }
                              
                          mainKnob.setControlCallback(mainKnobCallback);
                          

                          Here's the snippet:

                          HiseSnippet 1980.3oc0Y08aajaDeW6rswpmKxc3d7dfPOzacqhOsR2WnGJhh+HAFo9CD4jb.FFoT6RIwy6RJPx0NpAA3dnu2+g5CG5eI8g9GPe3tmuaH49AkkrpbJthKxFIhCmY3uY3LC4PehfGSjRtvyeiSmNg34+dA8mxTi2cLlx7NXOO+FAGez9O4ni2IxamoSvRIIwy2e8Gqm2ei63Y97edvN3TLKlTSxy64bZL4OSynpZpmz6IzzzGgSHmRyb39S6cPLmsKOkmCXY8f1dSvwWfGQNBqYas.O+e09ITEWzWgUDom+c1gmLs+X9ULK+OmJoCRI5AQd8AEYI+HdZhFwZpd6NlllbRoMK8.sbRsGXcqG3CCNjlPqnW6ItmYBTsDt9C+0VF7hbgW6EBu1KBd9Nv6NV389A8iEzIp5YzX62Db.SQDCwvVfKrr75s1VuWvtbfClZ6L7EjGIfAURD9Esa2BE0o8Ve0lM1rwm7In9DERwQJQNQ++SDTFPXLAcINMmHMyAifsLIOkr8lMzeSAyJP6syiQ+IzPbpjXzV8LRZ1jThNvAXvDks8HhZ+gCIwpvl8qlsoFF0hkAjdBiO.DpzD.w1kmMgyfAgMO7gGbzK0QnMqwOrSPLPbPtRwYHAYHQPf.TIBVdL7qPfmtM5zwTI5JHjDocKHpxHdlVZBVNUanRh0ziyEfFToSQ4fyEIvrQDWbZHriY4j.VOawf8oZthZtUqMaftwOKQzNu8h1s4VmOuCx.aqWAMJkO.mBVHNVGagg.VqixHyAJD3rxxSUPZPFgIobFNEc0XZ7Xi6SZTXJeDMFBYHJ0TiSbNmzwSTzBmD5ryfPuOq84sPnytejINTO3rHyWNeo1pU3NsMB.B2B00pHid51d0jOpP9tkhaVb3qmipbW0gIxJGWc7fjjBgv0wDBxnxYMNdvPaazzRfhYYfZM.6IF0OLmEqcSlbMcrIFcVFk0B7zu5b6tBRxsxQUerDRFylfU5hL.RUiMJgQtpRQRz.RJ+pMaPYoTlyBv3hLbJEBpOkavaXMkmqy2aYMrs1rwqs1.r2lKXVpm09bze.cMIP+dTnc1nyQ2uhQc94abcoUXv3aG.NUH7Cb.CE7Lz.dgUbgN6WOy.3LAivXX2f.R3jgWNuo3jIYVOYFOIGbHSvB3bDnbmzHtTANOHhWNkECwuDFZJOGEa790IEy6oxmj.U2MVnDJglsqylbXs6AVgQEEMLJBv5GKls.BkMxxaJG.dQR3o7mI0AKtIIm4FHoiGsAKkKi.OvMXzTrz5uLUpcWCCAP6k0S0kHLlR3VyoVxLU6GxEPhLjjW4Fq3DBUTDDbLGXiEUMLRZiO0wg.dpHr0L3IB.y7wdW5DwY8HEANNR1YUkL55R1cUkry4y5UnCCgS1JLfWWmJuawQfliHCadYzeD0DxGtLpT7EwTmBl5rLl5VvT2kvz8gOvod5YLr7FWHWed61vYXOToDTHWgD5P+EzD03VknciUPB8+zp.4qB+6QRwSaYrhFuYYU.mOaCT4LIXwkmm0BxcSHuZlDtmYRMmIWvl6Am5P0GjUw4QNQrwvMAfSyMhIgP6ppH1X9KIhoE0WpDGyRPeSNbblzMIAMXJT+fDeAjXanZPHxF7WIakETdppl90Nov8ZDaazxwCqM84RUcrabrJuLOWZKqUWBxVbSZka40w9ppZzUW84l8J.kPg1NcwcQZhPGUnuPhfmtagJBu1tp8JaWequrFUkTN68F6al89WPr6HZXZvq09PPopw7DzX3lesfrA31e0WPoR3wX8AifuRNlNTYO7UnuR6J5nr6FUEUWfEeciwZx5eprWNSGUdLKbqFutwFMdybyLb3hlpXkRIhEMqtCKwRDKjkmMfHJ8nE7AMZLamLMt4NYbazJ1dwSGF4rCXT0wSHUisFYIk1dUFmKoZixkpwXV.a0jlu8IuhKCq6yqfcfUkoMpeaQaT8SoIDgGMQ2CUUmDdFWRQ6oe2OD9Odf2Mo.aHuQA2Mvd69RoC7M81t5R14sVxtyfXSG4dO6f8vJrtKxB+.3alPDJpdW0eOxkP641dJ2HXOh7BEeBzocUWCfSakbUupZQ+tI8lVM3aOtmmittqUWaV18JlQRKL.y2ibziWSG83E16J8oTUDP+sdiIzQiqeUgu8w8FvE.15S+qy7BDVpOEmPyktz8Wedjsr8SGngbg1GcMn4874fVudvklf0wcAKsXA.L9iE77I0Z3tKxqsrHFG2+W+KKr00Eai94Gay+VI2K3P88+wpYeFG8ESJl.JHNy6kneSDnwV0T2Lo+meamE8zSqJbe+fSnp3wKFuqs.7Bg2+bi2hWJay.6i2TC16D7nu9s8Ywhd6dVrec06VVcoSCTlgvM7xk+quO7e+.yMTKH7W96+y606EyFa965sf21ze8Ysq0WM65+xKPt73.yKm8NSb6GDXbruKAXyF+6N.9d55g+B.tOkmqf1dNDCs+AU7CNJOqOOWDSzOmETvVpuOyZ5qyXG2t79M8IrDyfeD9TLYjdrewjQkS9+k0HCGK3uL1dmKcp4cMT.6lY9iPrQvg5wnp62o8MYzD5Kii0k9tO3cVrDct0Rz8VKwmdqk3yt0R742ZI9hasDe4RjP+2e4g4JdlMdGHbx9l6356uOS2juIz26mPV4e3T
                          
                          orangeO 1 Reply Last reply Reply Quote 3
                          • orangeO
                            orange @Christoph Hart
                            last edited by

                            @christoph-hart That's what I am exatcly looking for, thank you so much bro :)

                            develop Branch / XCode 13.1
                            macOS Monterey / M1 Max

                            DanHD 1 Reply Last reply Reply Quote 1
                            • DanHD
                              DanH @orange
                              last edited by

                              @orange @d-healey Hi guys, I'm attempting a 'One Knob' plugin too - tried the link sliders method first (https://docs.hise.audio/tutorials/recipes/ui/general.html#link-sliders) but the ranges were totally out of whack with each other and so moved onto the script that @Christoph-Hart first posted above. Now I have the ranges spot on, but the individual knobs are no longer linked to the fx parameters I wanted, even though they have been set correctly in the Prop Editor. Snippet below:

                              HiseSnippet 1551.3oc4Y0sSabDEdVvCAaJQIUUp2zKVwUl1DjM+DpTZjMXrCVAHtXBoQUQoCqGfQY2Yb2crabRiTdD5s4lpp1mfdYuKR8UnuA8pdUyaP6YlcWuiWLfqiHUQYEBwd9YNemelyblkF9BGZPfvGYkcudsoHqO.2rGWdbkiILNp9FHqKi2lDHo91gjVuWaRP.sExxZxaqHXkMCR+75RqSbIbGZBIDZeAygtEyiISn1n7cXtt0Hsn6w7Ljd4x0cD7JBWQG.OShKfZSbdL4H5NDkXSfQVSUsESJ7aJIRZ.xJy5hV8Zdr363gxuOKfcfKU8RQTSXgBIWS31RgXEUTkiYtsZD62AHXUZjDElLLJ7Q3sYsX8omDMthlgchFlwCqINK3UzDdEFc3YY.uLgv6p3lN9r1xDNJrMCtNGRTGRfTfIrBkEMwpYvUDfDb4BdjGSq4CuzWi72nPgqYuRgByeyYyMaNHQDHs6R7s2pl8sri06HprhvqsfCujetspMmR5DY27zkcyzx1bs8t2tqsW86tyopShHoz8902XuMOU0zbSowtU2u5tqeppDxdtz9d0urHnhdCgRgpGdH0AjFHGIJi6x3T6C6vcjLA2lK78HtLHvumXWB+HZ9DJ6Sb6PulsGiC+h7j4mM2ylMmM73Skc74JF1elcJ4s+T67fv1WWwVYymOLyJ3auV8cTtluvMuSrecMvIf0HzRYcENDW6tJO5jvraH3fRfUUVIV3E+uH7RmivEMEd4yR3hpZwhqVvTgUNmUuvBEWQKO7yV0VHfJ0Av7cCM6lljVTSJo7xf0RZV5RHCpKqoFVkXPN1fOWWLL7RKUlYt4UJEkepPbcO.Zrkefr172zHatiPRuKO+74dVtr4ddN6zrN7vgxKZobo9Ckspaq+YoXddGuCn9wkMwBBscFru1LmdeMy1tNgwCCAE75bl7tsoQua14K1qi4V.02YMIk3ilT0t1PDKgzIarhhxWPK1ohDGDUpavd4nFrMcYsn9HFfwL3spgzAljSr9jxnQRyMGSMgCi6WildEdcoQYEtDVWJmR4xzQx7SiCq3SzdI8yuORldJrp7dHv9d02fHIpS1hx.PVoM0WxT0VVaP6BiLDdNWV7FzfGKEs0onnsTfSc1IomfrvVWGrUO0e7EvezNNsWGjAig92vnE9vTEvge00PUOJCznMUFZjL4lZSFq2cJ2q+Ku5gkSslm.IKNTjXZ5oFsxiSABu3nz1DzYPaNC99T4ZdhNp8BFFN64VUkXyWrlgM+F9f17R3aCUBoh4vZvZIOF0hdHoiaXG0DW3ACD3f5UOyQMev.4loO+BXCfV2.n+feYVv1TIoQLxfBvIF.6YiVhTnOmJlsEsK0MtpwXqQejk471bnKUeXbo5OZolN9DS6AybJZ0wkHGbPTUgRDCnK9.S7olpiGvj8L22cgLc5nB2qhavjNGOb7NwPvKzd3hFuQy5OKNbttDvlAW6qF2A6G98NF14OV3Fm31WYwU532kV8a03HrSkIP1oiWMlKTCFnpWTkKqS3sJXF1TDJFQ3Ue+O+0kUDVbvqowasTZBKmP3Jksl7BveQ6J5HY7i1lH8YpBevYZBW0ygBQdNm5p8oITGLG9dA06J.0jp8Qr0+.OQLKFG.TLKFyDMJgzEeSBon+3W902aCoWJLjNCtIAtxhZGdTPUclx.W4LjuZedXL3E2J2eWJ4XFifaCe5feGAfjHPll1ab7aTua8Pae8w3DOx9++ltukS6S2+SCw7Z6FltTQk3y0O8uIDBsA0kLPa8vS8MNJeHe0n57tv7fMDtD+zGJbgTFjYjOES4d1uybp6Gh0g+2k.rt73cG.eEbCx6gcDhNa8xQcD1EFD1+.c.IYdYyHwtBgWS1Si2j+Su7k+UoMHdsAHGQp7RK8mk5OSsYCD+don85Rl8PzqUMeJ8oTHMXXgeqzERyh2Jg52F1vi33KdjS3E4UcAmVSA7at96smEus5c6hwWgGiKrPAjGqE6QNNpojuNDeFtNKNF5rzXnyxigNqLF5biwPmUGCc97yTG0+5g05HEdgsZ.BMpp+TJVVU4DnRVuWC8uPnuns0

                              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                              https://dhplugins.com/ | https://dcbreaks.com/
                              London, UK

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

                                You need to call the .changed() function for each knob after you've set its value.

                                	LF.changed();
                                	HF.changed();
                                	SATURATION.changed();
                                	WIDTH.changed();
                                	REVERB.changed();
                                

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

                                DanHD 1 Reply Last reply Reply Quote 0
                                • DanHD
                                  DanH @d.healey
                                  last edited by

                                  @d-healey 🙌 :folded_hands:

                                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                  https://dhplugins.com/ | https://dcbreaks.com/
                                  London, UK

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

                                  24

                                  Online

                                  1.8k

                                  Users

                                  12.0k

                                  Topics

                                  104.4k

                                  Posts