Nice little practice....
086de2fa-536d-4bd3-9eae-774dc04206b9-image.png
HiseSnippet 4354.3oc0aszbiakcFTpQaKY2YFWyLUkkHJUMCUfLMAeAfxSmVuaIqWrEYqGcWc0CHvkjnEH.Z.PIQE6UYyrKqSVkE4GP1lc9OvrZ9Ujc9ePx4buW.BHBvtGEaWYnKKyyEm64dNemuy4BPbc6.OSRXnWfPok6NwmHT5yE6LwMZ3VCMrcE1eagR+MhGYDFQBjXCs4DeivPhkPoRK9bbfRK8HA5me3YaZ3X3ZRlNjfvYd1ljCsGYGMcz1qefsiytFVjt1iRoci022zycKOGuwf+rnXUAeCyqLFPN1.UaAQg8LBGJT5ePrkUeiVVpMqpPpqYoVSQsodC0VUq12RSQsmZu5FVFsTqJT5w6XYG4EzIxHhDJT5Qa5YMoyPuabYKvY1g18bHnfhPGXkYCuqmiEFh3nBaMz1wpcLPEJ.Vo8TXaQFr8qEOx1xNY7ov2ujdAooyHM.VZgrt2hYbOkztW0TtWNtToTtjHyk9BwNlA19QSuB5Oel39tP1ruAjmR6JGOdTWCXs.uPrzBP1fMYgE15Iha4ASwMpxHiqH6F.BIlnLf4qIA+Y0ud4k+puRhMIWOKhD0ZKCIzvHoqMB3WZ2KTjdpDkhUY.IhpThCVdElRRfVqvs3S+K7yOayIUnEAgTLFYXYQCpxqDsxZR.3fPSTkPRT4Utw1JZ3Jw3EevgD6ACQcqyPQlYiParsQjAX5cbGX6RpXFP.VxFtVmRFXiUjci0orBGrNz18JongD1zkrcoBubeoHO52rPC506cDyHX4CH8Ai3QsPx5kukXyI1LgSyxrKW9lg1lCkrCkfPB0hbK3etFNRgNdQqtbh0q3.1sqW4DxPBInb0U++8YbjfCw2XeJJ3a3Rbj5aGDFgWo6PH7uAZrI0iHMFppjLjfbYTfGfBioUKvULMfKQm9HO7alFNN8ftbRCrulHMwarT+wfIhmngqEfkDywQ1dtR88BjHF.PylK4ZfvkhF5mkF1F8uxq3OkF5mGMzOWZHeTv67tYKtOFBWckM.ua5.S0Lz3Zx9tsCHfDnWTvXxpesDfK2PjtwvkxJv9GHV.7owALxHfY9jfPjOCwBhi1t1Q1FN12wfIif.iIzHODZTZ6N.r10LlLrz3+oBcfmJ8527.4OrP3HDSiirx8G6ZhXdYJHu5x+SKuDXZH57bX4hujR0AzA1YD8tQdPXMHvvcriQfczjkWBSIvD.Oq0WyjtA9dDPSPR+4XRn7p7qLL0U1ilInWhtnGkfZ2P9cveM8tlPAhDRHUsKAtiogqjkmjcjTuIRCMtNVKSuQ9dtPfHYzG2JOovdModiinqrzfwFf2GQ.O1NhZw8A0cB8Pq55EgzZFUDn1..f4o0jfKeCljXLYb8fEGtJ.aASxvSWhFe.n8pCgA.h4FN2XLI7D2td9qjDrmGyVh6VAzFXgmxQXqHhCi8AEhiPFYxcJl76BA5FLvYFNiITtCbiDqIwZTQKS41DDhFJkl9F6H9XkHDN1t79dwjBvLdAWQAA.Bfq3B5FQgcf6vy0LRYbRk5F7bpceoxkif8n85WFUaUo+tmJsBqE6JRe62RmaEGh6.vw98R0hG50UeyzQquJNb4zp9O9TP9qPJmrTsUWc0kWZo3RiWWk0DnRy2rlzqUVSRgI7lXb+DWISGayqVSB7NVZKMZJATiADtqSymUtEWupR+1eqTr7u+oR2rJN.WiI2SiInFCSqgEjTvvfIQc.hE53P4F5UPuMfGEwcHdNFRFU+REdv85iLf6jvjX6D6VH.r5avfN1ufdPqIUd3Wx8hUgAFxBeH5gvOIesqsCTc.zaVyjkVBKrKaiHAMOAifNFEErC2lzG1V1prMEoYWYozloh+3vgvkQKsz2sL6eYAFxGS2eitEPBO6Zjr.JFWwvHOoMMZyuim5vBOoJlCwLjEcK5.6AC3U4w6ujg4Sqpi0xXbj2HnPB0bBu+.u7lKAeAvTziwVCgr7P+.uQYJKYUXTOJJYqPXJichhoRw0OP28HHlIXwqefGXEXkueuEIdGCdfg0Ne2C8NDVlUPS6XPRcaMCArDVLHBLf0sed6KiHEFNXq0b5.hMZ2a+N6.xv96oQpjtREgT1tP+xofBXA+sXa6WNoe8ZLt.e+G3xv9OjJ9P6+nxQA3MfytNqwxzayJL9Vq8.MCg6YezFHOiqMfj.PFeqBP2oshWO71EVEmM2SR1Obpys5+m1ksMzSN5TOXOTWxzMYGPCP7tEbHXGKJhSF4CrDJ9av1P.1d0GXwR3FfNPUikcnguOwHHjQMRAkG6EQNwsL0tK+cKKc+K0uetWiGiNjfbuL97pAyahkcGOpGIHcZCUDdjwrOnmXwOnW5mC0jkhRonm69.q6DehaQOcp.OuBOT3BbuBV9H5iD9D9iDR4FB1zmvMRf5qoencj1Jrv4OVTolRsJzOuaug6c6VvWt9juom1dp0qX9ppL48Gt2PU0610kKiJn9tMO+DElraGiJZuS8fy3xAui7BM3O2vkir5dg10mpuSso1SCsOW1+n1izTiZEwkCd9NQZ8ONbi5I16Fs9u+46vkspYVSCWetLoa8lz0u9T+Q2UohIW9lp1ap6BKRrL3J53hvkA2YO8fMZdGWt0KFbf90Wrub8D+4X8qAizfICtJHCFgKqcvYmpem2Qsikcu9k52Yu44MlF+50a9hAMR72Woq9hAumKOBbUcv8ukKC+oudkcOnAWt8HEPF9zLIdFpCv2VbYOv2zw7GWdv6e9U5u6J0C3xNpG3ni3EW9zAuej91fWwkO61wt5aePiyi0+RGO88.TrYBd7d8C6o4xksuR885A999Mmlun3GWFVpw5W2JpEW9hf2kQFRs2n2d6WrcKl7QSNbh9ciuXet7NQV2o20n+wb4FmGbmdaHp3xa17NEJ9xkad2t00u.XksR7+FT7lKuED45P5bXqD+ukNxmaMkOq2C7JtLrz55P3dcqj3QVu2q15tVI7kJx8.RHWVemC1PtBZU97q2bCYHoUQkIWqh4lxHeVMId2RFyepI4usjQ9sZR7usbEHpTSxm6HiwuZB+ZGYDu3xux4xcku6vIGxkUr274xX9VMIe+bYHb6nlvG2SFqWTmVuK6doykpI0a6Ki0OpI322HuG1DHg+9MxW.nr5z5EYDO4xf5GJeHj03xP5EjAVFW9ku7kGIi7c0o0WxH+gKu2NQGKeH.fpI3+IxWa0stZR8QaYr9fKCop1xH+RMIe7B41XSpj7wKjw5Gsj5mSkw5YtbG8c5Pwesj7QGYrdRKIezUtKXUsj50WRwat7V24AxP8uVR93LYnm0oZI4iyk6BQsVR93b4Ktc7EZS6OHi0aZIwyET7WKgOeoLxe0RhmKkqedv63xWQt4Ux8.uPKIeXHi7Ysj7QOJ9qkjO.Y3uZI7eSJdqkjOrn3oVR9vhhmZI8qIxX+Qso8qn3qNSlsCEcaoEytsD8WrfusjOeaoE9Odh32z4jigGgoB8IXppzJyG0jGqAuFUil0y7oQFMxY1UalcvVomPcpFpUy7QIiFJ4XR0r9P8zSng1rWqp1bBqlMopnOG2rUNSWoZwlTMGaonTr95TEpMGExyfoCakpZyD0JoyMJJMYiU3hj25qzrPfVoNyfsJViF43SYVwl4oPwNHykzJVAMpB5YFZV2SQuXWVeViWqZgpWiRUqklvVqFcnZoGhNkZYlX8Yi7Z0KLvpQg5ZMJ1QZlie2LsB7gJdInXWshqSpQg0ZpE6C54DSZoTnNCszyLj1LMSpoWnOTmES0KNivLw8FZVsqWbCj5zhq5ES7qS8n5E2tntpxLWZdpqMKtcO5Q5BYV.VLEtAEkaTcNJnLC9VOcRoQsYcnFoIzMpOaVqQlkfllZjwsaxGq3.qUNKawogFTpUiVyQgbrWZ1TCclKUbGml4zUMu8WhUWIG0KNS0jITcNJLq8ZV71NLDtoRw1qUN6ylNw1jYtZExUaxpmyXTF0odgyg88zMiZwV4VEtqeKlSUbhoEyCJdqfVTlUF2HmciZULVwBgVE2mfsbsxDWZrgJFJzzy7gpdwcTYqfVglSs5r0gsJt6oJEUUKl.oRWbUkBKQUoBpooLpMYCU7bnd7btiM0bp6UyXAJrplFoUoPmZFvHmseTSGcZJyx2TKtXVigV5yQgYQ+za2okSWRshwVMZ7oULPpQiVshu8aMZzpU7c3oQcOslyQAlSTbSUJtqUbcmdUlEJF1zyoIodw0g5LEJtkjd8YqozKtaDqmudZxjN855sJDX0oQndwbEcJvpqmYnbByhqM0mAvTpvemRuQP3k6i+vy3IQg+6O1l9C6GYi+bmk1lbssIgctTVRbaR3UQd9zefR9O7rPoOYd+Dk2hmJE7mlbR7WnuDavXO9hEX+nkrWfMNxZkXiP+4v220hPmMcvTq2mNum87AsdYeY4Bk9EhYdY4BoeGiIdTpysyiX3yuT7HOqwNFQYOFQ3gsheAaurmCK7333FZGMI8gw5GsyVzGqK9EhssiLGluOtPN9H9KT+SfOxOQVOQbm98IlQScvGIt6E+7c7qVVL9PtPW7OWb5Yap3CdUooG7pR+QwoufA+.huQ.oqWaGiIkCMF46PNEb50j543YdUG66Hy9VI7Y9zlnFkwWiFvvCeHu7hG+QCSJyOKwdwOCNxHJvFKwfXui23.SxVbuK9vmwkqFW80g3ZQE9efO7Kpj.XvEUhu3zW+gvwjH78zSyO7uCsYXIC1QX5s8uUQXCZYKzXvlSagjBcr1dNS7G54ZahCwzH1S2Xj2X2nX2cOivtF1NHOuy3PeveNwsCnL8vPVZwyvW9GZ3OQrZE3e.d+wdVvkd7tFl.vNosA1a4KDw22CvVIA3a8jyZy3qYHNzSEYlKiVM97SJF2vaDsc2BhPVIUOYFmEkfJxEXKz9gmgW0zvQ3L16DBhNzlLHj4xryDZ+.X0u8sT1mPln3uMUTjQqY886YleJ89ES48KKNxyhAvY77ecJOOQiY85TS+mAO9SXGZS9IgfDj0k+Uh7SJVkoJLqGmd5ywk+LwcCHueLvZmjbBXgljyOJdLtU.I1+WhZhZGAZNceftFACHQg76MvkXxpxn0.6agl.XA9BsMPx.3i3XetXaRfsmE8DBO8RLOHVBPmircOK6qurw5GYba1w9i+406DQ7wtj3X+a+q3m+qm04JxMLzDG8O8s+2p+yi9SOCCpOQjYfDyvtimtquMouwXmnyt+aLUHE8hGNYxSXFHfTgdgYyO7Y7AXSOJcd3u.38Ihl39Kukd6PYQ433jdeQNjaiuEtssC8gMZ1bLrCJCyyLBl5iusJrm6Nv1FV.cgN839vYxYKlJm8o2Km8ui4hYxYq+ujImEqW1bV785vJmRwXtWB5xBRbWt9FrS+B6dTDlOyB.866kvZeOuj9oXu7yDOzyyG1IMHRXFyWH65md+5wv8WFMCt8COKeW5GdVZBeVBVFd+uYZ+oTpLaEPVSLmBAMw7NgwRkU9xdF3YtEOQOvyjHwjrc4mU4Ue3kOhhFVVebkM76iK9aoKSvf3CWlTZNkI+Hknmo01Gh7UPERX1ldLTJStG1mDOad33ylvY5+A53sPlT1ekgTY1QXvL2rAeGgA4eOF7Y7vwmEmeKiK+9YwG.K9XZ398C9O+MqG2x.7wTVYc898+6+9e75h8wtGve3Ws8el2csyHOungvyXHLysEjue0Xcge5gpOW7TR7437gz1+9oWgM87tZjA8YadP+xK+r7jXiLLC7dKeC.jT9ozQ.xoKkjuj3Qnrjxrm.sQ1V1u0zLqolYh0dnSr9CchMdnSr4CchsdnST8gNQsO7Dw+WZi2sC2rDJcauCaWsR63ha8QakI7+BtlhzHC
Tweak the res variable for input resolution. Basically it's "step size" in pixels.
You can put a smoother in the chain in ScriptNode to get some smoothing - probably a good idea, but you'll need to dynamically change the smoothing time to compensate for frequency changes, so use the core.smoother node until the cable one gets fixed.
Also, you could do some math for setting the Curve value of each point, so that the previous point's Curve is set based on the the current Y vs previous Y.
4290af26-195a-45ce-8393-ac9acb987752-image.png
If you want to allow the user to change the curve for each point manually, that can also be done with the mouse callback of the panel.
Then simply decide how you want to set the frequency:
from script: create a parameter in the network and set it for each note on
automatically/polyphonically: use this in a scriptnode synthesiser
If you're changing networks, you'll need to make sure the network reference is correct and that you set the cable_table node to an external slot using the little icon next to the table display in scriptnode.