Current slider value doesn't update after deleting a modulation connection
-
@ustk I know this might be a big ask, but do you have a minimal example of this as a snippet?
-
@dannytaurus
All you have to do is modulate something using a slider and then remove the modulation. This also happens with โnormalโ HISE modules and not just with ScriptNode stuff. I'm not at my computer right now, but I can quickly create a small snippet for you later. -
@Oli-Ullmann The problem is that
Component.changed()happens on the script callback level, but with matrix modulation, since the component is connected to the modulator viaprocessorId¶meterIdyou can't have a script CB at the same time@dannytaurus trying a little snippet...
-
@ustk said in Current slider value doesn't update after deleting a modulation connection:
he component is connected to the modulator via processorId & parameterId you can't have a script CB at the same time
Broadcaster?
-
@David-Healey Oh yeah why not... Still it seems to be a hacky solution to trigger a "force refresh" from a connection callback
-
@ustk A broadcaster is never a hack, it's a power move

-
@dannytaurus Here's a snippet. I'm not using a matrix modulator but direct parameter modulation, but the problem is the same.
Remove the modulator when the value is low, you'll see that it stays low instead of jumping back to the knob value
HiseSnippet 1657.3oc6Y0zaaTDFd1jLoMtkRRoBUg.zpndnEJU1IstMvg3Dm3fUiSrx59kPhpw6N1dT1clkcmMMlp9afyvItxEtCWv23J+Cf+.HUg3NLyrq8tariqqq6GAwdXkmuemm2OddeWW0iYh88Yd.sL0Z6hAZmEZzlxaUrEhPAk2.ns.rByJvFwILZYe+.LX81tHeerEPSa5sjSSatY.pmmt55HaD0DG2E.bWFwDuMwgvi6sZgaSrsKgrv0HNIl80KT1jQKxrYABQZZXVfKxbeTS7NH4zlBB9bjeKf1GAukYcq7qXgtY874qeyblVqzHatUPXb8kuwsVFeCy7l4ZjGkEnM6lVDNyyfi3XewltNypsQK1ingGvcI9j51XYib.CwIG1MnXKhsU0t3iOPrQUiQqoCQqK.qPrH85OF0lWMfd7JRBZZSMLQJ2ygHokPjlITjV.ZX5Qb4wiHkmy.KS4XuFHyz5uv4Bz5.KxDSfxulCZebIOQidK3x4yl8p5hWW4yZDPMkFB5L5NLNdW5kuRlGmYtLOIi9QGpQiANl7X7X11XuANrzbvaXK7xz.m5Xuqpe.xN.2ahhqeZLc1QCSMCu0IlnvJmR365hiZWhYaIwJ4u6WC.hfMotHRBESkqzDmKRSXXSrvd.hXSNE71TV8b.kvGa1OSGvcJuAhi5tMhcTbJtXONQdYz1.efvIJTAOGbCr+9blq3fJxbbYT44qcVdjEY3gVxlIbYoMqQDWZ4Q+1vjckCbX7weoBsiaPJDI.gm16mv8uBh6QNLVCBp2rqq5by10cmvwNCq2kR1MGeHu+IqPBsGBebFc8E6g1ksV7S0WbKaVcjsdjPw7zkhivqC6kawqJmeYpE9PwL+jbplB0mM6Q2i4suuHTBVLPCjsONyS.OhXwEgRfZ+gF.zBSZ1hKa8g.kVcLw0kRhq.PLt1wNMtd99v0Wtn4guLQS0Xgl4F711x9WTZnuXRX99SkDlunVZXd9moOSBfscRC1GTvgXYYiqx7IRzLdjk53ywtFjuV4p8ceq74mV0IIi0C53fRow7CZzPnKzfPcq0ANLqHONSRcrMvQoopg7Zh4kEx1rvsVq7NJfW0PF9u2EtJH4EV1xMF8UWUhiqMVWtpbBhNOAGmHjaz9J2JP+g2mG1SYkjsQN8XCpTg3kwwoBnocRd5iRAMywGtLahvkwACGDcznJtK.qR3lsFr7N0.jWQXwQmxL6PoLA8Sh+VvMaz.axiEvYfkt+3xXmczYrOcuTtTFBa083Ohkwwju02+2+37c1.aiRAT2Kz5K14X.YjUldffYoJyF4cTXd5IUlIyLx1Bxqj9KIa2bCz1M2Kfs64gJHW+Upy1Kl.qLIN4HvyCqhnuAHt6wBjr5QjyZvcBbLDTqlXgnRoXaeYT8ojrXgsyJaKEHCL0R03eDOQClS1VKZvbcGDzevf2CFxIGCLcYjUfyG.GBk8PpL62F0JybG4JyNZF2SlXESzBqdkZ29N8oZ7eMwCmhjYgPQFB2tztJ4L7WOSIachqjfPNdIO7WEfolcGWGP90UklHkisvJ7MEtG5.bClmSTYJ81oswMEnQxdpgE48YzlZlzZzvgw3sT4Qmzv6BE1lwb2jhDvfUxMoZKjurLSeLO01H11ZrJHQpedEsYl6mh4qIk4gCKcMY+EC74LmtW.0GZvPj5XXpyeAL+0ul3owGKeuRQwqk2cxzFL49T.SMxloB0udOUtzZ8MbBgPItmQ3I.IdnI3N8Hkf6DWdG+jcO4PmFt4I9PJTrYXIgmpuZ1pnJsK5HTBhpV2tckRIk+K+4xm8u9yUWK3vnI0yP6WT8M.EZXR1gHZR8v4B0CmQjiOEq9VqJsv6pZqKCAouEVvlKsnNVF8N+vu2YxynuqIWb707PTeWlepM1.6PpIJU2OYm2wGK8J2SZhmJZJC4Mvgd5pkDWxAtFCDOvS4qrlCKfxGVUIiXB+oqINw7+OaJHu3eGfISgsy0UFCqicSgqfMSzS2BnZfBr4c6MsQdEFk41hQIoxMXOrvwtYSrWRYefWn03bTRN+KTXOrMFkzZ9RE1VXEh7Bi.LVXwy+mkef5qKBCEWcom4ImJz9e5sWOzauJNCGjoG6glgeieos7oU8Ht2T0eA2bvJx1588eX..NhnhOzzL8V02BWZbW3xi6Bu93tvaLtKL+3tvaNtK7VO6EJIsVKPTlSnKK.To5lgE3n0q5JQpJ+KD6S8nA -
It works for me with your snippet and the variant I suggested. Here is a snippet:
HiseSnippet 1721.3oc0Y8zaaTDEe1DukZWnjVpPHDHsD0CtPHJNIMsEDDm3DGrHNwJ1skJNTMd2YsGkcmY6tiShopHDeA3buwU9Hvsbiqbja7UneCf2Lqs2cscbbMIgl8fkm2ady7du4279ytU74ljf.tORKSs1dDj1aqWsMSzrPSLkgJsARaFcWt0ivNsHOzyBKHn0a6gCBHVHMso2RNKszoPpmWs55XGLyjDQBgdDmZR1l5REQTqj+aoNNEwVjZT2Xyd47kL4rBbGdKPilVeAjG1bebCxNX4zlRG8M3flHsOU2zZYykMWo9x4vX66kq9Jj52O28xQtu4csdfoI17t0MyszRXj1U1zhJ39UEftGfzRsN2pc0l7CYgavinAz5ND4fbnpvNGRtH2wRZhRpnBMoNVU55pBPvhVIxwMcni6V5koVzdzi6.kLLhjHtCTapjp2zITubwUuEhodCQkzhoRoBUoanW0zm5Ih3H0mqoWhIH91XyjmkgyEM0eooWfCyfIl2EuOonOLnmDYWYgEly.94NeYlLvYUfvv3aY754L9JitR0fHJvc83LXP1YUbmMZ5ttvT2j0fxHya5S.ytL2pkCVP4rxXgO8nrytkCuN1wnCCtuZoA+IwObkbcmOPtILFwTJWAriSc.ojEfpCRUJAk4.haX2hoXYLzIlM.vclj4LDXevHly3PbvZV.N3NYddlzT6reRDgz.kzJaadylXVChUVXeR+hLun2dvY6vEjcYYUhm4EYL5mks8P4IsVetiCwenrk2Y7GkfYYsbqS7my3.401dSDvEIAa5mLXK9cAyvy0XSjyJwnhc8HrS5FBpCXPBL6nUvTEJX406.Kq5PsH9HJf9dKckqDoT3twCrsu4wnGVZCr.2cYfUD1EOhufJM.sMHG.QWBQ6o02fDruf6AaTO7GDPSz45Y3lVzgCPMViZTvPka86pGmTNzQQgitc91QCn46n.g61Go2OrM5TCUuQ2XXouR23fTAwcTTWLNYA4HwfSV4Izdp9yyXXLaOucIqY+BiQdkYN47KwrHGAy7yyoFBA3b3G9Xt+9APLVBvvF6DPx7BzgTKQyH69Gy2jPazLVz6uNOZh8uKF2+hPQ92icR5eu4.92yWu5QmmdUEuP3dUQaGIcUbwYGvce7O2u69mdVB28Lm5cnXN31wAvOIuK0xxgTgGPkd0HNKdbff3Uk9Ccu58qu7k+9ptwSs+jicwIN4BZYaCmIZ55FVqifvoctAZRqSbPtpSrZpvnk.c6J5asVocTG.pAxbi8gypM.NqVdunSCkISc8bHFRoyAUF3CEE.ok5r9xkDMXNvYz6c3EOkrb5Q.rD4Ak45XfKpc7BaNyxSOtp3MzqPElMGtNN0PzQHD44gN1o5l2QeSaaHaYjBlRu32cATJyU6UVp5veqtaeengSpnTYNjMHN3DNpGmD48j7Cor0RrCfrLU3NX+9cySO11YtQamoFarfzjL9ufWSMdGFitr2wE6dSckK+xjBqfDWdT3YzqfeS.PrGukLydmDzZ56zxsppFZPUgpqcjEYpMkrbvvwKHGKUnpDlkZv+.OcXlSNVqCybcYhFLXvGpGlWNxwzMqrx47w5iHs8HZe8OG21W8F61W6uh6TiWrhSo6yTmWcedghgeuANlBt.yCmHIyMBUSc8sKtqR2B+2opMqS8jIHj7K5SdVKByrKeCD8OVUBQJEgvx+K4eL9.hM22sSKK8VosIM.OPbJ0HPMeUayLiiFq5x4hlpZoiC7tU9s4buMYXvzshuHUZhCjsYBcKmXYfksFuLFJ6yufC2b+DY9Zv39jvVWiSuPq.A2sqAndaLUgxFCKe960WY44gG6OS96CJ.+rztmMiecpq4TR3N0XCMgieidG4RD5a3IDB03dfvKAZ7HKvc5wp.2yb8cxK18xS5zvEO7kpD21udnseMntZFQ8NfUV96qFaHu1arEAxfJOEOwrnG+a+8wm8YQ20T.aeMeLKviGjXgqRbo0fViChS7gAD4Mg8jvpDQv3X+gx5UqVDLxgJSUrnkuBetlKuESLpNAdCO694dOq+O1Vchz4o6pigsHtIzJmCGnzs2DabKGQWpIwxk4LtWSNilHs6dD3NSiFD+359PMn0DBb7zo2J+dDGBNNn8142F.aX+xguyjIwWj609SALzyqOPOTcMjW.u7z7yYPliKquZjKjLDWD6gK1zm+TyvWYtDydUEEvtYpO0WZ8xxwF88IAjOtPDumZZlboFPvEmTAWZREb4IUv6NoBtxjJ38lTAu+oKnLgzZsfNEBuZhPkqrYXOBZ8ZPQaZz+BPrTiT. -
Here's how it works if you want to apply it to multiple sliders at the same time. No broadcaster needed!
HiseSnippet 1807.3oc0Y0saaTDEd1jrkZWnjVJHDBjVh5EtPHJNIMsEToNw4GrZRiUraKUbQ03cGaOxyNy1cGmFSUQHdA35dG2xi.WQtia4M.dD5a.blYW6c2XWGWSRnYUjUlybNybly4aN+raYegMIHP3iLxVsiGAY71lU5vkMK1DS4nRqgLl1zU37.LqM49dNXIAsZGObP.wAYXL4lJtLxLER+7x6rJlg41jXRHzCDTaxVTWpLlZ4B2kxXafcHUotI3doBkrE7hBlnMnQSZNOxCa2B2fbOrhsILQeCNnIx3yLscVxdI6kqsTdLt9MxWaYRsal+F4I2z95N2x1Fae8Z14WbQLx3bq6PkB+JRP2CPFSspvoSklhmxC2fGPCn0XD0f7nJvNGRdCAyQcDUTQEaRYNk6ZpBPvhVN1vMYng6JlaScn8nmz.plvJVhjFPiIRqdSlR8xmT8lOg5M.UxHgJMUnJcIyJ19TOY7LJ84Blk3RhecrcZeYHunIt6DlEE.Gb4bt3VjM7gA8jH2xyO+rVvOW6qxlE7UARqVbQs.qaa0UnFD4JLVQgqmfCiCxMycANlIV.K037oknG6gbmOA6tt.qqyaP4j4r8IfcZagSaFVRE7swRe594lYSlnFlYEMgvWuzfCf3GtRttyEn1DNmXqjqHlwpAPqb.1tepJInbFHtU81b8TVCjwbA.P0lLqkD6CGhYsdJNXEG.3bsrOKaFZ8beZLgL.kL0E94ZYQ4gFMfnlphyVJqPtYb0Gnp5kqjyLWy512NZwULmISq4rah4MHN4.kLSlmmE964Y6okB98DRxN7bZE.lw5vSUu9.mSYu7ELFwefSqtl5OLAywa6Vi3Oq0dpHE8XDfhow2luZ7cxqe1gHiDLJ3k3T4NdD9q5RIJBNotKDoU.qR8MgKFcSnBi5P7QT.v+VlZfFRqvQgf96EV78O.c+Rqgk3tKCrhvt3Q7kT0AvXMxdP.svKXYLWiDzRJ7fMpGBFhgJihHDtoavD.Xk2nJENnps9cMSRJOZ+3HfWsPm3AzBQJP3t8wlGF3G60P0ZzMrYly0MzKURbGF0ERRVR1W1OyZKgwiMeVVKqY5YsAj4WZMzKcyp3uD2grOv4WjWODhoxDO8gB+VAPXcBLQcLKfj84nmRcjMiO2+PglDZilIRX70EPis8cgj1WDJ19d.Ks88x8YeOYsp6eRZU0yEB2qH6vTzCiC2m49fe5vl6e7IoL2Sej2gRXf6jD.+nBtTGGForHfprpwyrvAARhWE5228p2u7hW7a2wMY0DO5.WbJOWP650AehgookypHHfbzMPaZMBCkNxIjh1byUJcOsCPOPkN9P3rp8gypVvK1anOxTWOFwRIcdnXDenNDHSXz5qVRT+ocm1rmyKYU.J1iAXoR8pRuxASTmj0RcrUZvnphWxrLUZ2bv53DCPGgPjmD5XTAUui450qC4aiUvoL23aOEpd578pDV672r61eHzvqnN3CrE6dvZDFNkg5goQdOpv.pTtDeOHKSYAC6eXy7ji74L+vOmSMxXA0Qx5+BdcpQyYL7JsGUr6kM0l7yRJrFRb1Qgm1rL9MA.wth1pL6QInMLuWa2J5pvAUEpOmoJxzXBU4fgimWMVoPUHbG8f+AdhlLuZrQzj46NIp+fAejYXd4XCS2rxZiymXNjz1Coi4+bT6X1aj6X9vUbO0nEq3HZ3cpSpFdOUwvuWetofSw7voRxboP0zzbqM1Qqag+2QpMqR8TIHTyugO4IsIb6tyagn+wcTPjRwHrB+bgGh2i.8c5F0xRuUZKRCvBjjRUBTyWkNb6jnwJtBgrotV5j.uqTXKgvacNFN5NIWjxMwAp1Lg9sSsLvxVUrMFJ6yuHSX2JUluFbgOIr00jzK1NPJb6d.zu.nJPYigkO+clKuzbvS8OW86sJB+r3NGOiecpq4HR3NwHCMA2uUOWtBg9FdBgPMtGH7LfFOzBbmbjJv8XWeG+hcO6jNMbwS7RUhdMZPCj80u11515h1Bshn62sKoABpVo89QL0i1uqoM.GZXQ1gVzj9gKF5Gt.TiOmneE3ZuvGnGaoBAYsIAxlqPTu5Z++0+5fi+L56XKgsupOlG3IBRsvUHtzpPa5AIId+.h5V4tJHdpnoBr+.m5k2YC3PNPYpfks802UVwUzlKGVWIugWowId+y+O1hepRKxzUGCaWcc.wyD.kt8IUG2lI6RMMVdaAW30TvooJAXWBb+sQCheRcev2DkRbxT6WovtDFAmDzd0BaAfMre3E8wxVj+09KgLP+0GZFptVpKfmcZD6XHK1Y0WSyoR1pSi8vEa6Kdrc3quWgYOulBbt45uzYFysUisR+4IzOtPDuGaamdo5SvEFWAWbbEbowUvqOtBt73J3MFWAu4QKnJgzJsgtVBuZhPaWd8v9UL50rDT4w+BEGxYCA -
@Oli-Ullmann Nice! Maybe it's not that hacky after all...
-
@ustk
It would be nicer if it worked automatically, but it's not a big deal to do it manually. :-) -
@David-Healey Fixing the underlying issue is the real power move


-
@Oli-Ullmann Finally it doesn't work in the case you remove the connection from the target combobox.
In this case thetargetargument becomes "No connection" so you can't match the original target. -
@ustk
Oh, okay. Thanks for pointing that out! I don't use the ModulationMatrix UI element, which is why I haven't encountered this scenario yet. Hmm...Here's an idea that should work:
When a connection is disconnected, you can check in theScriptModulationMatrix.setConnectionCallbackfor each slider to see if it can be connected to at least one modulator. If so, fire thechangedfunction, as this means that there is currently no modulation connection. That should work. Unfortunately, I can't test it at the moment.PS. Use
ScriptModulationMatrix.canConnect(String source, String target)to check if a connection can be established. -
I don't know if this will help this situation specifically but I had an instance when knobs weren't updating after preset changes. Calling .updateValueFromProcesssorConnection() instead of .changed() worked for me. Also not sure if this works with modulation matrix stuff.
-
@Chazrox
Still you have to get the right knob in the setConnectionCallback but a good idea. :-) -
@Oli-Ullmann yeah that's my lack of mod matrix knowledge talking. ha