Forum
    • Categories
    • Register
    • Login
    1. Home
    2. Lindon
    • Profile
    • Following 0
    • Followers 11
    • Topics 634
    • Posts 6,971
    • Groups 1

    Lindon

    @Lindon

    2.3k
    Reputation
    1.8k
    Profile views
    7.0k
    Posts
    11
    Followers
    0
    Following
    Joined
    Last Online
    Website www.channelrobot.com
    Location Beverley UK

    Lindon Unfollow Follow
    Beta Testers

    Best posts made by Lindon

    • RE: The world of HISE

      @MikeB -- Lindon, Hull UK, Audio Developer, before that I worked in Telecommunications (real time and all that - not as complicated as it sounds) and before that I was a record producer....before that I was a starving/failing musician.

      posted in General Questions
      LindonL
      Lindon
    • Legato/Glide/Portamento/whatever else you want to call it - in "Synth Style"

      So for those of us who have spent the required hard-yards in the sampling business we have a very specific idea of what "legato" means, and frankly this aint what "modern" synths behave like. Stiil we are often asked to recreate this "synth-based" glide portamento legato, what th ***k else you want to call it...thing. And in my experience its a royal PITA to do....

      Essentially notes glide between any currently held note on play or release as long as something is held down...and if a truck load of notes are held then they glide in played order....(where truck load == 2+)

      HISE is not best set up for this sort of thing - or so I thought.

      So after about 6 goes at this and also after the realisation that I really really need a holiday. I think I have it (or a close approximation of it). As I wouldn't want anyone else to have to go through the outrageous process I went thru to get here I decided to release it. So here it is - again MIT licensed so all yours to use...

      HiseSnippet 2943.3oc6ZstaabbElzxLIj4NPKxemJzeP4PcgT1N1wMohhbk0hvafKkbLBZCVt6PxoZ4ND6tTLrAFnuA8MpHu.EnOB8QnuAsemY1kbWIYEUAmKNsDxRbNy49s4ry5dARGdXnLHW9RCVNimK+6TvZoezjFSrE94LalK+aWXpzWN1S3xyc3xY1ggb2b4yuwSIDxW7t4Te9W+9Cs8r8c3qAkK2oRgCukXpHZMzdG7EBOuirc4CDSSg88OvzQ52P5ImCkYiB6kalsyY1i4crIztSgbGaGNIW96Un1ngN0F8I6+npOt5i+j6+3pUeviFd+8p439fGu+9Obe2Q0dj8CeDH5MLbEQx.qH6HdXt728Po6RqIxE9ZAbpHTLziSKplyBRVC9HomKYhDzbMlH7b6k3kBykKegdq8Yan8Y+pBsEthUvW669.0Fr0Tj1Al+NYUuMxndUSqd6kR8tBUJeJU5tZU5CKX4DHlEsdGcrzzOhGLx1IarTiat7eWgFRffezNSsOieT.VrhfxObu8pvvu15Iil66DIj9LoeGYDuqe4sJ8skJV5EkXWbqQitx8HwDH873AW41TpQv0QXY+4SGxCpvN21aNeEhv7y5SK7x8ooC4NZqNEhReSeQT2Yb+WVhPtXWE91IlMsiro.QLLf2LdPjfTg7M4mix.cXoXgl7vyhjyPgvkhYHaQ5N2yNJaJDUnEuA7AYhaTvwOTDsLcg3Eyqt6MKu55S6uop6GVnmHxYxUqu24JzW309gVeiqRe2BFiFwchVqr2svQe40VR9JWUdqWRS12QU3gU7fpuJ5xN6F2kM+FuV0j7G0j4+es2ujp89Hsp71Edl84bU8mRQ90p0ijASYOki5Oxmdc0f+iW80fcchfJLHv1OblLjWMMms3SECj97vLPu.E0tRJx.sIOZteVVqAkAKxUbDbEUSmTm.LElu0A8r8yvLrNCmZK9lzKM7sQvyhCK2sanCbLjeNsT5M2Kj+LgazjT78elBbszfO1NvEwPmLIyabiyf9unU1a7Sv7dUekMuWaL69Suzr6wy6cmO3CJv18dkXMjyVFHFOIhU1YKVs8p8.VKguKl3p8bOG6IK2tmcvYz7VvV884dr9xgxnRrRrd7fohvPZ5LQHaBOfObIaLRLi3tUXiB3blbDyYhcvXdEVjjY6ujggiBow4FRG4I7GyrYNPEHLil.1DJGEsvNfCjcYPqkNB3ybYtRm4Sw7UptarQBOdHqbzDNaSqXJ1bKkPb41dLgOi1KYK1BQzD47HV.OLJPnlnrBPxwatKoCIa6QkwZIPjq7KgDSmGBKfzyJroRWwH5ubkYMa9POQ3jJLWAw5gyi.vPBnC54huC6XWY.Kj64Qb.CFps00ZmBGRJyHGZTrKRI2ESjSyZIvEMZdfODIWQiqDtLkD+SnIKAgPeDFvVtfLMppSPVT3mRwrAXS6gxy4JqQG38kQPY0JAEBlsNtFuU3Dan8C4wtLHY3fsSYPAjBDFgPu.d+Yx.kDungtiRCN1fY08nAOqdeCloEqW+tmZ1znIay5VX8lUXOybvwcOY.CXzudmAOm08HV8NOm8ElcZVgY7k85aXYw51mY1tWKSC.yrSiVmzzrySYGB55zc.qkYayAfoC5pDXLqLMrHl01neiiwx5GZ1xbvyqvNxbPGhmGAlVm0qd+AlMNoU89rdmzuWWKCH9lfscL6bTeHEi1FcFrCjJfwLNEKXVGWuUKknpeBz99J8qQ2dOuu4SOd.63tsZZ.fGZ.Mq9gsLzhBFUiV0MaWg0rd65O0PQUWvk9Jzh0tmcrgBDjWc7SiAlc6PlQitcFzGKq.qr+fUj9LSKiJr58MsHGxQ86B1StSPQWES.ccLzbgb0YiH.EZ8IVFq0klF0aAdYQDmFYU77d6R+d26AnsMHeugkJSCQcUvWLkRGPlAaHxsotDTNrMxeBBrWxbPZDxml4YuD0QQTiFhJGoKmMEsHn1DgfapLSa7CiPS0XYdP.ZH3sDL0ykRU4gpjXTrpDfTWRDvmgx9jVGU.uHTY5GiTQfZsYSk4npPT.P5+pMkiFwnpugyCgJOg6bFUaozIk5fxtPztSny2E9Cky8cSjDpUz8iPE.ybDiKnuiFUNn4LJymXGAyRcMKLeN2UU4OwdFdBTkyXI6Le4BkO.XRBvylj4BYrQG2sS6PUs6HDWf+Rtcc6qcvGxb31NS.qH2dHyIfilqpCIT8.UrQySkbSnOjPXHOZAm6S9Hktf8QH.zqUo3nhl5Po1dUgZuE1KWE3JCkkB1HlKCb4AaAhhcTvWhyu.gXrlUZQrECKH.9DvY7DzyhSXPLX2I3Hb7WD6H0JIcrDh5iAt1AQzcQv9L11UehFHb4WBlBQylWDs0PPWTn6qSRA7u5Ojl35AQoo1muXnsyYjbxxVJxcJ2Slkwm4OLYXQrQxEwX659E9xgk2LYOzar5dUX6sEHLEI6Dxi5a6OlWt1dDFzk0TkvAkk6Nx1UmgPG9R4XThK4bQ9Ph3O2Nf0hOFikY3eNTtYjVnFSdmw7nUOtQ4MyhzlPFjHhSiBWkDmjorJCcGkvD9d3obWekNox9JOJPNk7VzbCxolMoix0qijlM2pD6aKU7B5HY10ihOys7E1Ca.+ek8IeUQTWVVyV1ug76aAPE01G7wmJ8vjEjyrbhr2GdvsqR22UIf5JLUOikBQRoPfnBFAQolamn+acusqpiPWCcoicvAeJcQVk2RwOkHYu3kcOaox0ZiZE6wb000AHhQBLojW4sdBhHnOjHhhGwUZp1PnLxmZJPDfsQihDhJULUZYBeIECPbviMVlLm0I+6Lad3jxe6lDW6Le5lrOMMQczPGR2hWElBIylDNI59KTdUDRRwQOt+Xz94yYTrA1Ywc2EZ5D7zGqRpTy5PIRjqV0SnFZmo6DJW0UDjltpesH9pKIssqgJ3hES0O3ZwtpB6z4rqDzNwdhJYgPg5DtuBkL.PlM4KdQoq69SUgyEbUi8UM+SGX0CtgtszodR0YKpSD2lMVxn1PpZJzBkbThHTJV7B9+qzbSTY1m8Yur36pf0kzujNLEut.shXh5DsWaOt7QnOgZ51DCHRpYFgLNaYg9fRBCc.IlzJzDBjNfCEfajNTCCohCOoYWWPSfOFPiY0E6QqKWIck.U96I0YU.cUKcpHgTPJbfSonC+PMHFqXG57Y9D8iSPQNG0LADnDNSTdSDnRQyn3JgR+6Fm1qSjuw48TUBg+O.Y9EQlO8SohivoKBnI68Dl32wtjR.ne7GGmrgVR3QLhxp1BkMgTsnaVVqNyC3qC5hv0cPMNGm8VGUhmmIGPjD.TjqoO9LDec05gKUjZ5d0job5uHafdm.9T7rXFdb5QaKKzHMDd5yV4cJU5mnWfxa7p5Enr9VV16ZeYJ52gBzPfZj5pMdu3q1vhx5BxI.SJUX00poz+U2Bze4Odvs5swP3hGQwmTg7u4MQteSt7ExWBhbI8ER1HVNyR7m4ouTqo1quErC9qGLM8EId+C9w6dne07tEeesN9lEpebSq9wpV1YtxnZzkOMahzWj4Z55yw3ZiGyyb6eWoUnmeqw7fy4Yu2RG6kWBpF40P97CzPZwglkFwiQl350+1CTraEfuK3.q4gQYtxWRm831gqk2e+ucfgiDQD9szq+8bCeEtgYFuaAsQxT4j+790S7dI5pNh7yak8cJnRKdcvu99EhSXesvw9dEhqkdcv0dsuQsM9e92n10elUaw2vds4cm9QE5F5TioB2re5i28kyiD9iaaiiJoIMvTqVx4AN732+B8esk72glaRudujgPr39tpE+a7Idypz57waVMYyewHio1NAxu1QO0Hc34aof.equ5+5XEKzlVypdgYEwmoBWwW63jkUWhvZ2VB2+1R38usD9faKgO71R3mbaI7Qe+DRuL05yijS00h4x0tmgZ19740uOYUYYt+i5uV6C
      

      Frankly I never want to have to do this again......so please dont ask for amendments, you will have to make them yourself, and if you find a bug - again you will have to fix it yourself - please post your resulting code here.

      Meanwhile I'm off to Italy see you in a month, well from next week anyway...

      posted in General Questions
      LindonL
      Lindon
    • RE: VST Graphics Design

      @Lindon ....

      0d94aa62-654e-4c49-9983-0beb3117ff3e-image.png

      posted in General Questions
      LindonL
      Lindon
    • RE: The definitive feature request & bug fix roadmap

      Feature Request
      @Christoph-Hart - Please can we have bus effects (send and receive) as per this discussion :

      https://forum.hise.audio/topic/1983/feature-request-the-case-for-bus-containers

      -- wow I just re-read the thread I pointed to - I've been a pita about this .....sorry.

      posted in Feature Requests
      LindonL
      Lindon
    • Happy Holidays..

      So happy holidays to everyone who has them at this time of year.. Anther great year for HISE and this community, tho I did get too many t-shirts this year...

      posted in General Questions
      LindonL
      Lindon
    • RE: The definitive feature request & bug fix roadmap

      Feature Request

      MIDI out.

      posted in Feature Requests
      LindonL
      Lindon
    • Happy Holidays

      ......Ok that's me done for 2023, so wishing you and yours a safe and festive holiday season and a prosperous, healthy and happy 2024...

      Thanks to all of you for making it a great community..... now where did I put that T-Shirt?

      posted in General Questions
      LindonL
      Lindon
    • LED - with peak line - and red warnings...vector version.

      So I've seen a few posts here asking how to "do" an LED-style control, and there's been a few answers - all of which seemed to require adding in a png for the LED itself.

      So as I needed (or wanted) one of these that used vector drawing, and one that had some level of "red-line" warning as well as momentary peak measurement too I coded one up. You might want to use it - or adapt it to your needs.

      So caveat no.1 : as @ustk has said elsewhere - this is not really a gain meter - its approximates one as it uses 100 milliseconds between each measure - so it may miss some peaks. But in any case:

      HiseSnippet 2093.3oc2Y0uaajaDeks2qwJmARJtCs+IQPAtUWTj2Uw1IFF2EYaI6Hb9CAKmjVTbHfdWJIhrhTXWJ63FXf9H1Gg9HbuA2MjbWsbkWaqSsIMoBIVlbFN727AmYHcmHtOINlGYUZ4SubDwpzWa28RlXvtCvTlU6lVktm8QjKNnUSqctbDNNlDXUpzh6KoVZ4krTe9kWrCNDy7IYSYY8ZN0mb.cHUjMamF+DMLbOb.4T5PCtWqQaeNaWdHeLfjEscsFg8eGtO4HrjsErsJ8UsBnBdTWAVPhsJszN7fK6NfeASy+qowzyBIxAdVcAAomdOdXfDwxYs1c.MLnSpFGaYUxtSl9unV++F6CoAzIymYGdfh.JaEl1iRKbavyyDdtyN7JY.ukzv6g1c8iniDYTjX691sYBRTOL3BLgklWqErtu8tbfCln1P76H6EAClrBmMbcqhV20sxVqTdkxqtJxmObHmghHi.kWPY8QQ7wv2DIcvQEKPmiiPur8As2+kmt6wGb7qNA8CH22+7MWq9NdMWaKS11Y6c+ICd1au5pO43oUy8akimMTexwCDCty1mbZ6CaA73UeZZcjXkDAz5Ml4KnblS+JqT9CqTFgj+GA5SeTHnEfSJRrkdtUW0GG5iNCjQrbZzSPjyIQWhDP.JRLfFif+EP60iDAVuLAAqPIGX+jbUqOQ7RBs+.gSEPFNNdttnGOgzqwgiINUp78Rf5Kpjr6oX.Q6gnhXDFM.DAnDmK4GVMlgBwfNJQSsZIaOvrR9OdZoi9QT17AXAt1.phVkJ5U9A8WIaZDYHY3YvtoTyb6LlE.jiIvNOfnLZnzXgIvP94Z6jg4HAUaUD2RItKeLSZ9bS33pIVi2QHi.aguhAdOEFXiUPUNBrEwnK.2DJHBeAaBD0qufM4wOt.68EjuahDnBzPdThAWKNHuE3GSrAbEefUgbQlKnHs4GMhRqbWJtWAnRt4ZWPlKgGowKhQHARvDQ5A.a.51wxO.6Pg98gXw.ez3QRQI2OYvuZOqNkeOFxnA6nhVlDlbDBTgzSAaMOgDWQBiI4g13Xh4Nqh8UVA047aDF20IvbmEl5L3UxjZ4bCJesDE8fhU.JNCpE0Gx.xBzrzuljv1ggNYo1prUgRP6JAqT5JASqtLmStrmofQK5SH9Bm+ta0Tqa0T86Mz.w.mJUmVeeRJm+70xrLAJR6UtTHYFPHsg1lf9djmaAIKLws9q3ZWLfJH2jqrnE.NzJ4Op2ulDcG.3vAp.MsRl4gy8q0Mynj56LUTnTULMffHA8IW2rmUoIylKWZpM2sp2FUqud8etJxqVRIwqT+Lo3X6ifTgLRX9ZgsYxVhfPQU2SR0nETx.D4izTdjVRYKX6wATdaFX2OfzSFCmVftuDpCGwYv.mGkmMkTJRFmHiClAgn3SIk7BVZfTEPOQWn2IqfZdlUB3N3NeYYeItlZ2LBcWENldc3LU9imLMSZXTLWS4XNpizaci1lD5JaRxuKUOY+oQ6hCCkG9clzQQZCEHz0se5jasX8kGzfMoIwmdFbtXOdjLBXOrOjTyQGNn.w3nH.BG.ExBcfScowiEXr+ORzdEIZEnSZvy4l1YS5vQ1blH4gQkQRlmsRhYO0Ng3ri3BxwfAq7GJub4qJillTudERS5jh3PZ2nBIq2waYgN59Dppy7NgQn+47MnaeyMnad+AecLiAibVaFUb7HB6lZa2JIPC9sW0tIDhJ6jOYNfuQjHAUBgRMImCWQR2W+x1MIwuSvGo3MI5DZrWnntRZW+RauEMPxehmv58StF0+7sMtL6NUNMtPlHcxDMNsw.0YtL9iabFOJfD0k9OHl2lSO6I3.53XyqzAI7GldIsu19od0qu4lart2yLHTeJJBx6E4VxyV+oaT+oqAWpyPMKeSp4CryGxZnsvkFMz1WzXDVFxaHzLSTdCgk60LD7F4wYcuMe1y8Vu9lqa86yBYMKJ0Csm5floVs+miZ00uGJbaXdv3PrH+UjkIfRH.GKycWT48MYwTwkl63Gk6MOqv8g1cnB+AEi2EJ.uvA4O13M4UHVwV29PFXWxdu+579jCE+hHt20SNbuIuHDc3nPx9YuHjtRys7hPVVMIg3blt2jOb8u0nf2LpMCt6snCODGMsgew7Z6hyl1VfFtzLGcn5n6Kln4+nsxj+kDfUgDe4.3GXCId+L.t5tt6eHVDQgJG1GMdXWHEuOAfJCpLHauozBxhQ5wtxwR.0kvBTC9U3SBQO43RID8RIZZR9VsI491uAeNQc8Fk03aUi6wiFh1mvHQRak2sjR3eMqOR7nY9QhO1W.P3zHLKdDOl3YJ4onUOetIwXVd10SkiKo5AMXOzfu60Hcx5lSBgE4DFLNmjNjZTf+e+hVLL3z6R.sI33XePYk1Ny3lNigqSqNc3YtvroqaN8KwQAfew+1xW96t5PgOH8W8Y86k+oqMkEmM3VfEbgNW6u3xCRpu1BJ9EBWOXR17d3wghzYyez5PNiOZ.mQy4zOg.YD52mjKVpPEZag.tWa1LeSiSHgDbrwws+RC4Cyfi.6DYNsE2Qk3Ryn+5OaqgKRlO3yqxE+AMrKa+ZvI4K2ccpwzgnIpi2ci1WESNEqfyzcDIWjYtJ0s+y6Xtduoysi4+J8Ou3+G0+7GiTPPMgub574OYC0opiTtaz+682eJZ.5SwdLD6Gwequ9kqjYDumZFPuYp+t2KaenbLxyR8ZVv5rcq4ZMDpq9VeeYL8S.6Swqo9brlmNGqYs4XMqOGqYi4XMOaNVyyu00HaoY6wB9Pc7OLQmVpm3qTIcWcpiBV+FfT1+WL
      

      I'm pretty sure the code could do with re-factoring so I'm always interested in a better version if you want to comment or contribute...

      posted in General Questions
      LindonL
      Lindon
    • RE: Merry Christmas

      ...sliding in late... happy holidays everyone...

      posted in General Questions
      LindonL
      Lindon
    • RE: Have a nice christmas and new year vacation!

      Happy holidays everyone...have a fun safe time.

      posted in General Questions
      LindonL
      Lindon

    Latest posts made by Lindon

    • RE: HISE with Claude

      @Christoph-Hart said in HISE with Claude:

      just fyi at this point the hise-cli contains the functionality of the mcp server and the lsp server so it's the all in one solution going forward.

      so we'd just need to point Claude at the HISE-CLI then? (Asking for a friend)...

      posted in AI discussion
      LindonL
      Lindon
    • RE: NEW GUI DESIGNER APP! ::: Rox Designer Suite::: is LIVE!

      @Chazrox said in NEW GUI DESIGNER APP! ::: Rox Designer Suite::: is LIVE!:

      @Lindon There are file-handling features that cant be done in a web-browser so Im switching to stand-alone.

      ..and the web version will remain "as is"?

      posted in General Questions
      LindonL
      Lindon
    • RE: Measuring plugin delay times....

      @ustk thanks mate I will give it a go...I have no idea how to do a "correlation algorithm" but its all an adventure...

      posted in General Questions
      LindonL
      Lindon
    • RE: Measuring plugin delay times....

      @ustk said in Measuring plugin delay times....:

      @Lindon My process is to automate this from Hise itself.

      You can write a test script that:

      • loads the FXs one by one
      • play a test signal
      • record that test signal before and after the FX in 2 scriptFX module process callbacks (or 1 unique recorder with 2 passes, bypassed/unbypassed)
      • perform a cross correlation between the two buffers to get the sample diff
      • and populate an array that will hold the latencies per FX

      Claude can easily create this for you if you need

      And as @griffinboy said group delay can be tricky and give weird results, especially with impulses. I'd do it with white noise since cross-correlation is very effective with it (I do this in my Align-IT app)

      do you have an example(snippet) of this cause I dont(yet) use Claude and its all new to me.

      posted in General Questions
      LindonL
      Lindon
    • RE: NEW GUI DESIGNER APP! ::: Rox Designer Suite::: is LIVE!

      @Chazrox ok well this is getting a bit out of hand - I cant work out what Im getting, and its asking for a LOT of personal information....Im beginning to think this is a bad idea.

      posted in General Questions
      LindonL
      Lindon
    • Measuring plugin delay times....

      Okay, so I have a massive multi-fx plugin - there are 6 slots in it, and each slot can load any of the FX that ship with the plugin.

      There are 133 FX.....

      Yep, thats not a typo ... 133 FX.

      Any of these can be loaded into one of 6 Hardcoded FX "slots", there are C++ FX, Scriptnode FX and Faust FX all in there....

      So now I'd like my plugin to report to the DAW some consistent delay time...

      So the plan is, nothing special here, to have a variable delay at the end of the chain....whos value can max out at the worst case scenario (6 copies of the worst "performing" FX loaded across all slots in the plugin), and to calculate every time a new FX is loaded what the current delay is - and add "make-up delay" to get us back to this worst case scenario - and thus always report this worst case to the DAW.

      Now I realise that some of the actual delay any given FX induces may well be changable based on the params the FX are set at, the sample rate being used or even the type of content arriving at the plugin.... Im going to live with this inaccuracy.

      Heres the plugin layout - its pretty simple:

      36c4836a-bfea-44a7-b3b6-53ba5469fa9b-image.png

      So, to the question:
      What currently the best way to measure delay induced by any given FX?

      posted in General Questions
      LindonL
      Lindon
    • RE: NEW GUI DESIGNER APP! ::: Rox Designer Suite::: is LIVE!

      @Chazrox said in NEW GUI DESIGNER APP! ::: Rox Designer Suite::: is LIVE!:

      FOUNDERS100

      So Im confused now, whats happening with the web-bazed solutions?

      posted in General Questions
      LindonL
      Lindon
    • RE: Latest version of HISE breaks existing presets....

      @dannytaurus said in Latest version of HISE breaks existing presets....:

      @Christoph-Hart Here's what 'my' Claude says:

      The pattern so far

      Since a92a701de (the unified automation base class), every automation actor - host parameter, macro, MIDI automation, UI widget, script, preset restore - is both a reader and a writer of shared values, connected through the dispatch library. The regressions since then have all been the same bug wearing different hats: a listener can't tell an echo of its own write from a real change, so it feeds the value back around the loop. Each fix so far suppresses one specific edge:

      • 633626eeb - gate refreshParameterValue() on enablePluginParameterUpdate, and switch MIDI automation's setAttribute from async to sync notification
      • e1fb54695 - carve the backend macro-to-parameter-slot routing out behind HISE_MACROS_ARE_PLUGIN_PARAMETERS

      Alongside the pre-existing guards (recursive, sendToHost per parameter, deferNotifyHostFlag, the exclusive-mode conditionals in loadUserPresetInternal()), that's now seven or so overlapping mechanisms all answering the same question by inference: "is this change an echo?"

      Why I think flags can't fully close this

      Two structural limits:

      1. The global flag suppresses the wrong scope. enablePluginParameterUpdate is one boolean for all parameters. While parameter A's update is dispatching (flag false), a legitimate concurrent change to parameter B hits the early return in refreshParameterValue() and is silently dropped -the internal value updates but the host never hears it. I suspect this is exactly the DAW-project-vs-internal-preset drift you were hypothesizing about at the end of the thread. The guard isn't just failing to fix that bug, it's a source of it.
      2. Scoped guards can't survive deferred dispatch. A ScopedValueSetter protects a call stack, but this system defers across threads by design. By the time an async-queued listener runs, the guard is long restored and the echo sails through. That's why 633626eeb had to change MIDI automation to sync notification - to drag the callback inside the guard's scope. Changing threading semantics to make a boolean reachable feels like the approach hitting its ceiling.

      Proposal: make provenance explicit

      The class structure from the rewrite is good - I'd keep all of it. The change is to what a notification is: value plus origin, instead of value alone.

      1. Add a small source token (Host, Macro, MidiAutomation, UI, Script, PresetRestore) to SlotSender::sendChangeMessage() and the listener callbacks, threaded through CustomAutomationData::call(). Because the token travels with the queued message, it survives deferral and thread hops - the thing no scoped flag can do.
      2. Each writer passes its own token and ignores incoming messages carrying it. MacroPluginParameter::setValue() writes as Host and skips Host-tagged notifications; same pattern in HisePluginParameterBase, MidiControllerAutomationHandler, CustomAutomationParameter.
      3. recursive, sendToHost and the global enablePluginParameterUpdate then become deletable. (deferNotifyHostFlag can stay - batching host notifications is an optimization, not a correctness guard.)
      4. Preset restore becomes a first-class source: "macros must not clobber freshly restored widget values" becomes a one-line filter rule instead of an ordering convention plus exclusive-mode conditionals, and the MIDI sync/async choice stops mattering for correctness.

      For precedent: JUCE's own ParameterAttachment solves the identical loop the same way - each attachment filters its own echoes at the attachment point.

      Hmm, I must give this Claude malarky a bit of a go......

      posted in General Questions
      LindonL
      Lindon
    • RE: Latest version of HISE breaks existing presets....

      @Christoph-Hart yep, as soon as I can I will test it out, though I did send you a version of the project and I think the thread documents the problem well enough....

      posted in General Questions
      LindonL
      Lindon
    • RE: Latest version of HISE breaks existing presets....

      @Christoph-Hart - is there any chance of ever getting a fix for this?

      posted in General Questions
      LindonL
      Lindon