@Christoph-Hart Had Claude Code implement the decoupled label system, whilst retaining original behaviour. Seems solid but needs further testing. Can't comment on the code quality, but happy to pass on the summary if interested.
Posts
-
RE: Matrix Modulation System - Last Call for bugs fixes & changes!!posted in General Questions
-
Modulation Draggers don't destroy on disconnect via popup menu or matrixposted in Bug Reports
@Christoph-Hart When using
matrixHandler.setSourceSelectionCallback(function(source) {});which I think triggers the exclusive source mode, draggers don't remove on disconnect. Tested on latest commit.As per the gif below... They only disappear on double click
HiseSnippet 6222.3oc6bszbabjeefjfWSr1Zs2cqToRkTUa3XKPIRH.9RRjki3KQKrhThhfVZ850qcCLM.FyAy.Oy.BBoRo7V0t2ygbwW1ZOr4CPtkbJ9ZNjpRUIe.TRNka62.ke+6ddzy..RJYZKUaEXaXL8y+ue08vc8baJ78c8LxUX+g8DF4di70G5DzYiNbKGiZaRMrCOvy5n8E9AFqOrG22WXZjK24+PZD4l5BFxO+watN2l6zTjzjgwCbsZJ11pqUPRq6t5crrs2haJ12pq1nWX0ZMcc1v01sOflymuhQOdyC3sE2kSC6b4MtM2uiQtKme9FsVZglUuVC90l6FMtwRKciEMmukIet4EMazfOm.cuvhsVxH2qcKSq.Wu5A7.guQtKrtq4v5cbG3n1fGX4a0vVPOT0nN1YUya4ZaRnH0pwFcrrM2MhL4afEc2Dh14UDseZ9crLshaOg38VxNXIyPm.l6boAuymB7ppCdUz.uw.R4z.oKn.o2Ne8ldV8BR5gfmeX9ZNABuVbvmzAE0XMN2Wek7W8xWlsiqYeaN.MEqmINh2smsfc6Z0uEawxUXDfa45Tnv9cr7Y3e4rCEdCYM3dhYa35HhmRPGd.yGHkOCewBbY88oVErtp0tazd4ScZQSpqvI.qn4PGdWqlQif1O+g9AhtkY0ZwF51m0zsaOriX4.HDuitxkumm3PK299IKobIXtsT6d7hFBHyPq3krsY9hPnFCqPW9W35YELLZZMcMELKGVGA1VroeQe+.1F0qytJa601h4GLz1xoMaVEHg+sgnIOBiALXgo0puSSZi41XgmgYxC3.FbfntDwe+BeTMrEfMwkCi0gSKivQ1XaOHrXxb.nenvdH0lqhuvcLYsQi9RRimfaNb1.2YoMuQeHwPvUCa2lG3yZ45QCxaTR66TnPMmLzSItpHydhTTNerFP5Z4BElks8V2Ceu1s2r9d3++.A1IfdEJrF.qQlX.2qsHflX0xr6UeipLxZRg4BeXWqflcJLe3S6IfrUCRVCzNKOPvCF3NlUSBiiHUMCaPGqlcXcEbG+XFKwPaI7jrkV8AWWa47D9t18kDk2+8Y8bsG1qiqCDD862qmqWPYFAIfF4YNJTDKTvYdfi31UwbjiCBkbOXMCrVHg.oHhEzjGJcL.Sl20suSPAHrwY9RAW.MD1Gt.zViMfjHbRQB7scClA74.VigPBNHf31zp94JBx9Rfql4mC8B2dBOcIZGGQSRl5ipU3.G2FDfQcXEYofYEvF.a1PHDPSaKHm3ggCXfaprCvsGCgPQ1ilXGPLrwr.3QKtOHCLkHGsPjpVQHxZWjAiG9kY20MPnLXDoo0f6a0jaCQdf4l.HrTZQXwCFPZGXj9QxnQRDgnhbyIJx6y385I.S.NpdmBW9pE1vEXoSP4t7CDa4gGhsOVpZ0JUlgsTkJSuRgBWE52hfK4yZBnDfFORPSgWdL2FeAnhJ4qlbBpHCclj0HPwgVaWLgPDnIlTaAsleYexpYF6QgbD7S+xzfjzB4BCJkuKFAWoiGBKRs0v8OhUws8cYCfkKwwr5JiGT+.T8HKlPxg1QeWMEERqB8.cIfNMc87vrsGVt.VHHleH2KjTb6PJwGvtkSaKGQYE3sS7VqblTp3GZ61.RLwNYXDS.p+BupEIZcpkqL.o5RyL0E1J3dCPDafXCJEYHsjxNzzrG+jPdUn+gAbXOEnHXFNtAVsrHw1FtPKIgJDxM7mQQRAqiGDvgjKmQbKN7.GQbIQwQgtMhWpIAXyDJONCji2HRca5BOtvT3IXqQTtmGXEQnwJYaWM6QaWe0VoPDtugMDvg.fcJVcoAfgRlRR0Jgxc3lJYFGnt0fbbRZ9lQ9Qap1xoyf3MocYMa6Dr2uTwhgffzHUFs.Xq.hgZt+7i2AXtD1I641qeOXl1oOSZ+CdAklijRhTHF99VscBWLcOWXCUTnQ4MTbJwbkOoX2gzte.7ZB6NEmgUjCwBvUUO+oyDCakrbLEGMFVjp8Xh86H88u4s1p1cqses6c25rO3a0mBJ88AvYvk.opsqzLdRLSNhArV1tbk4cKHZJTw13GZtMwqVWWeRLuaWWGXxwS.SM9DasETJ6C8YM8WadKn0FYJTo1tsKj92108.3+dKgvtTHqsNL6pGS.BbYHqjMGRRASGxJsdTjiT4lBUKksYB5AWkhZCV4IftkqsMvVNQFmUBngQPIM7skkizdImhlwm7r3h94dAfdn7uY4+NE.zSr5ZNXdh5X5h5cDhfREA7hXYIe0D6usGbsZBOvNBaY.PIwfVlAOAkU+lX4MUThkYW5RPmKYxKyd24medpIWOSg2rdbSq99Kylu2Qnwdj2Pm1KypVgd9IpsuVKMhE7boq8MPHiLF3mnaO3QtKBTGQApCNKq54wrBLLUaWO.CKszRqndNBLuap0sb4Kg9w9CxB2CAR83LHwhKtHf2tPmwxAQqG.VVDTmfEKJerivpcGrEyo583P7YsEsBn0oxgcVgHhJn8F23FqnALKubCAn9hiiNOqUWPFVljMKM6rVXXSmt+n095W+5niAVlAcR1XEdEh.XieWoopwQJxrNYv0n0op9iHh5dKyzYv6mjJSfzYQGD4Mr9PLwfNfyoS5CPjG9TJKNAqvdxoP.0zi2Vxn8flR3p9tIOOBqUIelQTb7rsV1hil0zxSI0rLyycvrxfM8ERjKA5HfnsD2Rq8JsLG40zDwUhf2jFmCMcqDjkyNKnFQ58Z2fWBgYE9ukmm3zsvxLaKj6m8PHarMhQ3RIBTxYL2hKNSz+gYcsoSDC38CbGEkWrx6oSW.YIh1zrumOstHDsFMPmDtGAyK2wk7X93HUOXiMPPLt3APoncn.iPxYAWCZR9vxonzMt96M8JOo.BIO.T2SbglfZwTiinol8j0Xn0bWdPGMpxbKjRlNR2HvbFVYkyys4MD1psWSwUwK7sdDV7pQyJ6LhT.mORunrusk4XjNWXgEljzXDjMmhoDBCMZzPeAUVC0ARxVn9.ln0kPXDrllkTToC418QLiWlLb7dSqo+SOOd6MW6ZWijhb8sTpL7FxLEEigxVtuiERcjGCRfP2HcKDPR+yUurJDdB1nXZDx7gXgilIgb7M9x2EYMwMOjRewrvTLlL7CX8oCxVmBe2WlK3AHZNeoxWDZ2keTIIpK+pR4EQ9m5TgXxvLLlbci9jLoTDsYgR2hwSZ5UROoIhRjGBYbIQjvnjPkKKiLEgXwsUd.mR4OoqkSoIx0lgTrmVRv8koG77HxMFA8Agh.MbsMQaAhiBlkaivNWVB6SzK+ld7Ag1qgUPS2AHKBOXPUhHJHSmqSSg3bT.Rv.rlkT+dhlVsnPdBEeSxWGSVQkoHt54K5a5FE8WbLxxJTDFvcCUzENJhYZsAEHrKBolRQlyVm6KVZADbkGEWE47QtIjfUTnVBJzKGStmophFjAFBHgcsfPGSiwfzur30WnbPEa9g9qe+qsT4fMFrU4xOXy6+yuxMZswfpO7ms9l224KJ2Ds2awOd86O+c67kaLvdXkAku+i1YilxwaV996+fxswu2bILFf7GtwfGDPqoS40vZps967fO9WVThhSvaSFeGKLcL8ntHPU5vHoSxYVnJdbNwTF1tNWBwVizHiSfljTnP73JBwXMQLg3TttTXzSI3oKTsC+.UT+RQIlMMBFRQB.gzcxXDtT9YFuq1PuFXwU9jxppfz6mjlxXznRq7jHccuVstjx.HxPqmMBtbT+.xcRK5GnRcUOQW.5WUFqFSAfJSXkCi1Y1DnNjPdMkCbZU1ipbQT5poUazpkAyETYJmBE6B5KlV98PtKByQURjQPG49tYGQyCfI2rVWhvdEsPE7kFsv4RgQRkJwXKe85eGGOUXFbpZkyovwjJhBpVDZkqP5HflOUqWGJTqnT.0xnKrt8II00lpSQ3FUpnpaBnT+hxeZjD9PdUiCpo7yaPtkRx2T0yD3hTwpFHnRR4yBC1wOUYxHSl8fIKZnNCo8KNyeXfymBp1xuixhXHQXDLci3HhOAbNYfIXeRaGGcHYKqKC03DHw5Ch1J8mOdx86P3+ct68VWdhBeaqmPBXSjzsOsY5mLs01aCLk4JCkdMRv9qs29n4YQuqjdve1Cqs492VNkJvMclAr+sqswct6sfuuOfUcgxUvVQM2CO93mrBK8GHJrqUyCnRBGFnfuX4B8JeKGyM38jo5i4UTpLJLKthZJeRQRvipti+W1GljoeEMjOEy9m4Bq1wStAx3wVNY4T6ZIKtMMGjXvgzuhGBMYnJz7.GDnElaLt.jvRV8g35GQR5C1w0Tw0K0dFpDhxxIYSTaHL+AvlUXzNkPekIeGSWFaceDZWo3k9pywtBaNxEkZhNolXkxxjlvWUC+h3cgCEYj.ZWVtM41FbXUujf35DowujLEaUiPQdMulkblQwlmEavhg+F.SLK9JT6JmmVsj3PRM4P7PskGq4zElBH8wL.HfC7CCgF1TsUETkNCX4Dn5xodrJsSS8D7eBaew3FekiVXgsjehGZAZDsPzv2x11BQMThGSgmUmDOKq5zzjdhJf7zq50tVE4GZ.so70FHogRZ0LL9LIxAJhgh5CTcOptxSjADMfr7f31yvF.oOjDtikyCjwKe4DlwLD0XJJ7vrClezHCVReTiNKxN2bIjPMjMBnRiuftMmNNqhheRHrr2rXqpwwipx9tKRoFQf+H3fXTzMZzvrZmxdD.JkZjIfapPa0RgMP9Xh1xziifT3jD.0HIGpVuLziEzoGAc52swj0.odGQCT13yM8PlPVkpYHKmzjthbRJHVGwU+O+xxHFyJ1S.nDs6EMQpu0rk0leeDWUo3scMe5Y4fK1DD.xvpZ4zE4VbwrhbYWrfrqx5xZVVTk3mL.kji9K1DbzIOFc.DlhVjIZYnJwGB3XtN.ZwZoJp.UacDok7rRjgWicTVNGtJLEYDYi+D1jPmYTxgEShcrXzFqJLj5rOJY4zztuYT9VJ0IapJKSOIGLZlSWOdw082DZ4UtMgFiUBm1di3CRtUqQNhHuHYXSas0BxORcEkU08TdUSVDauYXyKcBM5rWS9IrKB5mzri7ikcI1bSMq6iWPQhkpSKjt0PP.u3xrhgZBxNUBj1dw9AV.lDlNi74SBEqny+iNwjnnv03wgQxRxUdBfFpp0VjjGJFW7V5bzb7oaAwIy8ZO1vD.uX7QJrxoxKezfhJH3IMN4gqD+DvKoFt+.55XD4.Oxkt7dKTYYxhi5LYhhFDMfYF9HE8RTbf36XSCxg0.vvAqDsVUSsVUzVnSdtys7wO5XHjjsPuJTKYUjN9inRZ1jin0YiVJp8BiHlO20o+QYKKUjGgyXxpEJQZ8wmnInAbg9Fj0ZHVHFRvRTbFByFIRtQFKwYlgHTYgnX8D1MYTv.sjeXKiGpVU8PBpkDFTnzTcjFExRV19hjhbwhXyFGlG6gAlN2oucfUOaKg4Z185vy31UpRTtosEk+MfJh+Avo70mNCfDSfNEvxSzSvYy8V6C+r509E2BxGyuzJQZ9p5VlpdPjg4D+EIYypkg6IZ2FYIFewGH89M4ARTVSqOvMfa+PYUe+.E1qc1d1Bm1niKyJk.2WQE1g17tBkcUEsPQNZDyHJeaJ44OoxmpnyoZr5mFZ4LUqyiglrSyjP9HPf1liJKosdzM5v7gfAa4H2P0wdoVEktCrSVRV.xLHIkN.0DQfI2Q9k602uSoiJqJuvVdtc2VzJHgBjj3zbSqV5QFa0JpNR4mifVp1ahf9dRnPJZDlnb4n65zVQWJfhJ2VPQanJwNjlXpD8vVb7SdRdrSVnw18wttiShBq23Z94D9ZqigoaOcMB9nZeFUvBJo9OY7kCQcG9fJXA1X+L9YIuGfOuShtIgEm9SA.RxWGPxWQvGDrNXrEeIjpL8Jw5otNz0t5dNkjJlPrfksqVsFaeIUSZrcSW5YuiahkbP.1BX2ScRGQCzH2EReagyO4aKr9kYNrZjZCz0oliUv85IblzUb1HjvZfADBU3WAx6U7ECuWwJAdCKSibuVd4UAWBug2m6U+udz+4MMNEy8GjWxiSMY0mSwje87Jwpry9o2z3ipQx6zUiNDW1UUOXKhzkaSwgVMEpKJ8T42T3ePfaOibEhkhLx8FAg2ra0ttU3ktYeKPhU6spVdFGkru+0qNL9gU6uprL0wM7z+tUUGvXxPbWMD3TPxONe16JmQi1QWH9odMCi+V4zR7MpZ0HSqyo2Lk5znCVRax8j7OFJVEi470LonkOtamGoHVrFcEnvHqHeZK4M34gtdG32i2Tf1aws8Ex9TrJYo1nU91tdVOhVL6hEdBwfO0D6eb9rUpUmr+S0H6e0Zooo+kiPS0VizTWiyVp6u56PpKHeoEt9pecVgKiZqpSgu3Io8NAwX1muZW8WyiO9a5x0F5eN50zzVraXDR5ZvTtBJ0qlVveaFJa0e2+5yFCk8R+5+fr4znmwGOB58wq10EY1WWlfk0gHIqj9tvpouzyz68P7kLOkf2achFlRP1uogt5cF5x0SSWt9wPWfW2d0sdjP+cmwueqVPcOW97HN9LTp+96+EOarBaii9wmeyuKneuQ9j6keJB3O5jMNmPVXdZTvOGTPoDxeV9jxSsqviRDm2VXDQRNe92yXRDymdydIpWF4dy7Zuu.Fw20dpqB4eHb6SExOC0829a2dbzwVsVV1bVBQ5s3aIU94wDHnvZmfjFQ8oORinZ7qdNcobFaz628xykhraENF2cpCgaDil+9eSV90W0JEO4MU7j2LjmHuuSgx1xeWcRVM+pGrJQkHY6PjN51ycGDnouAcWSTuVauVd55sIaHsMgJqJaivDZTq6ZalE7Gtp.QDxkA8k675706bm67ORCIq33Bqll48rm8r+ovfsN0H8bSR1KFo+QghpgmM6YD19adofsyOIVLdPgs+MZpXrjaCOaynpC795sp8ddE35ZeFIJfXKeYPbVXRDmO2Oj37SzINmkhCmkX7nu7juU9XaU5uKmT3CI3SpWfxZQk5U2q9Y1K34oEDeaUPKiGFO2XfQjfz2EvX3qE6al+VsZAA+D.7B425m+cy6.q91+5ps+uHuxwSBgJxsiDV9qxeL9kNl2z4+8S6a5buS8a5b1b6uvoK29S3EU9Bux8hJeZki+IivZ7+dTaK240.y2VAl4yu8V2SBapechPy5pauK0+Vx2CFmlQ8+z+6+smdSRrnVp7BdH+P5N70MrrDwqz1h1jURsV1W.Sz0G5zTe50655R0ZscZgMCiscc6cKGxRoo9hraGtOUDKeQPpkAK69t6voZCtA81Bq2Ys1NtdBUgwzaeC4q8SDBHeY8qirbTwD9I4WZgx3SqqPeeiMvWyeuylmedrdU8344m6TKZB1OKlkSRnuB5HPAkwBduDgxP8meX9srEGIe6vk.3OHu525.0NtNtp2zZcYq8DHpAJRpIncMVTYM5U37.8RDcaJFBskcSQSdzT9p+gm9kqVGxvI14Wc94+Ot4dBaATRRp.f2p6nJpQlMRkX4HMuAcCxzyVUtoizZ31LR6mcB24OkhMuYdEfyj1Pd0Sr9hQvmhf+pG.9F4kr3WUoeHyLkT9qrDvKlOTa3kIILL9wB4i9qXgDzzd74w6+G4K1WklhleT0aMQVCRTYRSafw3ryC2YRNDm+OsygXO29TQ2BSTMW961uq51DgcGovaSG6VtyQA7ndtB8rLpIgio7AjT4yB6rJ8btvNqF0ogZw0NcpvRC.ehSndqJQB0Fq.GY8xh16wxRVq+QgCJVn7eQ11XFahzXtyqyAtXjq65zKVM8WEJI8+0jv12uIHculAH3x8ku8rt9oV35htV6S+QCQuQnzQA+rGI.mJPUW5MAdLc8Gu4V.IG6bpSuu7RMg0j+0YIkj+4++Sb6UjZjj5OBVSE8GAKk1VLjF9GAqjCC5EL9ywhJprfH0Wj+yCxdZ3SH+rZqlUF5E2BubOk2SaxlbMmd8CTOk60N9CwS2BvnGOkgw9xBmE9p9oeldS9TtLtW+fj8Oep8mNVEs823D2enNCo7nsYM+egvyMq0pWU8okRtrvwIWlxn+25DiN2ymL5wUCguejQye7Gn5wKiPEEIkLJ7ZAGCARGCGqr32b1HKdtWxwtLNyeWDdto+FhEdZkpL7zO+RcHYOW2tZ35u+q+5+2atIuaOHMjjS7+yMiOFU8zZ8FNRaOTqb8x0B9VEORnEdKZ8e9lmcBVeeD61eprGc4M8b+rvWrVR340ks.Zqi7fYlB1mvyrpidurfEeqOqYyzK0HSbtWzIN+K5DW3EchK9hNwkdQm30dQm30O4IRACtVeXhW4lyvXmcukpLr4hqAL7a9+wWGeQ5
-
RE: Matrix Modulation System - Last Call for bugs fixes & changes!!posted in General Questions
Might take a look at this now but I think it would be nice to have an option to draw the label on
obj.clickedrather than auto appearing on hover. There is no.clickedoption ingetModulatorDragDatacurrently, and my effort to implement one with Claude code hit a wall.EDIT - Seemed to have got the clicked behaviour I wanted by drawing it
.clickedindrawModulationDragBackgroundinstead :). However, the issue of the label appearing when I don't want it to means that if I click in the label's area the label appears.EDIT 2 - I've got it so the label won't appear on click but if the mouse is in the label zone it still activates the hover laf for the dragger, so there's no real workaround here. I think the dragger and label need to be decoupled. Everything I'm doing is pretty hacky....
@DanH said in Matrix Modulation System - Last Call for bugs fixes & changes!!:
@Christoph-Hart so with the singleDragger method the dragger knob's label will appear on hover when hovering in it's location, rather than the label only appearing when hovering over the dragger itself. I've drawn the label well away from the dragger in the example below but you can see the label appear on mouse hover:

