SliderPack doesn't trigger onControl Callback
-
at the moment i want to create a kind of multi-fx plugin, where the most parameters are controlled by a sliderpack. The sliderpack values can be morphed between two presets with a slider.
For some reason, the sliderpack doesn't trigger the main onControl callback - but also a custom onContro callback for the sliderpack doesn't reflect value changes of the sliderpack, when they are triggerd by the single slider.
so i had to copy the following bunch of parameter controls to the main onControl Callback, as well as the custom onControl callback for the slider:Degrade1.setAttribute(Degrade1.Quant, SliderPack1.getSliderValueAt(0)); Degrade1.setAttribute(Degrade1.Rate, ((SliderPack1.getSliderValueAt(1) * 0.2) + 0.5) ); PhaseFX1.setAttribute(PhaseFX1.Frequency1, pitchToFreq(rangeCon( SliderPack1.getSliderValueAt(2), 0, 1, 12,136) )); PhaseFX1.setAttribute(PhaseFX1.Frequency2, pitchToFreq(rangeCon( SliderPack1.getSliderValueAt(3), 0, 1, 12,136) )); PhaseFX1.setAttribute(PhaseFX1.Feedback, SliderPack1.getSliderValueAt(4)); SimpleReverb1.setAttribute(SimpleReverb1.WetLevel, SliderPack1.getSliderValueAt(5)); SimpleReverb1.setAttribute(SimpleReverb1.RoomSize, SliderPack1.getSliderValueAt(6)); ShapeFX1.setAttribute(ShapeFX1.HighPass, pitchToFreq(rangeCon( SliderPack1.getSliderValueAt(7), 0, 1, 12,136) )); ShapeFX1.setAttribute(ShapeFX1.LowPass, pitchToFreq(rangeCon( SliderPack1.getSliderValueAt(8), 0, 1, 12,136) )); ShapeFX1.setAttribute(ShapeFX1.Drive, SliderPack1.getSliderValueAt(9)); ShapeFX1.setAttribute(ShapeFX1.Reduce, SliderPack1.getSliderValueAt(10)*14);�
this is somehow annoying, and i ask myself, if there is'n an better way to get this to work without scripting that twice.
any ideas?
here's a snippet:HiseSnippet 3649.3oc6Z0DajbTEtm06rI1gE1rrQhKAUZIBMSh2wc0+2xqYFu1q20I1qcFu4ObrbZOSMd508z8jt6w+rIFENjynHDGBmxIj3BRHNfxsHDW.wAtvIPh.HhTRtDI3Db.dUUcOc2yzisWSxFfrSh7r8qduW889od0qqoV02qAIHvyWnv329ftDgBeohqcfaX64ZaY6Jr37BEtXwNd9caG3X2f3uIthnlv0NnqUP.ooPgBicCJeEF+rBrOeR0qY4X41fjPRP348.QWxticXB0Uq8L1NNKX0jba6No3Vo1hM7bmyywqGfowJJJz0pwNVaStkEksyTTnv4tdS6PO+0BsBIABEN607ZdvZs81yky+yaGXukCg9.VXMPQbxK34zjhXJUg4Za6zb0XaOPPnPwUS7Diw8DWp3x1Ms6SOwibA1.nDIR6OJbliBd3zvS7jCuBof2Y4v6QKtVCe6tgIiPw1iTbQ2PheKKHDjFVbdENyi+XEmyC3vMrRGqcHK3COzWhRJhhShjjDKO84m.BCAgncs7QyS11GBTXzLHVtQksIgWuUKRivRWNdrKmUjUaaEPV3EyUD1XHXvAjYs1VcGkLrwxSFG6lD+UgTDpXwVFH3bdc554BO.xlvy.R+LtdaMZ4XiNfDKMRtWZ.NqORNqOnM.YKPB9nwOe7AkxtSWGRcxtD+sx2kwX.EwAS5zxeqdc3Nl.pvItHpJRFqT1IEFXUeR.IjJjBSiSMEE1vbDh.7h7sbASw1MzCY4h7BaS74zN+Ds541Hz1yk+LHDpzJNMedKmdjIQv+ZYaW92V6OI5Vj8XOS+1Z+xmehW67SffO7+xvBYOlr.RJUpulPWIRUkQOIpDWZfFWckKilhMobhQLVF8TQiOMW69jvd9t8m.f5gTKkaqVNM54.KsQK3Sd0dD2FGfZ460AspcXi1oLxtzmusGkKToco5IwHnvuEc.vIpHB.cYKH100auRRSFwL.OMSJbwRkyBKpfwPB.DDL50E0kEUPV99VGf1yNrM0I2DfkauNaQiwk1CJ2h1hf7fP0d91gPhFZqCPAV6RZRibA.7XqbiiuquALKs77QkrmQbZ6qJMs8S8TI1PDeqauAmSJMF22A39NWMISY56vDiNdjnYEe86jRC80xNfV14pIIhSuSesLflFRaquyFyv8nbe.jC2m4C4xc3zC3+fkaa4cMu8IAbufcHoCDcR6CvSiru5LorKTF+AUh0suBdiYtbfqUWzkgrJa1zP0GDe1LHz21caPqTVqbGOa2RW9kcYKLWpBnwRWlNPvkmLE2zAqeTCR+OaWGaXoW+TOO2Tqmo0T78bJ0HtfxjnTYiia2BUhUnittmktWp7LyHVFMTDiZFN.GfArTJlgDU7zCGWE2XcJyarNax1X3ZL7GYJY1vnEH73TTLJejgGAx74Hq9wiL7Fq6+eFxh2yiFWlMDBEa0KjTpO0msmE0KejZUrb7p5iQY0gRMPMgRGo1vzhchUjnUxDqnVFgh0d79vY0dep8qggmLcAqRwUnKczVgT4IQPCCfvXoIwxZkQkuWmXoS0DKm2DehlWBo4VfNOlviRe6Hy1rYUZ1gdAR3Rv+z4XzrZLPOwJttmWm0ruK4XTrVBji5iZ.kFS8l1a2dUnuvSkiWezQ7iYZWxauS8rZbpm048s2837blmTkUmzrWiiSaXwxOIVgpwCYkmOA8jRmtnxzP6ENz7yR4UCmWuOUY9a4ERVwsT4IdsIFehCm.M3PsZk6XQpyg3m6vzWHy+nDrDuoh3MR5uCXNErQyLCBid8WGk2.vtLockLu.889JAAZw8WXA84ulr97TqdbhC7JCGIyyOmJVEyXdT.AlukxHXxjfRlkgXYVYQYP0niT2PI35GutqeT5l5CgFR.8hBfV9g1x5F0K1dsgl0heMAaW6vfDOdTGdTLDywH61B0mmTnO0VjP7MvygToKzcAjjB7b4r670GjL.xi+QvqQaXsLs+Fnk+XfmKJWhlNj7X8gQ63wfLHFjQ3m4HGAX4trQg2l1AccfVigFBQM52Be.Kghd.CH1YbPgeRG5ADmY88Wr49aR6rHUiMC0+CJt80rh4mRLnqigZNADimPk3M3uQZFGzf9qbBu86RG5PMUKyQMnltQ4A5aNFy6.SKZlgVjNc9buOvZZyDZ6l9xVTkP6.IkeKZDLXsrQyQgCrnl+3rgK51jreI6IQ6WdZTFgNLN.2O310x2pCID7OM3EnPNdaa2HIA3AMr8fF1dPCaOngsiogsINTnvYyd5sEG8o2l9vkavaxKEidtKB6SuRWh6nNSWgnNCoG9bTiUvzGxNa2KFc1tI.WvtoPgyWLkkHv18M4jyuTslVgVBEpUTQoxc6Y7bltU91sMrUme0WckWpinn47sseNi4pz+yR2b2mVcNy8dw8Wo4c15kLqHGTQaNNvXnYLNZ9xYPCCIOTQ1dEYvvq789E+tpCI74iOlZKWhCS1wKFs+djzmYgyU7oWakas95qKVQCKR+fUjEUwXEcHOphgtI6ipjLVSxPgRSByoYXHpaJpSaBrhlASV3IUIUUcFeppb8gMkDMkLojv5b1v5FFXYSYJMQIt5LkkLUTz0UYyA6u5Z7IBDWSEKqyGgysnhlrjplAiONJ0wxFl55hpaLIBrGwHraHgwFZhZZTVU3DMLkzwXMYFp.3wAfhhrhgIyfjhLnznWwTiNiR5x5Z5FQVjzvNHv1Lj.untghD1PjqOQ.ZxxFxhZpxXYFM8bLEUYQ.EXrjAzbJnPlrlZFviXUvhjTkM4l2v9RbEQFjDiFPwDfuFap.GCyrU0LULLTYNdS9zqanpHIKoyLGw9+IunrJd33gXdpOJ.vFxz.apZXB7KqxbOlfqP0DPmghgllIyDkk4PFrRYQXpGUjFymHScMrpAVQhk6MLPk3pSTAqCllJilI2uHoIIoIpvAurBmOYUcMIcC8bT2FTaALFUMNqRxFJXCUddmDmjArzQRxjkyN..iBziBT4Y24j4IGELfDLcEEIVlrdD1MUk0zUjkRV1nxw.jlpKappEEMjwCa.4s7VUbX2dd9ICEUSUX4jgLDywJ3ARexwX0nouFXc.HxfAysLX8CVUQy.RukUibgQY1J5ZFx5XMN9UjGtDiFmSrllgILLungJrd.DVBVf.wPdQinnBVSUUVwTej9ubR5EiPCTmx.bdRRiLwImbSCPK5PRqJ3og+mE3FrNK27xChZZCmxBt6LAWVgIHkQBbBR555fdzyKIHa3Qd.W7nxbyCA.5XeTDAEKqptwFaL7FWWHZum3S2ms8yXEWZvsNe3ZmTQqOnnWnlvys37zMdEJTHZGcXW9tD+PaZCDElmrqcCB+mrc7hySB1IzqKaK+nCCRnvibOro+98m52X1ZGjfCwZ7Wlc1Nd8bS86r+Mqsmcyv18I7Ng0ZSfFJSXAsUM5Os.+TIj.xm6IdhuOajDxTpO6y9G9WzOascJZXw+AkyPx9gITobwTPJab7isUhDKS3kRaYspEDdfC6lIbSOe66B9XKGgrVkf8fVkv2pVV3e3O6v2hROM7+g2tdvf.8gO91VRECVJERe+FC3qQaOHpdi4qQ+A2Vzker.P5wY1MtixBikFFSbLYviJOnUsNVvXEKPed.mzsFgSBRSe7hrezJ7Druj3eIy+RIiO6G7j+8wxI4.RDXg8gC4ibkThIbgfOyMgQ.2guVEWn3xdMoGOT1a7A8ZtDMfsmalqVA85S3FXGdP5qAymIWCjSJbezhreM57w6YxAuPwqOqwazkp47E42OgDvd1hK7h2GtAMmc0gtpSzxwrSsggiIheBmAM2jX0zGdi9Hm06zclOpJ6.ihH7Fem+4utJ8PehdtlvO9uVcUufvErch4A8StwGV8VdtWYo92Up26q+l+9pqzKrauXld+6doOnZgwxZ6icxd+yS1MFJ2bkuB39Qe9mYW2qWns61KaAuDOcwO8XLgEqMH.RcgRvz2EuvYnkp4OKRelBn0HtMYOPWOGMHl9bgnAwwClNa7ghy.hNnon6NU+qlTF2PxgtE+lte2W1tVxIhEmI7V+pvZwmWUbj+W9S+npKaGWpqlr7G+4PL9hQF1W3ByOZbXN5HghBy8uMYYbCy0yeW9UL7Z1VAKQZ0ek4eV6ipRoUO8VOKV4OVM9n4ho82N3kqEctYwI.evO+GVC76YZYbkcI9AVc55.thz97T2kxWo0O5F03meULGW7ROVsY6E5s8.23R1MqbQ2jJILprCRKtXy23c+MoxBQu4G+mpxsbZQJ.KY1I3Sqzy62A6np5PKloNN1nsuydY3xD1iOt1z9f4gfSRrAV09WpFebwYXy+fAn8IUegTMr7Nu8a+gUg5Dj6RRkB.Te2p+OqW9qFuO9r8ZZ6sjG8UcXN4KwofnjPq5Xc.wGeD2T3e6I8lB28DeSgW6.2FYWp8IUYMBcaenhbl0ZBBTXdcWKvG2LM+P1PH82NO8MUdM5RUBDo7CA0mVIr7o.RFZvRpnKqb8hS01qCYpPu88bsaLEy+LEWaASsm0tS0zuWmfo1zAvRvTs54tyla4Sr1YSQoMazKby4uwlVA1aBup9Vc6TADPnC0ExCeQMI+d8Nm.UdF7hGygYbMiGevjsydxR1tG5n5+9txz2+ZserSFbOl8uGOFi7RUW2Epq.qsh1+ddRKqdNgwTytvZYOWutsooXYyMgBBauMwOM1y0flMLLoiE1ujPchCAZXHgzSTCZckX4O3xq6AewmR8x70JxgKhVM.8+GuR1Xeg7Uxtury08i4niUCeuMit6Azb4GlQAraW19.iWbY5yn9+bYEKJVQDpk2zdyFMnt6qfEDxWFoSgLxmBYTNExndJjQ6THi9oPFiiTF5lQzVo6vWJBDV85rCwsPg98DTXLg+MKECciB�
-
@toxonic The snippet doesn't work because of
include("{GLOBAL_SCRIPT_FOLDER}functions.js");
And why do you put your external script in{GLOBAL_SCRIPT_FOLDER}
? This folder doesn't belong to your project but to Hise itself if I'm not mistaken... Or maybe you re-use this script in other projects?
Also, we have no component at all in the snippet ;) -
@ustk said in SliderPack doesn't trigger onControl Callback:
@toxonic The snippet doesn't work because of
include("{GLOBAL_SCRIPT_FOLDER}functions.js");
And why do you put your external script in{GLOBAL_SCRIPT_FOLDER}
? This folder doesn't belong to your project but to Hise itself if I'm not mistaken... Or maybe you re-use this script in other projects?
Also, we have no component at all in the snippet ;)oh, i'm so sorry. didn't know, that the script won't be included. yeah, i want to make a collection of small functions, which i want to reuse in different projects.
i edited my last post, so the snippet should work now. you only need to load a loop into the audio loop player, which i used for testing purposes - or add another synth / sampler if you want to.
what do you mean, there are no components in the snippet? shouldn't the normally be included? please try again and tell me, if it works! ;-) -
If you're using a custom callback then the main on control callback won't trigger. It's usually better to use a custom callback anyway.
Place this
Console.print(SliderPack1.getSliderValueAt(value));
at the top of your custom callback and you will see the sliderpack is returning the correct value, the problem must be somewhere else in your callback.Don't use
var
, uselocal
instead. Only usevar
in real functions like paint routines and mouse callbacks. -
@d-healey
thanks, that's it! ;-) in this case, the sliderpack movements have also to be triggered, when other interface elements change their values, so the custom callback won't work. i moved the complete logic from the custom callback into the control callback, which now works as it should. -
Only use custom callbacks, life will be easier for you :) Remember you can use the same custom callback for multiple controls.
-
i'm willing to heed that, but i have no clue how to trigger the sliderpacks' custom callback by changing another interface element like a knob. can you give me a hint there? btw, i still didn't find out, how to use the .changed() methods, is this related to that issue?
PS: Sorry, forget my last question, got it! ;-)
-
@toxonic
sliderpack.changed()