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.
    Peek 2019-11-28 11-03.gif
    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, use local instead. Only use var 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()


Log in to reply
 

10
Online

556
Users

2.1k
Topics

16.6k
Posts