Forum
    • Categories
    • Register
    • Login
    1. Home
    2. ustk
    3. Posts
    • Profile
    • Following 0
    • Followers 15
    • Topics 486
    • Posts 6,258
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Scriptnode compilation failing on ARM Mac

      @shashwatshukla Have you tried to compile the most basic empty network first before filling it with nodes?

      posted in ScriptNode
      ustkU
      ustk
    • RE: Claude screenshot crashes Hise

      @dannytaurus said in Claude screenshot crashes Hise:

      so I don't think the recent commits introduced it, they just make the message thread busier so the 1 s timeout trips more often.

      Yes that's it, in fact it was crashing less before for the mere reason that the project I am working on at the moment is way bigger. UI takes long time to recompile, that's the trigger...

      So in the end it just needs 2-3000 sec timeout, should be enough for most cases...

      I'll test and make a PR when I have a minute 😉

      posted in Bug Reports
      ustkU
      ustk
    • RE: Claude screenshot crashes Hise

      @David-Healey When Claude makes modifications on UI, it makes a screenshot using the interaction test window to see if it renders as it should

      posted in Bug Reports
      ustkU
      ustk
    • Claude screenshot crashes Hise

      @Christoph-Hart Seems to happen a lot more since the last commits

      CLAUDE:

      HISE 4.9.3 (102de5c4) — recurrent SIGABRT via the REST API screenshot endpoints

      Symptom. HISE dies with Abort trap: 6.
      8 of the 33 crash reports on this machine (2026‑08‑19 → 2026‑08‑23) have byte‑identical stacks:

      std::terminate() → juce::MessageQueue::runLoopSourceCallback(void*)
        → __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ → …
      

      i.e. something escapes a MessageManager::callAsync callback. The stack is already unwound, so the report names no culprit — which is why this has been hard to pin down.

      Correlation. Every occurrence I could attribute happened during GET /api/testing/screenshot. Two crashes today were directly on that call; two earlier sessions logged 500 — /api/testing/screenshot?moduleId=Interface&outputPath=… shortly before dying. It hits both the cropped (&id=) and the plain moduleId‑only form.

      Root cause (hi_backend/backend/ai_tools/RestHelpers.cpp:2539).

      SafeAsyncCall::callAsyncIfNotOnMessageThread<...>(*sp, [&](...)   // fire-and-forget
      {
          hise::ScriptContentComponent component(&spp);
          capturedImage = component.createComponentSnapshot(cropBounds, true, scale);
          captureSuccess = capturedImage.isValid();
          captureComplete.signal();
      });
      
      if (!captureComplete.wait(1000))
          return req->fail(500, "screenshot capture timed out");   // ← stack frame dies here
      

      callAsyncIfNotOnMessageThread is MessageManager::callAsync (MiscToolClasses.h:87) — it does not wait. The lambda captures capturedImage, captureSuccess and captureComplete by reference off the REST thread's stack. When the message thread takes longer than 1000 ms, the handler returns, that frame is destroyed, and the lambda then writes into freed stack memory and signals a destroyed WaitableEvent. Hence: 500 first, abort shortly after.

      1000 ms is easy to blow — the lambda constructs a fresh ScriptContentComponent and paints every script component, including all custom paint routines, on a 1600×900 interface.

      Same pattern, two more sites: RestHelpers.cpp:2725 (testing/e2e, 30 s) and :6508 (dsp/screenshot, 1500 ms — and that lambda spends 500 ms in runDispatchLoopUntil before capturing, re-entering the message loop).

      Suggested fix. SafeAsyncCall::callAsyncAndWait already exists in the same header (MiscToolClasses.h:104) and is documented to return false on timeout/deletion. Failing that: heap‑allocate the shared state in a ReferenceCountedObject/shared_ptr captured by value, so a timed‑out request cannot outlive it. A try/catch around the lambda body would also convert the abort into a 500.


      Two caveats so you can present it accurately: the other 5 SIGABRTs I can't attribute to the screenshot endpoint from the crash file alone — the unwound stack gives nothing. And the dangling-frame mechanism is provable from the code and matches the 500-then-crash sequence, but I couldn't confirm which exception actually terminates, only that one escapes a message-thread callback.

      posted in Bug Reports
      ustkU
      ustk
    • RE: Customer support software

      @dannytaurus I've used freshdesk and was very happy with it, but after a year the trial period ended...

      So I've made my own ticket support system. Seemed good at first but many people, once they get notified by email for a response, instead of clicking the link in the email they just respond from there, killing the purpose and making it messy...

      Not getting a lot of tickets that being said, so it's ok for now... But when i'll be ready to pay 200€/year I'll go back to freshdesk, until then I'm opened to any cheap yet reliable solution too ☺

      posted in General Questions
      ustkU
      ustk
    • C++ nodes cannot receive global cable scalar?

      @Christoph-Hart So it appears the cable manager can only receive global cable data but not simple values... Is it a missed one or on purpose?

      posted in C++ Development
      ustkU
      ustk
    • RE: Auto Start REST server not working

      @dannytaurus Oh you were faster, I've just made the fix too...

      posted in General Questions
      ustkU
      ustk
    • Auto Start REST server not working

      Screenshot 2026-08-18 at 12.33.26.png

      It's always been activated in my settings but it never does what it promises... I have to toggle it manually each time I restart Hise...

      Perhaps I need to add it in the XML manually in the case it somehow misses it?
      I don't want to ruin the entire XML by just deleting it so...

      posted in General Questions
      ustkU
      ustk
    • RE: HELP! I modeled a Roland D-50 in HISE/Faust, but...

      @Morphoice I think you'll need to store the base64 state of the module in question in the preLoadCallback and restore it in the post CB.

      But I'm afraid continuous sounding reverb isn't possible, because the audio engine cuts during preset change. And I remember @Christoph-Hart saying it's not possible to change this because it would cause too many race condition issues during the switch phase...

      Unless...

      You run your own preset system which would only perform parameter value changes... Like undo/redo, AB comparison, or random buttons generally do...

      posted in General Questions
      ustkU
      ustk
    • RE: VST/plugin GUI design + launch graphics — ads, motion, web

      I just wanted a quick shout-out after having an amazing talk with Arnar (@lalalandsynth)
      It's not just about the design, it's the whole process of getting involved in the final result for the end user that drives this guy!
      Great ideas, new implementations, the experience talks...
      I can feel already my prototype will reach a quality I wasn't expecting! I knew the design would be excellent just seeing the examples above, no doubt. But trust me the design is just a part of the job he can do...
      So thanks Arnar to be this very kind person who knows his stuff, I can say I've found my designer...

      posted in General Questions
      ustkU
      ustk
    • RE: Measuring plugin delay times....

      @Lindon this one uses an impulse. See if you can make it work with your project, then you might need to use a noise and a correlation algorithm later instead of simple subtraction of the peak index

      Note that it takes the number of channels of the routing matrix.
      the current snippet gives you a report of ch0-1 delay L-R, and ch2-3 scriptFX, which is L=silent and R=untouched. A silence gives a negative latency that easily speaks for "there's nothing to report"

      HiseSnippet 2567.3oc6Z80baabDGTxvNjwsSbl9Pm9zE9RghnoHnUbriicknDUrlZJwgj1Mc73ndD3n3YAdfE.zRrc7646Wm9snOzuAs6d2g+QBZIqX2LYlRayg31a++d68aIc2.eGVXnefQoJClOkYT51l8mKhFu2XJWXb39Fk9Lyms6f1Gs2e9jCN7n8a2yn07ozvPlqQoRq+c3tJU9FFxW+6+PKpGU3vRWxv3E9bG1y3S3Qoq1cm+H2y6.pKa.eRlcu8NG53K1y2yeFXQqa1vXJ04L5orin31Vyz3ozvwFk9RyG533LZ6sG0z1Ya6sev8G9PamQNCa17gM9Z2lL2g2eHi8vGLxnzMa6xi7C5GQiXgFktQKe248G6etPofWvC4C8X3C1F8AMqV9.eOWzEwUM1aL2ysabnJz.jR2z.25p.2uwrC2kmrd1.HRfjxQ1.Xo0xadqmy7ryZdMxXdEXRkxXR2PYR2wruS.eZTJEzd9TyCEQrfQTHOk0TT60Xs+UEy87gcHhpOgdF6f.3gDNrteiF0Hvaa7nJvtB88X0c7Xz.KXgJUDPdJDxYLR9hlJ+cfHeDw5K3g6yFwELWqSOY3rQiXAgarQY30od9CodjjUIOl7xW8nkYJfQc4hSaI2UeOn3B3Og4koBxoQghwwO3cJnkouBQMzy24r97+FS5Ho9Q7x.asEmBat9orHs3fkwHVgdWOlygBW1E4EWVJfDuqMFugSKgQj2PCH8GrauAmjOpeRqAGAaMNaRccaMKJxWXUcU6tZMBjdwj6p1Q8PVjUUdXG+IfLoAyAVhBlwvzep0DyW6NGNXP6dfQH6pfAfd9yhfvZGZT.+BqpKrypfbREyQOuyI68zcQmXg8gR5nYS1mEBBiFwgtFioBAyKzJukDkF8cfPXjriSvwCeMyIRUyBElBOfNYzLgCJIxz.1TZ.Skp.ABUukgjIjF7ErVzfcira1X3zI4Rr8oSl5w5AZvZCxWRZ9nJkqTdje.wh+3FOhv+1XmA97latQkxfPKmTs+R9qTE7js1hvnNiIUcTNTUxXnWTHI5behdyPFhvgUFyHLnuJbzrFwNdEnvkweCK.jN7WoA7Zz.d821DdSpYopyo6W9ZT8JGVGmrx6qaHsrlgLGf22pDdNIz3UuLOGasMJyF0+JkOoLTxXZHgRt68baQlBkAjo9gbLnCk+PzkLDTMoYEPCusxhoAYxBD0ehxwJHB5aZOVcTkDAgHFwErCBU3RTNBnNPP9AQUhvhWY9eOpm2P3pEq3btJIiGGW7jFdTSmsha3MMfKfCAOItnjnNdP50t6w8F7MXMbZvGRkbQZasjvOVbxcwixIzpyQUd7HfGoHj6wCbAgy7CEpBLX+Nieo8qh2aWF8Lnf6t3pMVd0LsgVVhcByUA2AtSl2GBlB2vCfqjj5KzZACPYY3+fTgi+LQDQ1wOTlOnDAlAinvkVj2vYmWi75YvQwgLG5rPF4bFwgJpWudrwbJcJXD1MRrt2P8lwjc+gnSshbqZEEApk0UqsXT6UIhWaqpKWzNR1SoJ0W2iINMZb7QUcJK09dljLHEn.MjA2NZg9wcIVUqR1T6BvghMzxQEyz52AXqZU0Jx2xdFMizSNsBuPt1DXijkOkqn5b.aPR4sw9DpKUYOptmP16oeCvd4xaJK5jBcScv.BvjMU5oLoZ2CO56h2ZQ0TorYmksds2KCW1qlqlY4pU+XlxdeYVa6dY2t97ljmMW5jQFt1NKWcRTRlJ+jje9C0pPlLeoaxEMlGVOLxeprwA1EBaNkzLB.tAg37sglpvasz8J9hUcqJdEcfumki+joP2KQTMUQTRWI8Sx5PnMFpTk8XKghg8hW.fPCkg9tuIWq2j1gWpEpuwDe8VrsdanMa9MSRv.VI8UlPvQ9Qri08agl7jEIMZTgzz52CSAEPVmbVMiVhYSFhWTlFWwMBXkyC.2b0.vyNefiBSUlM5KNTviNdJSrpoFLz.wPv5ZqB1ZjDp9uVCUWAPyfCHx+clqJWXH8grCYY77C2mFQikLnDPwSYAQbzmJsO6M.7U0PAkMAPSmA0yx8pK2LJcqqicbADuJgped7Gx.LDWBW6btaz3TiUryXF+zwYlF7G1wX4YWfol7cmAGXyOJENvol.jdyM+BNih..SLO6.oevlu5pZh2wrKOxYbw13ZEXiPN6igMpmJ8WY1FfV3DkZf2v7fu+izHn2X4XTEc8DnSUzYAb7ENA5uecyk.iOvuqGctUXBJ6Zjz4tV5XutCbKbGVZfzgqBh2WjAhmBlOzqPi9AZjBSpLt9DtHQN3chp60qkhcCw+lrtD3UtQ4zHBwNlS.jv.NID8adLho14RPDiIsDBQEP9Bm5UilOfAuOv2JCXc2KPas1B1XsLtcpv4irxFMdbgyXGCyIEojDa3z45KFg8A26xHgRSCPoiKq8IUZTxTgNxSdBryTrMPPfkpFU5JrHucYQImscQeTCkZA0jLfStBE.AVJ65LZA0SO4wqnrHynWELMuTq3bOuGWdYdkO5Z+t6bjapbn4DLace+YANr3wpwt4XGK8yMha32mIbkO7efWZh1ws9Qh1KPrI97ZZhMWf38vmWWS7dwDSu37ZcOW11heph3s.hP6DYOoOQ8Y6bshjKgfJdFaTlqp9s6jPnWlKw9KO+eFsyALlKBhJOGFFwq2K+sdFFOy+7tfBOHf8WSV9G+G67T9RqZr+Ncjokj60Fvfat6OW3j6hj0+EZ4.97JKGhIlVNboWyba8ijC9d6htgozO9w6Bl2S3m27m0TVbrsvTVLwOrmfOhEctevYxuxZ8mgyfprVnL8bxnK.GGZdhnmfipMpC+wXWOO+yQ.qbMtJHcJWqqu27oi8EbGbI0Nhc5cmfeAEw1aJnrVwY1351mRCGP4dHFs9yBAP7tGK5CxQ9iYfXjNx2E9zMOf5.Yq4coHj16XhiA..qvuzrD.V4bizhOLso9YLxsATtw+fGJSA7fIRH4qYBbgzUwJkAfZ3VlSl4EwMVownHWjtiY8pp10xoV42zed0dayIH9HEkh0nh1knw05RCf8Gwz+XFwOAatCW7B0.OlXsfQG5EIOaCOqrM0R4139rQTvayslQlKLLLx6cxT3kjgWgKJocECpFYc0b1i7GwAeBlOXMUszggu.oBvbh8MnTdkB3mtna46e1Dp774O4KaKt47mmLCPu16cbu8WwP.V+BcH.6e9FBnvewp28X.1W2w.bFWHnekQrL99XP+KLKfjMvwAz2E6.u2.+cFeYv7uDE813jzU.7+VacEf+amB+eqsz1+RRWMB.RWOD.4+OEvG3o.9eryY7tbtRK4bSnNA9m3nxzX+5OQtBjpDx6XJa1AelXu7W92DtK+DGm7hZIFadcY7dWWF295x3WccY79WWF+5qKiO3xYD+e+wtyh7mnfsBvP61VV9VpTaA96jIu1y3+BPu2HsI
      
      posted in General Questions
      ustkU
      ustk
    • RE: Measuring plugin delay times....

      @Lindon I'll try to find and recycle something...

      posted in General Questions
      ustkU
      ustk
    • RE: FREE W/ CODE ::: NEW GUI DESIGNER APP! ::: ROX DESIGNER SUITE ::: is LIVE!

      @Chazrox I contacted you on discord since I have issues at multiple places with account verification and password reset, confirmation code, etc...
      It doesn't seem resolved at the very moment I am writing this

      posted in General Questions
      ustkU
      ustk
    • RE: Measuring plugin delay times....

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

      This might end up being the biggest issue of all

      Not really because this would be poor design to report dynamic latency anyway.
      The way (one way?) to do it is to report for the maximum latency, and add a delay in the chain based on the difference between the maximum and the currently loaded FXs. This is the purpose of having a latency array per FX.
      So the host sees a permanent latency, and it's the plugin job to compensate for exceeding reported latency.

      posted in General Questions
      ustkU
      ustk
    • RE: 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)

      posted in General Questions
      ustkU
      ustk
    • RE: How do I reference a node inside a module from the interface's script?

      @Kalliopei it depends on what you want to achieve.
      If you want to draw the buffer you need to expose its display buffer (as you did already since the little icon is green), get a reference in the script and draw it in a panel using a timer.

      If you want to get the nodes to performs realtime network modifications, you'll lose the ability to compile the network as DLL (it's one or the other).

      And it's not getNode but just get

      posted in General Questions
      ustkU
      ustk
    • RE: Change the processing order within a network

      @Christoph-Hart I was afraid of this but in the end yes, I guess I could. The blocks should just need a global cable so I can have a unique sender network for all the cables and then make a module per FX receiver... And it'd probably simplify things a lot instead of having just one giant blob... Should have just have thought about that earlier! ☺

      posted in General Questions
      ustkU
      ustk
    • Change the processing order within a network

      What solution is offered to me if I want to change the FX order within a network?
      The network is meant to be compiled so no direct node access is allowed to me...

      Perhaps send/receive nodes but since they are introducing latency...

      posted in General Questions
      ustkU
      ustk
    • RE: [DEVLOG] Pro EQ

      @griffinboy Wow man... 😱

      posted in C++ Development
      ustkU
      ustk
    • RE: Possible to add more colouring options in script editor?

      @David-Healey Great 👍 I live in the past... 😁

      posted in Feature Requests
      ustkU
      ustk