3 Way Switch



  • Hi guys, I've made a 3 way switch (kind of) in order to switch between voice modes, so poly / mono / glide. I'm using 3 radio buttons to achieve this, and I've overlaid the buttons so it feels like toggling just one button. It all works, but when saving and reloading a preset it all goes to pieces! I assume the preset is loading in the state of each button (rather than just the button saved in the 'on' position) which gives the conflicting result.

    Obviously I'm doing it wrong. Perhaps I need to make an array or loop of some sort?

    HiseSnippet 1759.3ocuX0saaaCElxIrM1sYsEX6dUeQgCPRljb9cEAy4G6TileLhSS1vvPghMsMWkE8jnSiQQF5c6MX2tWkMf8frGg8FrcHojkjisqsa6zEFl7b9n9NGdDOmCq3wpQ78YdHszm2qCAo8Pb0dt7V62xl5hJe.RaQb0KKe99uP+7hUOGsWuN199j5HMs4NTnhV54Qxm+4a2y1w1sFIZJD5BFsF4HZaJOZ1JEdI0wojccx4z1wzdsBkqwb2m4v5BzYNrApics2X2jbhsPsTXj18JVmxYdU41bhORa98X06UsE6stJ8uf5SuxgHFXhpBKjZ5RLm5BFKlEseKpS8JglsOBVkJQNg4TNguDeLsNs+7QNiGKEnGgHt+PK03nm4LRu4hQu4Uz6I3p07nc3QRDb6A3xtbhWCaXKHNsT5hR8myi2mAZ3xWss8aHk7fA8QjaCCik0W2vXomuXFXavmqessmdEaWhio9N5gHaR36yZ2g4BCxkUIN6PvXMdLVCCS9wiI+.XNp3gGua0yKdlfexfVApDab4xFoz.nO7nxGTbbHUJHQsXFpqC0kn2nqaMNk4pyb2qKmybME70i4jqVHYWFVcmtjkVLy6VLSZkwtpODDDpoR7yCEZlPn4J5QxULXUeBOb6LmoTPjQkPnbu6VIeGtaLfyYWR.K3UtusiyUv2Y4FzjTF9nMcqo2zSXcp8zQ3ZFhoaLNS2bxLcqwa5VSnomeRLcywsqm+S2t9DZ54GuomOloGydOgwIm5laoLuKS5L2lQePQMZLTYAKlCwanhEm66MNf4b619JhWnWMTQ3.vjmvhmrSXqo7KwTj4V1kxOsCwcTm6hBblhSfCXE7Ot772uH37WkqCQgiYSiC95AIob7zhno.tUHbrlD8T.M+.PeU4Cr41.80BrDv55P73TgiS6.x0PlYU5jz3CH9ugy5.IY6G2.9Z0qbwvjMh3V4abAr7+qgtouY9Geegd8G72WUP3y5uPK7AVHyXKD7zK9.JmzNrjfGhWyZqsym2zxvHl.qAjzw1Cdswe+g785vvCHWsVLEROAaqwoXLaEsPgQ89LQukVm2JxGcYgVDZyVQkB89RE7rqSYG5w51IZI0KvI2HzBu6QGoeZoRh3f9q98+.dSqovat4VVqaZXr4c8l8kLZu4T5BsFoKDMRWn0GqK7d3iO8jSS3+9PQi4mlnw7aZtwFaaMjnwPIeNhFyOCtx7ertx6ikYlR3Ke.OnbYEUK4vr4T2lmSAyRP3GgiOUhOhxFi15+Tgjjy3WFjbnetPvwXpyrdDthGQjFzi8VehG5plw1WL2vXy01d8M15taXaB6IaZYd2MrsA.lllqijmZlZEMLjIWWOqHoQU6qIJOe1uQm60krbeQEuoisqOj7xeWeX851VnRCaG+X5HKv2aDKfHMp+cWVHMmBvckUx9ZlGveQ2RIDdR21JJHvXolSMwkBu6YvFACj7CBA55FqlefmkmZAh4+Qn5Cnot6zC0WgOhzzlytjBuZB2i1rIQ0nxCwQkxjrAp4RldetIK893RdilztmVPEdmfPoBac5h4v86LAB5dgL1L25FpBE8HM0cr84hsRnghULetZNx0f9kqGLh20E9NPB3q+5CeU43Mibk7cFq8G650Ua+P4aRYYWVG5Oybf1y3PgTIQ8RW1U4xJJvBPXtNfQBQnnf4mY61jjClERTJjspg4Hp3SUIKsgdNE4DEUdgn.ibKouyNvpBREZHUIx5EluPT52kV7a5X9kiAmMzMuXgDybhrDubxRaSmNvWkTshpICz4VwOD3KKc45KgEpLsoKyiH0Om3ChfUU0aG3VpP40ZItxgbAunkk9tXF0xiheqDZBRWY5PlbK7uaGV4vSriabbOzw9z9cmBzQbhGDX9RROeXsd1yBCvzeZjWePmtLXLg+MblhtMglaVEZDPdDjj688y2lz39+pd9LeppmOLNNbFCT+cn3SEYWwmUZNCQsnoFa6Bolfh1W.q9rdvtEFSI+UcnPVDI56gk2bVbruem+5WK7Iql+ww3aB6vnm3OYTTt+Bf+PjVB+2BgKP21NprfB+dggbh8iwGyp20ARlj3p3D2+Xf.HZKQlDw8ZAok48h2H1Tb+bFS78yMoz8IX4YPCmuoFBeEQRel4aPl5EwEazfTiGQ14wk9tY8pMmBpbFqqn1visgpCDwEvYbUgJxpQ.l3B0rJ5vWKkH.SM1HLjoJwstbv+BOABMEi0BDZFJDhtp4wdcM0GUh6ScA4L.mbkWqbZ7whw58abGigrhn1z5zWWqlvUrhIBMbLVy.l7y.l0lALqOCX1XFvr4LfYqwhQbOr61kyZq9LAlnRQ4wZZZEcsgnLYDI5+.sWCvLA
    


  • Use a knob to store the value.

    HiseSnippet 888.3ocsVstaaaCElzwLcVatnEXO.DAn.xXsERqsoCXXXdwIYvnKoFScA6eELTzwDghTPhJsdE4MnOT8QpuAcGpK1xcJ8hAl9kOW9N7ijemC8rLCWjmaxP3AuXYp.g+NRzRscwjELoFM8PD91jSX4VQFsx0AKSY44hXDFuyu6bfGzGU989e8.lho4h0tPnyLRt3OjIR6ZuyF+LoRcLKV7BYRqre73obidhQYJ.9rCI.kx3WxtPbJykVOBBu6QwRqIKxxrhbHmCLwKiVXdktJ+yj4xyUBmQHJBJTkazjERU7rl8ZNBg6Oa8Nempc92SNQFKW4e8IvcJCPWin8Y.t2lTp+FTJ7lnzwFUrq.2.8vsnW+J5cWRDOSlZWGwwsukLUCWNyYvwdaZUkKp26wjIFHCs8gIrKEGmAFqP3uePv8oOIHXzOOzanGb3maoWwxnOSaNOj9KzFnWHrSLIoFMX3uWYz8pvH0JoVPmWn4VoQSM5CJrViNzAMyn74M3tOTYUgXzPu2LziBex4T+FWN6Z2tOkgyTTs3Um4hCDwubMc7nzi+H5OPCGQuG8Q.KF3fTkPdSBMXcrzE95gdWWR3t2R0jduQtJTS8ILk5bP.5+w6IWMasgO0XEOW6Ox6MdC7t1i9wglOuyX0ESIx5Lrq0H6SAzWWjbtHq4XsIQPurofb2uLAIu5boUhF8Tsz97TQs8ZIaXGRVT8AqS7VyPHUaoz810R2HkLVjgjPQtEo7BCURdXDvtMCLP+0zCYVVSYfJBqRpHyJcaF7ghqfAJUcDCHGJxuzZRgYCqtKgM7mcQeMBSvuCVqkte7V3Gv.tzH4+.vHjvGFfRXut0Trwnat7URixxOfTqSPs.u+3kqLFGOVlehIApCKCbi6kytRLUOKS.xNWaK5+12CSeLwEJlcyQRtYu0A.YwF89t9actztr8r4uh4TAcNmpyK8uP5dWxLokuna91qC9BW++ey25o9CIGMetfaWS19ji+6scD+WAU9SSgUpu3DlMS5DjmVjDAO7wE.SzZgJ2oM64ZrprCb1tSlHgNtz3CvWcvPmMtNXXSPPFyyLujW0N5dW4aJ8.bRW9j5.3scvltpOjPBbpe34tWx4tihG.buaL+3Vf4QaAlGuEXdxVfY+s.yS2BL+zmDi6eZ7aEVSRUaB3X1QkyCw3izLPkUpHQ+KflmoI7�
    


  • @d-healey said in 3 Way Switch:

    Thanks David. How can I put my various callbacks into this, or should I just have a knob for each switch?



  • @DanH Put a switch statement in the knob's callback and call a sub-function for each case.



  • Or just make the button from a scriptPanel 🙂



  • HiseSnippet 1000.3ocsV0uaaaCDmxIpnVcdXEXO.DEX.xncFx8ygYLzz3jLXrkDg4tf8eEzTz1DllTPj1oFC4coOZ8QnuAcGEkrTb7RS8vz+ce763Od2w6TblhxzZUFxq4aWkxPdei+vURyz9SIbIZvQHuu0+Th1vxvNUGtJkn0rDjm2d+pUgWy8Q4ee50GRDDIkUoBgtPworemOmapzFevuwEhSHIr2xmWy6mev.pR1WITK.9rmeDJkPmQlvNiXcqgOx6dGmvMprgFhgoQd6enJY0vopKkN+ufq4iDLqPWzPHPN0mnDIVFa0h5OkKRhKu2ZDDk3prvdtrv26eJOguVeU136xMfqPTOe3031nW2uL8h1F87pQu8cz6g9CoY7TSkEK2df+.ITnFSfRPcZ47E0HcO+9JvCooybxL1IYfvZDguLJ5I3WDE0tWPP.TGzF7RRFNlHYht3eAWBcByzWMOUIAgvG4L+n18ZEzJvIzQyLwP9x7GpEFtjENdgjZ3JY3j1A+cq.L7oujanSwglobsMhWPDKXgsa6rV3j8iRzLbzOimzYLzy7FgHz0en6LBPrjqDLS6d3QYLxrda.q61fwkIbhLik7ug5oaCkfOYpYESHTWtFWNrqBZFbEjxZET61epZgl0mHDif92pqOaIjxVmBrI2k1qMja2HMTPofl7wXGpNTAmNCH8MRP4P0kPe7icg7GvOqcuMbhNkHmvRfvWv7qxK0sB3RATlvk7DqjtqhshmoDgzxx8SbDFHAPflfYMj96jlA05PmE3LupW8FghXrNYrQrs.9O+Ui3moLrykgPR1VWBvaZZ73sZqfMBV1VMaGSkca.CkKlOhkUleJcDdud8ABO3tMPf5dpUyQkbfjaNOkUHWehV4stzZDZ8kstpp6Xcs4Wss3VkpaNQBULJvNapvcvUS9joVkSlrUYDGn388cUbTdtAl1euFkKG9yAGQLjxv.QDNkTVlgayUdGAOuoL2.ul9GwzyLpzbeKZGg0AewC88qWu7A9AqVK7wjCH1Gyk8kZaP5aeiowmKEqPZxR1.YbFC5ggyrA5lCggUApjEBh456GrKEKL.8HWaPrcXqTyMqpuz7qXoQzcdm1cktOzO1NHd67swV3KTr9+luEqfa4e73wLpohr66exesq6a+Jnhas0jSIlLNz93e1h4Cgk.TFvDIzTAGjumsGtPNxJayLCYxjbgOCeEF6Zk8JL1szHZNglodG083wtj+94Z.NIy+WmlvOcAx30uZ78i5DglC+6w6nTap3GAtucLOcGv7rc.yy2ALuXGv7xc.yq1AL+zshw9aeuYgQM28LATDeb9zKOuikDnKKuiD8OZKCCIA
    


  • @ustk said in 3 Way Switch:
    Thank you 🙂

    I tried saving and loading these as presets but the colours wouldn't load (the values printed correctly).

    The code looks really helpful though



  • @DanH Probably because I forgot to put component.repaint(); in the panel callback...



  • @ustk That's the one, it's making sense now, thanks both @d-healey



  • @ustk ok this is working great, but my panel needs to have a border radius of '2' 😂 - I'm trying to shove in some drawRoundedRectangle commands but it's not changing anything. Any ideas?!



  • @DanH Instead of fillAll, just setColour, and after the switch draw your RoundedRectangle



  • @DanH You can also draw a text if you want



  • @DanH So rounded rectangle:

    HiseSnippet 1011.3ocsVEtZibCDVqS1iyaqK8f9.HNnvZNWy56tbsTywkFmjhoMIlyWCEJkCYsx1BKKsrRqSME+tz+z2q9Hz2f1Qq10diOmzCWxBFynY9l8SyL5S6fTEko0pTjW82sLgg79T+gKklo8lR3RT+SQdel+EDsgkhcKcxxDhVyhQddG781E7peHJ+4ueyIDAQRYaVBgtVworejOma1r5fi+AtPbNIl8N97JQ+xi6SUxdJgJC3yA9QnDBcFYB6RhMrZ9HuGcVL2nRGZHFlF4c3Ip3kCmptQ5h+ZtlORvrFcPCgD4V9bkH1xX6pndS4h3Ak6aMBxxfMUgCbUguv+BdLe85apFedtC7FDUqGd0tO50oJ8h93omWE5cnidOweHMkmX13wxsOwuuDZTiIPKnJsbwhp8mG32SAQHMsmSlwNOELViH7UQQsvGEE0raPP.zGzF7BRJd.QxDcvuFWBcByzSMOQIAivm5b+zlcaDzHvYzVyLCf5k4spLCWxBGmIoFtRFNoYvu2H.CO5a3F5TbnYJWay30DQFKrYSm2hfrOThlgi9V7DaVciFgt+zsGAXVvUBloYW7nTFYV2s.1Y2.4xXNQlxhuKbOe23D7ISMKYBg5l0HyAtJntKCSZOFFsgMtD5nukQMD4DAK7WhZE0pCTfOJ5Wag6XqwqfeMBpTxtPkoY8HBwHXneSMis.pyqqa1NxBasBZHaU6J1CA04iwNTsoBNcFrK+fpZNTcIzm8LWJ+R7KZ1cqfnSgc.KFRewFcU97Qi.tT.8VbIOwJoaqXGSRUhPZ4LRKGgAR.DnN3VCcr1Iov.RnyC7NW0s5zSQNVWL1J2V.+uepP7KUF1UxPnHGTOXU.daWiGuSeErQvR2oaq1V58ALTlMeDKsr9TFHbH+1pH92sJRUQNp67Yk.Ux9Rt4pDl7tzVPEGpspLErBB0jqwznTiwV5QbPI4w9t1.Jmvft8i7Jk4+o9mRLjxz.YDdKIrTC2tA7NENlRYNoq59mxzyLpj7XKlQ.g8+yW5us9hh+fe7x0F+U7wD6AxxgEsMI8rC9Z7URwRjlrf0WNHkACVv6rF5CkSAQcUblfXtsRu85sBGPi6VRpVYSolaVV85uGD4+OV59D+AVI0cy2Z6fuPy5gluEWl1v+rwiAsvMj8P+y+4G9aNQtKflbAwjxgwG+KylODDxoLfIRXnxd3BFHrPysir11JyPlLN23efmBmcr1dEN6T5DMmPSUum5N7Xut9w4q.bRl+UK0gOeBrwqO036G0NBMG9Jh2So1RwWAbe2Xd9df4E6AlWtGXNZOv7p8.yWuGX9l6Ei8C39tLiZt6XBrvfyxUu77NSRfor7IRz+xwM6uj
    


  • @DanH And a bit trickier with a text:

    HiseSnippet 1097.3ocsV02aZbCF2WB2T41XZUZe.bhzzNTYni1ltoFUszPHansjfBoQaZZpx3y.VwXiNaHEMw2k8Qa+89q8MX6wmuCNRIrJpxIkfdd+me7yKtShhxzZUBxq7UyFyPdele2YRyvlCIbIp8IHuO2+Lh1vRvNVGOaLQqYwHOuc+AKCuxkPoe+y2eLQPjT1RVHz0JNk8y7QbyRtcN5m3BwojX1U7QEz94G0lpjMUB0D.O65GgFSn2PFvNmXUaGej2mzJlaTIcMDCSi7JcrJdV2gpakN8ulq48DLKQCTWvQN1mpDwVDa4hZNjKh6jet0HvKcVlE10kE9R+y3w7E7WlM9hTA3kVTLe3sylfWihvK5CGddEfWIG7dreWZBerYoDK19T+1R3hpOAtBJBKmtnc96R9MUfFRS8QjaXml.DKrH7EQQ0vGDEU8vff.3dPavSII3NDISz.+JbtoCXllpQiURfHbem38qdXkfJANh5ZloCjuLWplX3RVX+IRpgqjgCpF7GUBvvm0yF16LG5Hc+WeK2PGhCMC4ZaXtlHlvBqV0IMyR6GknY3nWhGXCkqdIz8itdOvlobkfYpd3RKx+rwDNK6+qW7lu9xV6uFM5kvH2rF92I5MVez4xXNQlvh2Tvu5G+Xh7SWejE7ACMyXBg51ME6ia08p81au6O9ormGT1IeP89PqJbQJgJzKYTCQNPvB+snZQ0Z.ELGD860vMhptx835uVfV4b0FTONgb6qAHKYwWAHKzBuZ3Uc69TnBCRkPwUvb3uJAEJvNSMQyZRDhdfeWVgwlB1rRU1TaQDbxuSQUFRBJy6icVUmJ3zafat2qbK0TctoO4INW9U3mULQmpDcHjeXwf6yRiyS6lpDvkBnS.miSrR5NJ1lpDkHjl2QUyAX.D..JCh0Pob8wIP6TnSBDyxKTudBarsUK8.M+vhsfYtdQN5NgzZvG8Wgyy4JC6BYHj6CJGLO.eWQ86uVYYnQvRVqX6BhjMYXnbxndrj7zVthvjxUGE6e+ihKtof5FxUPQkrsjatXLSdeCnQYSFsipyPEnpIcPck7A01TOhCiieju6Z.kB3BqJOB8l1mPLjb2.dDhxXVhgaO.dm.i0nL27+x9mvz2XTiS0MqV.1N9+Fz2sHf+I+nYKH9q3iH1IG4EKZqSZZ6Gz3KjhYHMYJqsrSBCJrfXtC582IAaFUwSDDypqKsuQHS.bwsxdI6tGolalU7MDOH6P+Pg6i86XWAsd7tyZvKbY8Pi2rWjTwuU+9v.3kfsj+o+xC+yOPts3CNiXR3P4i+4SF0EFoSY.RjPQks4BJHrllRGYosYltLYbJw+BeYBaXo8xD1HWHZDglndK007XeyyiR4.XRl9zuxvaPAZ7htFe+n5QnQvSwdKkZSEeCf80ayS2Bad1VXyy2BaNXKr4EagMe6VXy2sQaruB90SLpQt1DfQmVoSu77ZIIPUVZEI5+.HrdCsA
    


  • @ustk That's brilliant thank you!


Log in to reply
 

11
Online

1.1k
Users

3.6k
Topics

31.2k
Posts