Replacing ScriptModulationMatrix.getModValue in the new HISE
-
While the relocation of modulation values to LAF objects is a welcome upgrade, the old
ScriptModulationMatrix.getModValue(var component)
granted access to modulation values from anywhere, which made animated displays a breeze. You could simply use Slider 1's"getModValue"
in the LAF of Slider 2, and it would react to the manual+modulated values of Slider 1.Now I'm not sure what the best practice is for this sort of thing.- Linking two Sliders doesn't seem to cause any inheritance of modulation values- adding amatrixTargetId
to Slider 2 doesn't make a difference; it can't pick up obj.modulationActive or the respective values unless it's directly assigned- I tried sending modulation values from Slider 1's LAF into a registered variable, then to Slider 2's LAF. No luck.Is there a way to safely grab modulation values outside of their dedicated LAF objects?Modulator.getCurrentLevel()
does the job. -
@Goodflow
That's right. But how do you get the information about which modulation mode was selected? In other words, whether “scaled,” “unipolar,” or “bipolar” was selected?Perhaps via “modulationMatrix.getMatrixModulationProperties” or “modulationMatrix.getComponent,” or you could use “modulationMatrix.setConnectionCallback” and then write the information to a variable.
-
@Oli-Ullmann Good point, that used to be
getValueModeData
, right?modulationMatrix.getMatrixModulationProperties only returns default init values for mode
modulationMatrix.setConnectionCallback looks like the right area, but I'm not sure how to get mode values from any of the 3 parameters it works with (source, target, wasAdded)
ScriptModulationMatrix.getConnectionProperty
, maybe? Christoph described it as handlingany property of a connection: intensity, inverted, aux index.
I couldn't get it working, so I'm not sure if mode is (or could be) included in there.
-
That would be one way (snippet). I store the values of the main knob in two variables and use them in the LAF object of the linked knob.
Please note that you must press a note to see the value and modulation.
It also only works in the Interface Designer and in the compiled plug-in. Not in the interface preview.But it feels dirty, because I have to redraw the linked knob in the LAF function of the main knob (sendRepaintMessage). I don't know if I'm doing something wrong. But otherwise, the linked knob doesn't update.
@Christoph-Hart is this the way to transfer modulation information between two linked knobs, or is there a more elegant way?
Or should this work automatically in some other way?
HiseSnippet 4315.3oc67rsbibbcC1kSrHksikrRrSpxU0gUJG.IPHL.fWVwRk.3Erhk3MQPsx1r1RUiYZ.LYGL8jYFvK1VU4G8a447l+RbdIe.oh+AxmP9CbNmtmK8.L.DK0tb4ZCr6hkSe4buOW5dXepO2jEDv80Jrx423wzJ7806bia3fcGPsc0NXOsBef9g1tufYQ53Xaw7ImyBB014FOZP.yRqPgG+TbjEVdIMwm+uOaGpC00jk1jl1y31lrCsGZGl15oM+BaGm1TK141CUFcilGXxc2k6vGAT0i0qp4QMeAsO6XJNrGoq84zfAZE9PciMp0aSiFcg+7jZazf1s2VU2xv3IOgxdROVMqFaXtEsZipZE9a12xNj62IjFxBzJrzNbqa5LfekqDAOyNvtqCCevPqCfYYys4NVHKhsps6.aGqSiEWAZ.POMU38Xov6CzOx1xNo8Tg3ORzAIcFpBvBOJK483LjmgJ4UUg7xgjJnPRKIIo2SuiousWXZOH87t5G3Fx76QA8jJoHGq1irapuKGFgaXkgzWvZ6COjLihaTsZYB7UosWYkO998Cfu+IxWb7I6PN7jS9BRqi2izd+8Ojz9qNd2yO3ji6r7DeDS5dkFWALfCBIdTe54rqCk1xjOkT851sYvmdM1NZHC4VGw.wZlgTulYC5lwCYj8ynNiX6zO6Xn0spy1NFUsNa2uoy4sN6bn6ZUpucZyYaXuyZ8zuoyA+p8glquQxzGB1oegKu6gsZCcDq4M8YfA4gbSpygb9KZ4ZATuSwRw.yQ3W3kYdQS7nHzoLm9LPLMzi6BOTb03ArJLm3etR.KbBXpP3of+vD5ZpHHcHHJReJWjjgOQz3y5Gw7cfgxNhaITQaG0gC1SKKqz1WQX1hbBQPVHzI.3IH7Iq8J9yJJRkJ.IYG.VXsG4ZFZycKtpkO8py3gT+ajdzWsbp9m1Kdbx01pDMvNibnXejSot.cuC3WtuOeDvGuwYnThaOeZ+TJCXtrcKH8z9ykMIHL5y7CDrjPGRNjBtfI6RcLuuYOvxMh749HgsGMjBrEz7grdS10LUbOLr9xpr5KLAiZWZRVJdISTpG2GjclU4y2xFkoL4BGUR+M3Rm4gs9tt3YLV89d4yswh2wEPSQA9PwVb9WDY6BviQ5EM8771+pmElCjVreYBu6+ZoU9MqrrCFzkPg.1PKUnPFDaG23HaQTVvNB5kdQsmS9XhQipP+q.41AKnBGP5w8IACnV7qhmk2DIjfCDSBYYuJTKq8cbr8BXEunn.jqQJpfmOjzX8Rk.7TqLA5u9r5erlmngmWJCkdIPoWJVRP8MS3aeSQmSkjifvd9bORmH9reETciMIaARRenXBdkIu94pxDY9nAUtxNbPKGuAzhwsz0AbQTlTsx5kJS1DnlpkUDCOk4x7op9.WYY6dEQ8NyEcSXUZkkAtKfEk4rnqtQ4+hfg4DvFaHSRLqhoIuWK7OqhzRsRRJnekdPcm2qpeAaeFywl0aEIU+TepkMnmaCjRwKlCIYcPRBEcYTC9p50X8WvearkPp9FfijZxCbAM4X1ih1dvZPZ.hwFBCRiZQ7AA9.7xIi.OrIJIrwGv7yUCrCYRi5xj5B9oZV14y4WBrCEhPsqisIFGy10x1DiyIGS1Ubje9OW33cfXZ+1eq3AS4LKImvuQ9e2xptbnPjthl48ucJh3uUQtf0imm.nzbwcYqnGVNVoZB6IcJcG.Bt3NU2IlaaHJvWCSniG0z1sewUGvbtjEB5u0DNLYVq0k6f4mkgmM1nB5XnR0MSgWDaNCEazB2VN18cYVHkUbe29Pv6JV7Qfr4bdmPejJvoJBcUlf1cWPunJXkRuvP7cMw2BM1lvOtpI3dymYsCOLjOb0bkRiiVDAgvObGfcjGoV9lAKu1CiOwA2QYW.DZ+hmCzo3AHit.l+krhal3J0gE9uDPjQ8gzf5BoHMfv6Q7.+MAwSyaTvfh4kgPosQaaYZEg9futWlYLmisqsG2g5Cq8F4F8iPZTuTfn2HGmWpILLMsae7+lyoEfKId4HMK6.OG5Mjg1t1CGMjTDhUrdoHkS.T0WHIXTWg1fDvIgCngvWLg9gXGPnNWQuIHFygbQmB9MNeVRWbkKnKgbUK5CtikFF.N.OqK6WQfjiYW0YTWAgEOOwBgjGLDd0l0vqoN75hg+sQ7Q3.fRg+hzFWDuCIAU6zcDzHXrdFyLj512gk.3RfUq0HSl0X9iqWoZhUrJBjVid7.ag9CrkwViDPJJ1HsDLa6Pxn.VD4AXUNVY8idPZtL+vaHPfESoD+RpsinpxqFvbESRApv.L4PnayPlULCFntYc.ORVKcaS+nIv3GRpUoJ7cxXxvjWAQxHvnMQDxjZaaWZj4Mo6MDpmmyMfHUzWxRlz0Q7d8.O8wlJl3QEjTNP5dGBjYVxVRnvHtEpDqC+LTVHK.OHF13NNa6FC6hqgYoCyGApRWk.7Tbr1v.Lk1VENzqmJbh5JCbhGdDb.HM4dnNN+h3ahMTEqCTc6UkbL5MR04GrvAkSPHghol1kUT5kSkZH8Ll+PXo1sM8LTZoskjQpQXLfpkCfRVLs1lkFCPkUYN.pXXMqjkLvhGQgi44NEVteaXRk7yEMtbDSI3XJdfunwLwjAV32jKuxZLUbLK2oNkT6lIlRFwijBSH8bhBbw5uTBnw0uS.zLANFhANhQzF2pwSFVUDsY6kk0mll73Xm8irXOLqIgK+Xq7T+8Pw.wE41kAovcH8FlewPej5wlu8xrgr1GJezXtqzdr4ksX6wnVirTak0k7TW9063..uZkMkMvbsjD+THbLlY.PBlChcuDYl1xLz9RFxZ3PV1jF.dlo.a7I3i4KXVdVxgZIiXLVodFVogjxgO4O5Ml8nGS.HZKiL.9zEl5K1NgqPp+UNSU6MGSYw5QG4D9ZWOUOYf2N88soIOsG.0w8xjqY4rWrj8DekaRl.UxpiUnavEqLOUn7KND.TzUcrBOxEvhrZOuTJeolkmfPi10cnJtUlPlElT7obslOGewCJ1HI.tv61wb+gTG6eM3saM7HjEEkI170ZQEi8wjZJ6+DlwXQkgjMKwMqr0XMUGA4FoalzYLOHEn3SUl7BWd2UVNyIy5ZEMliXAAz9LTE8sSYOtm44V75e2tmI5U22a0xyirej4W43OQV3P1tLmVQZ6wLzvM6rg3ihwzYx8JHEJN9nO2pQCI6raI9D0k7vtxe1xs8XRPr2dsEeR6Z92FCiFp6bwT1Z.gPpCfLSw6BTYPFkD6tAL6Ro6LvpxEDSy5XZG8yqdCCvvNaUBwEDgUFDUSD5TwJ9HynPsELHuNpZUTBMeoUlW1nX1SUIDVe6701VhCXPr+OxJi.PDTwg41G5.xsJ8cC4iHBqHk48Qep7HWhA40SXbFHNyIYhNI4jjoQimGWkkZqhM0A2U6TrUN80TAICDWWWQ7pc3Cq9YVnIksq.qdfyO2PInDazNVbc.Vb8X7IlP.1DJmwkPQaHv0fAzPvrB2ZWTTlJDRK2UjKCPFiOTCw6+zxYVYhjJtKOrvQ9BZ3V8PE8V0ce4QRhtbN4MIwmSY+IU7IpsZ5GQkbPn7c1GkUTs331Wj7D3ZW3RKaFcrHGhhrcpJxKPtSLepH4YQDaXlQOBFWIUGnFGSLrjrLDvxHCrpp.naet09jYO5DJD8RB8JYsTnHhRGKkPmjRi2hwxZgTNm1WYBG101B+yjG.T7LltCdo6U0wm3SWg1hpeA6N0MKVrJxgkQFKkdm1XQEinL6wInz8j9yHUutVsdhOjOAdvvP9PJmIrcjHZxLhVGibr5p.xxiwUS.6HH6RaOGalUd0sTVcqwApBUe.4TYqRiQHIBn4fVl1h+beyQd86DHWzt3X3WbL7KNF9EGC+higewwvu3X3WbL7KNF9EGC+higewwvu3X3+qhig+M0gmmyg++c4HzyAbky42EqWmmm9rv1hiU+1z7KNb8EGt9hCWewgqu3v0ekd353NPCeR1BXt6w7P1ItEE62KzMY7t50K29vj184NNn1KmtwKwA+YMwhtiF1kAJEg.HYfZEVJ6sef9zu8CTubFLk0PnLPt6At1gm3wbm1U1fVTgG3MkPDUACMTbOI7CitmDjGPllskVgUzi+cOWSPyQ2QE+g+iK+uZp8UGfmzZLj.fdpL0XajGJrG6RaSl7FXXY88XAuHj6oU3QI+JnqU3ucdv60o2KF+xl2j7PSdSzNSqv2SWXKpcEdtoIc+6nMGvr6OHTskzEy3k7QiZatUs0WeCi00h2RWYyaswlMparYUMkE+XOFq+j5OopQ00WWK0DWNkmTqZ0M1vnp1P0KBjFMGRSI+e+epoWrl3.fG+w.OF5aeMI4vqMzvcjYHt7EGPLmooHxd+oJx995ouoHpBsv7DZ+.cke0NefH5BnWxNv8TbGIBwKhiLBqGoeKh1Hu6OSwJULLYlVmyyXSMTH3Om52mEhP+c0AOLfTGzDZZSdAh7izSTQp2mI3s9R5a3RlKQD7hBwEp27F0aElWYWxIyKI9d5mhYvjOM9nbnQXs7qCZL5pg4GnueudfW7TBbI81+hWO2CLpn+cjn+eT+oN7tTmTAE30BeaJj2GL+rntSWNRRFfwLtse9um2a6Gu4919Y73AKMewCtkKqmkdvcY8Lu1w+3ITMA2iq1xbkB8dRxTW+v1mDIofeR0E9sRX6H21Er+19r+sQLWSk9emlnExAoFXM+2a90fmwdP5RQASSfzgr9.NUa4bFDonyMtlpFicFx43qKT+r1cePyC4bu8k4VpBjSG.o+ehXSgx.F.rmyOhh+d3uqC27EpcdPeWtOSlWkZ66NJHjOLlAD9w6Dx7DINT3B8MZTA9z6ivuextvW0O4UyyuLNxLls5+QysUJZIjnxQahGfwDjTYhg2CTpblQtd7eYG45L9nPXwpL4PvUywiFJeiOAr65xbvBDJ7Hbsk74p3yhEnPskhG9yvmnNMvmKD0oQbmZRfqj9dzKIHjzY9YEA+iEiWI0bfqE65XTOgFo7e7+4yZM55nAkXI8eJZKGs2AtWBUNHEkpJfehTA7t5nKDw0xmP7+2oG6RI5k3XBWuu1CRehYHPBm6ScC73ALiLtJYCsOGxXOHSqiMiZ4NiLstGKbjaVPKaJynPQQaPTXnFEItwZpMdJ0MCvfmy.oirUTV+uelL1PGFv4VmDXBBFTNmITwHm.l3MV0PchoMWSs4Om5aMdvoBO9NkqS1buUF+aE2RguETiQlrdVNlF6XOzygsOrX0AJ0WPiuOTaunzq3VytN7HtK2a.20NiV+LF3+AeauUo8bYnVggT0TM9flmwbXPBJoM8O2D2GJpuzG0cRVX7ReoRlq95mpKIWB57f71asg+kcD17Lsee8S4N2HMTaKh5IHhk0kOLqXKZZSlF+u+O07KUUuYMM+oM+xQTmwjtQkE7cUxeKVxKMmlG+85YRQ7gg+m2KZGyRn2nLZmbezdU5ARVBy3ID8rw2NzoTk0AMGOB2cV4Iw4YT29Lzj3.WuQgxmJnO6MGSM6Jn7MuN1+5LYBIeIvjCxG4yTKZsSFENM7noohGg7a134qBXP30SidSLZE7qX97wy3a1NsvkdemLHWZ9LHm8doLuz6+fdzpZQAWu8P2+P8u7sGhESY65G1Aa+I5P5y0HhHtj2LgbuOpp79.GCol97uwTdzUXbh2QzBv2thKG8kgnAvyDiLGXkzYEjY+2XZlETSLwZ20IV+tNwF20It9cchabWm3l20It0sOQrvqVifPsx0FP0nmtubeBKjrIkPnh+eqm9RK.
-
@Oli-Ullmann I was using
sendRepaintMessage
from the main knob LAF as well, making a note to avoid that in the future as it gets ugly in the preview window/compiled plugin.ScriptSlider.connectToModulatedParameter is the all-in-one solution. Thank you for your guidance!
-
G Goodflow marked this topic as a question
-
G Goodflow has marked this topic as solved