Buttons don't update plugin parameters
-
Tested in Ableton and Reaper, but I guess it's most likely happening in other DAWs, too. This is with an FX plugin, I haven't tested with instruments.
When clicking on a UI button that's enabled as a plugin parameter, the button callback is executed properly, but the plugin parameter's value is not updated. This is regardless of meta parameters and radio groups, I tested it with these on and off.
The buttons also don’t respond to being changed from the DAWs plugin parameters. The plugin parameters that are supposed to be changed by buttons' callbacks don't get updated either.
Sliders work fine.
@Christoph-Hart I'm sure you can solve this!
Here's a minimal snippet - it needs to be built first, of course - but it's not anything ultra clever, just a slider and button set as plugin parameters...
HiseSnippet 791.3ocsU0saSCCE1tqYZs.iMId.xkanIT+acqhKnz+fJnaQjwD2M7bbZrZhcThyFUHd21iDuAfcRZSKKqqqRjKp54+Oe746Xi.NlDFxC.vxWL0m.fOWybJS3z0AQYfg8.vc0FgBEj.8DUcl5iBCIV.HbqOnT.KUDD+8620A4hXXRlJ.3RNES9L0iJxzZz9STW2AHKxETuE7tQ6gXNqK2kGIwyVZU.9H7DzXxYHkaEz.eDE5.fuV63Z0wMrNwpVsia0DiZRZYirsqV2pQilm1pZ8VnFm1jT4X.b69VTAOvTfDjPYR6vslZ5vukkTfKogzqcIJgp.SYkSTC55PcsLl0bBA.XQirV0VIspWoMhZQmqOqksWrA8rHVroAKrJHU8I.I3BPpXBj1WyDGP8EYVT34YZCYxaPaj7tYQnj3K.dmVWtzAl3MdnIjAARg4AbPyJUNRW9ygu0NhgETNSmyNiKHmyN3vx+rbox+pr9+Zx1NWapxDvccIA4ZVMNDrp.OfE4cMI3H8aPtQj4NJO9K2S2d85o3jS8BNxYCYTw49jT4AbWKUuR8+6eC.Raax6hBoHT5pH9lX2zahNQBAmAnxj7xkTUEDeHVjr.dnjX5RsHAKkjDU4kjuNrGRfTyGovSBYeRffp5LvdjajLxjokRZ8HgSDb+X764yYpCCbm09D7i4E9twsmlgBZ6aoVBIUUCZIEcHzwNhYR9tQioLCTfjUKGxRH26IGA4t59yzBngFK6mD6E.OLJWQKJCkeObsQYt0OWnKQfKEOQOLAAf6yJk6C3VQtHwxKITqOSMHmxWhYpnerPpX5hqWeBaNprxMGqKD2WyfJvN4iwB4fQEQ3+.FS229Bs911DrHCfE0F7sMc45iT9uviDT13QHQ.UN.ocVjmo7cILQVcFi3FpFTJn3rIxUTxpNfIgYEK7G4WpwpJYXpwpyLB7P3.9U3DRuZi9NwZjXhEOYUR9zqTVOGVtm7Alqv3kS08Br1lFX8MMvFaZfGuoA1bSC7jMMvSe7.Uu++9HA2Kg1..iL5GuUFB6yPxIv3oUveEHoWlM
-
Ok, I tested it with the snippet built as an instrument plugin and it's the same. Further testing that might be helpful:
- there's a button that has isPluginParameter enabled
- when the plugin is loaded, and I adjust the plugin parameter instead of clicking on the interface, the button responds to change
- when I click on the button on the interface, the button responds properly, but its plugin parameter is not updated
- when I adjust the plugin parameter after clicking on the button on the interface, the button no longer responds to automation - it does respond to clicks on the interface, though
-
Hey @Christoph-Hart could you please take a look at this? Thank you!
-
@tomekslesicki I doom the day that I tried to implement plugin parameter gestures.
Please have another go, I reverted the system to not use gestures at all with buttons (doesn't make sense anyway if you think about it).
-
@Christoph-Hart thank you, the buttons are working now! The only thing that is still not working is changing the slider's value with the button's callback - the slider's DAW parameter value is not updated. Here's a minimal snippet to demonstrate this:
HiseSnippet 894.3ocsV0saaaCElxIZX1aqacnO.B8J2ghB65X2DTLTu3jzYrkTg4tfsqZYnNxhHTjBjToyXnua6QpuAsGJIGI05tlYr5KLv4+Od324PEpULvXTZhWumuJCHdes+hURaxrDJWRleDw6V9mRMVPGTp5vUYTiAhHdd67TmBut6RJ98lmbHUPkLnVEgbthyfekmxs0ZCm9Kbg3DZD7bdZCu2a5blRNSIT4Hd1we.IixtjtDNi5bqiO4molDh2O3OIZzAiGSmv1a7nngwCF7vw6Og9nI6GOBFMXLcLbvACGGe.w6KNNhaU5EVpELDucOTEsZQh5UxxBbN2vuP.NggjEXkKUehRD4NhNsjYIbQT35FkgfYIrtssSYa6N9mxi3Wqut88cEFBpinYCzqSa3sSK3MrI7Fz.da.RdMfztkP519KXZdls1hCOek+bIdaFSw6olPozWRmuui+LE5gz9fT5kvIZT35H5OYvf6Gf+cuG2qGdWYrAWQ0AkwdXt0pjCC9wf0IXIXmoRyTRTn+ca40c2TFVH3Qf9SkgJuJxPOtTvkPPbtjY4JYfR1pLt7nUh9r0I49X4D4v8582851JcOv.1ycl5W5viee6rDpbID0Gs7Zrx2nynKoUPXFUHt.oy82LBwr13LblxBOS1u.k8dcuf22Tb7FsUkKAn2nY2zl9eKv9x7zK.cydjyQjQ0ll5+wooMmhXksnFNpjykb6yx.4Ga1hT0WcT5JTgtZKHz2xuYmivQd621R0PRAvat+g76yOhZoqSGlYrZYf1xcGDuifqv8SkyKc8OBLWZUY3plquRwMH23h+WWW3+Y4zU0nfO8U7HaRsh+bZBvWlXapgznjcaWxRFXqRVQJaTxWZ9OWRtITjujKCoZbAKNhiMjNYsUUt5EQhfytLvThDC8JXtLTCH81s6f7gKev0dpnbA01dWn6EiJCHyq0BH2RFogaW07Ek+2VPdSg3s8C4VVxlwXmMfQjY84.iUOq7M9GGGCLaM.20+j+3yyaHjeSka4xkmRsZNRr7OKOcA9TLCvpKkfvM460wMiVJOvI65.K.YTgvaweUFG5j8pLNbsQRJkoUufUNY6d35KKzfXRVvz5hesAJGrgQ4T7czWvXsS0GD3C21.GssAt21F33sMvIaafOZaCb+OcftOy4mxspzxwFB4zviKV854crjhLvB1J4c.eM49r
-
@tomekslesicki Do you need to enable meta parameter for that?
-
@d-healey no, meta is only for components that are declared as plugin parameters. In the snippet I shared, the button has save in preset enabled, but is not a plugin parameter, only the slider is
-
@Christoph-Hart I know this stuff isn’t exactly exciting, but if you had a moment to fix this, it would be hugely appreciated!
-
@tomekslesicki should be fixed now.
-
@Christoph-Hart Yes! Thanks so much!
-
@tomekslesicki sure, let me know if you find more bugs, I had to change the internal notification system for plugin parameters so there might be other edge cases where the new system doesn't work.
-
@Christoph-Hart ok, I just found one more for you! If a few plugin parameter-enabled buttons are in a radio group, the states of the radio group plugin parameters are not changing when a button is selected. I can manually set their value to 0, and call changed, but that kind of defies the point of having the radio group parameter.
-
@tomekslesicki yeah but radio group buttons are not really recommended to use with plugin parameters anyways - they require the meta flag to be set and recognized by the host and I would trust that for every DAW. I‘d recommend you swap that to a single Panel instead (that‘s what I‘m doing in my projects).
-
@Christoph-Hart can you share a bit more on this? I have a bunch of buttons that switch things when clicked (obviously). How to approach this with a panel instead?
-
@tomekslesicki Sure, there you go:
HiseSnippet 1413.3ocsWstaaaCElJIJn1acaEXO.b9GExqdpRt0Ic0nn49lwZ5Lp6JFPPPAsDsEQnIEDois2Pv1qvdS2av1gTxWTqaZmAlPPB44B4GOemC4IcyjQTkRlgbp95YoTjym61alPmbbBgIPcNA47EtmSTZZFNWzQyRIJEMF43r8OXD3TYGj86ue9QDNQDQWJBgdijEQeAaDSuTZ2C9IFmeFIl9Z1nUr9wGzIRJNVxkiA7rsa.JkDcEYH8kDiYa4h9QhJA47stjlgzlws5+n82u0.ZPqVAzVg6GP1aPviiG7j8Z8n98Cio6gb18zXlVl0SSzTExYmijwy5kHmHx2f2vTr9bpYRHpGry4hOSxiMGQiTzwILdb24AJEBVktKCaamG19Z2yYwrExWF99JqB7ROVM.5rUY3scI3E9gf2ZfjyJPZmbHcO2dQYrT8RMF77YtcD.aNf.7zpPI2VzV+0ttGKAKDZ+QjqnmkASV3g2dAAMvgAA0aWsp.XEEvPT7qHwLYWhfxq96UqTkI3LAEOXrHRyjBbJDKzmULyaXciQbYDgiYwSwOCGzFbpx.YlGAyDXcBS4GSzDeRFknpWsBXekg9JpNO2vKXZylA1O.GU.eqvF3YWqmk68Pp9MD9XpWcv6202VsNy9M22g9CfzwWQizdD+LZ73HZr2RPDCrA943l3mhCqaN2kWu7+n7mvzIGxSSHKkjvzzFqbbRjWSy5HhoVfZv6ywA9eOrvA96U2Bmg9wYjIGxYCEz3WSmpWAHWaNQpK.+trAlz.WKBHI.u0VDDhm9fG.iuo5MUp9drvH4XE8XBm2GJp7nWCNaYh0iO72E1dNKkJUffKrt3OsANevrKauNZ7cBbOqv5HNK5JZr0DfrxEZ2vB98VneqdiWDe39AMjMo7.LkysVcenCA.r1V88gk5J6vaL+xtdEQKijaJAqBrhu+8WO48MlnSArsFnlmtsNysriUQTBQLDxsp2tXGsRyn15CizaVCqA0fdlJsmpzYLwvF37zfmdXVFY1JkRovwcdg6PS14nTo.lXc1rioqlEAFmOvRH4qPePnoJ..Im5kZVkWXTbjbrHV4EXyPma7Dv39Wz7R7CKVHeNULTmXMIcE9yj4boU5CenMbhgeDTyMRjrYXf1AoTbJe7Pl4phL.tvsMJrVhiYpTNYl0fLSrCGIyx.HxmY1DHr6UaDSTqANH+DlKgLsVixnBnqk5gGyR6w9MJXTX8EW8bsI2qTLpfgW8v3mNVk30G3rQ.+B2MN5EzAZuI0WPoE6ATlImLuXSA6TsC4b7RA0auv3tF1+UxwZf28JcU4BLedoR2REx1rFHuY4Uv1qs8pYGGB67E0f06pYFLXSRwMMC6IgvbBjPgobEs1k0auHkSJdoTS+YgmM6BVb76pZvf0pyj9kI4bZ1ZUadrO61bzSLdTeZVA2svP3AsxuRt6m1qjQ4UCqXnTzQvz+bJsX9s+LOpnbBF8KcNAxALOyVHCrKkloYF33bB8ZnIm7Gcq3dBUckVlZssnFD4bGsU6cm+jrgbPLXquiaNQgltnOn+ryAyV1TTqClvh0IKDbvebP4jKjyW5VJ4BAE.f46tUQKXyy2Mxbl2W162t.znhLdLmnK28hoGuBE.YUpkASaABESOa0d.+OzRSvs1RymJDumaWlNJY8Xbq0fQfF++.iEMBdW2SGL.thZI.2w8recS656ir84WaL7bB71.v4tub7ndPuGQTX2EPZEr3tNl7fh4Al4lHPOpH1N4efuBkgl4NEJCmqDxlhxjuMJuD0zp4crR.LIrskWA9+Cf43Pjsrc037Hny22FEUdodOGatoN9nM0wGuoN1ZScbuM0w82TGexG2Qy+Xxgi0xQ4kMHz4cO0dOmiyoBBjAZyVQ+K.rM4fc
I've also added this as a snippet to the library as this is a pretty commonly requested task.