-
RE: Matrix Modulation System - Last Call for bugs fixes & changes!!posted in General Questions
@Christoph-Hart said in Matrix Modulation System - Last Call for bugs fixes & changes!!:
confirm that it works
Tried it fresh again just now and get the
Selectable sources are disablederror when usingmatrixHandler.setCurrentlySelectedSource();so I'm not really sure if it works or not!Have set
"UnselectableExclusiveSource":to both true and false in the ModMatrix floating tile but neither changes anything -
RE: drawAlertWindow / drawAlertWindowIconposted in General Questions
@dannytaurus sadly not, could be a source thing.. @Christoph-Hart ?
-
drawAlertWindow / drawAlertWindowIconposted in General Questions
Tried drawing an image and from a path and the icon I draw is always lower res than it should be. Is there some limitation here?

-
Preset Handler YesNow Window Messageposted in Bug Reports
PresetHandler.cpp line 61:
if (presetFile.existsAsFile() && (!MessageManager::getInstance()->isThisTheMessageThread() || PresetHandler::showYesNoWindow("Confirm overwrite", "Do you want to overwrite the preset (Press cancel to create a new user preset?")))The end
)doesn't make it into the window text. Also, does hitting cancel take you to a save as option? The window is appearing for my custom preset browser but I don't need the save as info so will rewrite in my fork... -
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@Christoph-Hart PR sent, I'm not being precious about it so feel free to close again, good to get the practice in

-
RE: HISE Transformation to the new ageposted in AI discussion
@Christoph-Hart Style rules to follow strictly:
- Tabs for indentation
- Allman braces
- 120 character line limit
- PascalCase for classes
- camelCase for methods. ???
-
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@Christoph-Hart let me see if I can course correct this PR

-
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@David-Healey setting it up now, have you across the AGENTS.md file at all?
-
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@Christoph-Hart looking forward to jumping on the MCP workflow!
-
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@Christoph-Hart bad Claude!
I'll pass on the feedback!! Obviously it doesn't have access to the whole codebase but it should be able to match the code quality of the files it read.... Will stick with my fork for now. -
RE: Matrix Modulation System - Last Call for bugs fixes & changes!!posted in General Questions
@Christoph-Hart that's fair enough, there isn't a solution for everyone I guess. Happy to force it myself in the source but Claude couldn't get over the line, here's where we got to:
Here's the full code we tried with the limitation noted:
if(auto pp = parent->getParentComponent()) { auto gpp = pp->getParentComponent(); if(gpp != nullptr) { auto pIndex = gpp->getIndexOfChildComponent(pp); gpp->addAndMakeVisible(this, pIndex+1); auto b = dragAreas.getBounds(); if(!labelArea.isEmpty()) b = b.getUnion(labelArea); auto topLeft = gpp->getLocalPoint(pp, b.expanded(pd.margin).getTopLeft()); setBounds(b.expanded(pd.margin).withPosition(topLeft)); } else { auto pIndex = pp->getIndexOfChildComponent(parent); pp->addAndMakeVisible(this, pIndex+1); auto b = dragAreas.getBounds(); if(!labelArea.isEmpty()) b = b.getUnion(labelArea); setBounds(b.expanded(pd.margin)); } } auto translationToOrigin = AffineTransform::translation(getBoundsInParent().getTopLeft().toFloat() * -1.0f); dragAreas.transformAll(translationToOrigin); if(!labelArea.isEmpty()) labelArea = labelArea.transformed(translationToOrigin);Limitation: This works for slider → panel → panel (grandparent is a panel), but fails for slider → panel → top level UI. In that case gpp is the top level HISE component which doesn't behave like a regular panel for addAndMakeVisible, so the popup either doesn't appear or appears offscreen. We couldn't resolve the coordinate space translation reliably for that case.
-
RE: New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
@Christoph-Hart Done. It also includes a crash fix I was experiencing regarding IntensityTextConverter
-
New LAF Properties for Modulation Display: Selected Source vs Accumulated Rangeposted in C++ Development
I had Claude implement some extra obj properties for more flexibility in drawing modulation with LAF:
I've added three new property pairs to the modulation display system that expose separate ranges for use in LAF callbacks, giving developers full control over how modulation is visualised on knobs.
New properties available in the LAF obj:
modSelectedMinValue / modSelectedMaxValue— the range of the currently selected exclusive source onlymodAccumulatedMinValue / modAccumulatedMaxValue— the combined range of all connected sources regardless of selection statemodAccumulatedLiveValue— the live modulation output of all sources combined (useful for a pointer/indicator that tracks total modulation rather than just the selected source)The existing
modMinValue / modMaxValueare untouched and continue to work as before.Use case: When using exclusive source matrix mode, selecting a source previously caused all modulation display to reflect only that source. With these new properties you can independently draw arcs for the selected source range and the accumulated range simultaneously, giving users a clearer picture of what all modulators are doing while still highlighting the selected one.
Files modified:
hi_core/hi_core/MiscToolClasses.h— added new members to ModulationDisplayValue structhi_core/hi_core/MacroControlledComponents.cpp— populated new values in ModUpdater::timerCallback@Christoph-Hart how shall I proceed?