Categories

  • Let's discuss the latest AI tech and how it influences your life as a HISE developer.

    7 Topics
    136 Posts
  • General questions and announcements about HISE

    8k Topics
    73k Posts
    HISEnbergH

    @David-Healey Hmm that could work. It's an FX plugin I am working on however, so I don't believe the send containers are an ideal candidate (could create a feedback loop). I'll try it out though.

    Edit: The Dry Gain needs to be at the end of the signal chain (outside the routing matrix). It appears the signal routing is not done serially. In my original setup you end up simply attenuating just the Wet Signal by the time the signal reaches the output. This doesn't feel like a totally satisfactory answer, but it gets the job done.

    For anyone else who ends up here:

    HiseSnippet 1502.3oc6YssaaaCFlx1rq1cGZG5V2kBEa.tCcoVNdYKnXntMNt0n0IF0YsqWUPKQaSDJRCI5z3MLf8nsGg8Hr8Fr2fsepCVRNJtttGVxPyEAf+m4+gORQ2ySZS88kdHiJGLaBEY7g39yDpw6LlvDnNszD7UTOp7.puBcuYSH99TGjgQw6qkvnbITve+8ctGgSD1zDRHzSjLa5iXtLUB0dMeHiyaSbnGvbSIcilcrkhcjb4THZJhqglPrOjLhtGQKVAL5AD+wHiuFSr2zpVsFa4r4.BYfS8saLjt4Va0vZygaWqAYaxV01dqZMrPFWXWGlR50WQTTejQo6Icl0er7EhPG7DlOa.mpWXg5CdNjbaI2QuE0TQ6Llwc5Eml7QHCbujjVwvj1UwcYNr4zSRdWNfgYhFoSfFExFdEyDdVoCuZoBubBIiTgTovP5J391drIpDN534R3NBnZNj.0ozgRnrnB+UA7NRPBgZCWxgz1dvh4ZTEx52zD92MtckJPsxWYdDwyrk2Lcqf4OXFz4rwHpZ2gCo1ppWOh00AERj+oT0oIeDqrxenXvy6RzMgcYGCZEGffd6HcmHEvhpWOiTZCT4V2xLjf4CExA9UXBNSPMGNUXqXRgoTjQGsY8j7p12z7naT4WpTlKsIbyWLOZOx71wDcluks1nl42DKD3zDsZM.XuqXD3Scn1hZyFP49skdZQaSrgJe0HEuQZKuRJFEA58Y4nr1F9T0cUJO1foJZ0Xh5+cyv3Q6knJRVYiIFJaPH.x9qUxjezpDki1gv4Cfgyp4mB0AUpr7dREceQ0fbJXTyEYMbXt7hLFm5kKaM3g2xTrpXp6.pGTMI7oz4BBCHYm5vm9TWZPA6vttTBJEcDL09SnhSCp.E0ppmPihJPTUv74GGMe1mybndHFLF9I3LYSTPfmFNE8icZQTjXyAVF71Dpmho2HFsnGAvsgi+kwsn9GpjSBjMZJA.4WYmebhi+xlyRuPQOFrDFqkxU5.l6yw6I8bIb1OSc5Q8rAWA31H+oCGBx.ImuB4xbb3zdReltJkXt+7Nuf4nFOmvu8jliorQiScfwdMQmDdC.VkNS4DUVzVcGbDCsaRCwogwDf6mk9Lq2XPvqZHdEbOlxdb9wXgbhQnX+1HFiN35ivgPuIAXIb6e5szoTkNo+KierDPf.Wp88EvdtcxV0LJtxd2Z4adsiXhQcI.pmt4duot8gqZXSg8tP..rPOsgNoGstldsN+2mJbBVTHgokdsQDyfEESXVWu9ef+zLmuHh4loYNeQ5RyEmeQLl6DN89wUlx3HL8kbKrm86snbRl1mmlY9B8rl4bOsNhi.TjdRNwawlu2T4+LU+kOgDbz5qyTboUqEc42yaUmn+TbPJ+7T.GzRb9IfuLtG4rPCwZgfDOpWaAb.qzLsVfY8X3lSEAoXDybQPxEb8C.v08mpNyhttXtIC55h4lLnqnDydRz0.tqD5ZzsfWB5JB8dz02it9dz0yNnqugPPdkte10BSlWB+TxQzfmvHHO9YAqGBeHj48oBpmNKasDvj+XUevrIq7ClsusBBgC7HB+IRepUZK2m5xN.9JP+LTWPi54pQ8rHfpohrlNjTFozoh1PpHkbWrYLw5oIBMeYLFrNik5xNN8WKtqf.sV8ovN2YeeaHwnyyo6N6Mk6SClAsRqXB45oI+.hmCTCsWFpboUCU9k7rgW3L2yFdN3ypy7xlkiiwvit2ENVkKAJwmSLjLkqholczqqTHmLVJXYJzOlBXMiFQyz+j6F5tJEw9vDJWs4iobJwml9gQdDSPIdcCdRj0JWX8J+Ju4Vu9BbX3ZpwKLO+9bHE+e8ygr5Se5m89LcU7ZX.JttYPoz7+lZ4B2d.m6sGJ7Zc6g202PAsru+y3De+mKw1S9b6vmYVCWbw.JPFSD7CnUF2Uu1z5juqrKbXyyssyZpSnX80UwMWWEartJ9sqqhastJ9cqqhe+KWQ8cAt6TkzMbpBtSTucC9c.LLBuNTv.F5eAb1jpbD

    Before:
    ScreenRecording2026-04-01at5.20.39PM-ezgif.com-video-to-gif-converter.gif

    After:
    ScreenRecording2026-04-01at5.20.39PM-ezgif.com-video-to-gif-converter.gif

  • Scripting related questions and answers

    2k Topics
    16k Posts
    David HealeyD

    @Christoph-Hart Aha that's a good idea

  • To share HiseSnippets, Interface Elements, GUI, UI/UX, Panel LAF etc..

    197 Topics
    2k Posts
    jadgJ

    Here is a video where you can see better the visual details:
    Fully customized pseudo backlit interface via LAF

  • All about ScriptNode DSP nodes, patches, SNEX and recipes.

    363 Topics
    2k Posts
    ustkU

    @pcs800 Oh ok that's what you want... So the answer is no, you don't need to connect it to the parameter in order to get the value to the UI. As @griffinboy said, the global cable is meant to be grabbed anywhere in Hise using the Global Routing Manager.

    On the top of this, you don't even need to "read" the value since you can directly tie it to a callback that is called anytime the value changed.

    Check this snippet:

    HiseSnippet 1696.3ocuX0saaaCElJIzo1MqXcqnWazqbGxLrbTbRPwvZ9eFsI0HNqn2EPKQaSXZRMJ5j3Mz62E68X2umf8.rGl8Fzcnjrkjib9wncJ.I5vy4H9c9kGlVJoKMHPpPVkNerOEYsFt8Xgt+98ILAp4AHqmfOgDnopxQKs2XeRP.0CYYs7wlErJtBJ74e+w8HbhvklrDB8dIyk9V1PlNY0Vu9MLN+HhG8b1vTR675ltRw9RtbDfmkw0P9D2AjdzSIFwVBi9IRPej02gItaXWqlSCuM5PHc7puiSW5FMZ3XuQ2cp4P1gzn1NMp4XirJbnGSKUs0DMM.9n6I8F2tu7JQzF7dV.qCmZHrQsgcNZYz98YbuVSbNAHj0JsRbUKG4pdF9DlGa55ItruNjQ4DMR6zrV51fj8C.RVofzJQP5o31tJluNgiAOOF2T.QvtDH1jFJQxhV5erv6KAID5pCICnGo.hoZToQsZqWF90KeUoRP7IPW9Rhp7wmcR4en7ghdLAsZOp9XtrCgelbjlI5cBQ.gMUEPkDMB7YBAUsOArNPU3CXzKjrxK54dQL+WjceZGs5aDc.clfRidxg9RAPT4EIhDpaozaTUEsGyj9tOgy6.oSU5NR3pYRQkKI7QzWV52JUL4CTMfpeuY8XtupTwReb8x6FLV3dpTy5xbIFke4ql7YJKE.C56DUB+Tk9Xoxyxpa2b4YLFkjyM9obXapMT2lhUDiF1gpVubhgXDDxExlfU39kf4F4aSInTzTvzuymFSejj6YRbLueyzQTbvAd6mad.QSLYnwqAx4SUZlANVGPuD5IDkuVDe.MXfV5GJabDEYspNj6ShylayYdTEh4E1dZZvBc8zdG+M+0iSSDPtj1TzRQg3oIS+JlmF5bfs9CfeeJqWe8DJzMqhf5Wo2HNQmsn1ztKlADHxTIYpVDAL83zsCe.U50t0J86KDeJtES61OeLtTNXDBQeIvXb+wuBeX2tTWcB.WAezGVzlg0dvMCKEm9.6oYyWKlr7QevNu1fV+NNoJyWQ8IJ54xVbx3JAjg9b5Y.FWubGtzcPa1uRuYooeDD1yHQE29DHOkGrHUvE9BdDQtYNOBe30ZEw9tRX9blTO8rBshAUx3SGMrMbxuKc+XOmoBcISikH5ZFZCHZSEdgDeBdhYZanshYZOgYpdRmR0WIUCBcJwuClcTdQPXBvEcuFfOUEXJbrVEWqJ7CZWNWdko0DKtjBRXBWqkjO1uuTvbMKEIwDnu6P4HgdB9SpG2aRtyDSAFn4bBia71sGE.cZ8dmnM7cBmhxTdbpzCda0iHtfOebKhoK1Swld0Pnipp5NMDlwLRBiFmez7SYDvDwZQT.C3rwfXwf8ZxzWQvCrpggMjgYurV1vOx+EBpBlcsDdnzKBDYv3yRgwoRjGpR8Atu6+Jo1+0vx.WXZRS5L5FdIEsZJ146TRIvcA.SPlSudxgaGvB7gtC6MB5xEUskYEftovidsos22CmXlxcCfeJE79ILQ3PGvtZx5PmPtdJsCP2VS8iyZv1.swvKXJionL5c.sKYDWmYMTpM5QIazy.lvHzgO1N6Ty1tgcp88aw1fxY4lfhbUt8.5UQAfHApWeGXV7MaTu9FNau01aFOI5QJ5uLBxuGiNmds9bY3FBkoWByGXvXZIR.S0Y2srlZdvEMOOrcFObArci43hWKDJkOyT5hxn9rNZ6Ybz2ZD0dtQzigVpel2HyGdUbq9j.5bb3OGepTMjvAz30hBsegx1dOvDK78AFEBGfBkJAr911vE01XKmchdli4lL7HBkpzuHNf0qNz8Hac+SvCg+VcBu7J5Sz7Np3WJSMq0C0hWEGsz8vWNGar.1mRFj0.ebTisPF4Ycw5bGl1JImJcNQAWnJHddcA0M5btvydZ5Y7n8Bub2EtlaTkD2M7lXhnOe8FmqyXFbjwo7brJZbhpYjIO+yLelz9ohE9y+53OcyF+oQT3LUFJXrnkhZSjxqEGVWCmbg1Y57uvYQ4Ubr6HsDR2mdqrbBpy22likzL38FttD9DKAlfYtvuXD7dK8RJGkXJEv0yZKEgEfGSeu65PBv.R+O.BlJkpDDdpqz.SL.oRlPm2Ltj388detx2fc1bK6pau0VNN1N0ZTeyLU.Kp6ZOobvPR3nlKzMg+eYv3gDWk7B2n6gXLtGEtB30EwsHOwPW1FcYbLb5UFGx7XW35l8ScCEqunJtwhpnyhp3lKphMVTE2ZQUb66VQy+5w31BlxEnmPqCCSBsrNTDU1.2r.8e.amNDjB
  • A subforum for discussing Faust development within HISE

    114 Topics
    940 Posts
    S

    @PV3679 I solved it on my end by doing 2 steps.

    Renaming the Faust modules parameters to something less generic (So FXslot1_Cutoff instead of simply 'cutoff'. It is my understanding that Faust modules dont like names that are re-used. I compiled ONLY the Faust module (so got rid of other stuff and compiled).

    After that the knobs of the Faust module were working πŸ€·πŸ»β™‚

  • If you need a certain feature, post it here.
    626 Topics
    5k Posts
    J

    @David-Healey ok got it

  • Develop better software through collaboration and shared knowledge. Not just about coding β€”> covering the entire journey, from development to launching and promoting plugins or software.

    156 Topics
    1k Posts
    David HealeyD

    @Quemis Enable isPluginParameter in the property editor for the controls

    d7f14fe3-1294-4fb1-82dd-6a3016fb6e94-image.png

  • If you encounter any bug, post it here.
    2k Topics
    12k Posts
    B

    Hello, I see this is old but I just wanted to pop in to say that I have had the same issue but opposite. Transferring my project from Windows to Mac and even Windows to Windows when I re-compiled Hise from the source code, all my previously disabled showTextBox parameters were now enabled.

  • Post your example snippets that you want to add to the official HISE snippet database here. We'll revise it, upload it to the repo and delete the post when finished.

    23 Topics
    140 Posts
    CasmatC

    @Christoph-Hart yeah, here's what I could come up with!

    The model occasionally thought you could add child panels directly to viewports. It didn't properly cast/convert the raw result of vpt.get("scrollBarThickness") for calculations. It hallucinated a scroll event listener/callback for viewports. I needed to prompt it specifically to use a 30Hz timer loop for position updates instead. It had the most trouble with local, reg, and const. Especially in long generations with multi level functions, it tried standard JS var/let scoping, leading to long runs of compilation errors. I mainly used Google's Gemini 3.1 Pro via Antigravity, but I also tested Claude Opus/Sonnet 4.6. The Anthropic models had a couple fewer issues, making sense if the MCP server is currently tailored to their behavior.

    I had checked out the viewport's multicolumn mode. I built this as a ScriptPanel recycler to have high LAF control over individual buttons and icons for a custom preset browser. I wouldn't be able to get the same component styling flexibility with multicolumn mode.

    I'll try out the LSP server! I've been following HISE's ai journey and can't wait to see what's next! Being a dev who uses AI to assist in most my work nowadays, it'll make HISE development much much faster and accessible lol. Love the forum, but I dream for the days where I'll ask Claude to explain why my function call is wrong and @David-Healey can enjoy his vacation instead! 😁

    The MCP server in antigravity is amazing, but there's a couple things HISE struggles with against AI.

    Absolute positioning is a bottleneck. Is there anyway to expose JUCE's FlexBox/Grid to hisescript? It would be life changing. If the model can just write relative values, it wouldn't have to guess pixel coordinates anymore. Can't wait for scriptnode to work with MCP. Having models build scriptnode networks from text/json, or piggybacking faust, will make that rodeo a lot simpler.

    I can envision HISE's future as a sidecar rendering engine alongside your everyday IDE, which wil be where the actual code writing/editing and prompting happens. Having HISE run in a headless like manner to compile the plugin, fix errors, and run tests would have massive potential. The LSP and MCP server are great starts for this.

  • Everything related to the documentation (corrections, additions etc.) can be posted here
    71 Topics
    481 Posts
    Christoph HartC

    @username1234 this is a thing that I vibecoded last week - itβ€˜s super fresh but yes once that is tested a bit it will definitely be recommended as the preferred way of getting hise setup for development. Just be a bit more patient my friend.

  • Collection of Blog Entries

    81 Topics
    770 Posts
    David HealeyD

    Another one you might be interested in is Floe: https://floe.audio/

  • The nerdy place for discussing the C++ framework
    184 Topics
    1k Posts
    HISEnbergH

    @Allen Ah thanks for clarifying. I believe this should work the same for RNBO node as any other C++ node. You need to add these flags to your projects Extra Definitions:

    NUM_HARDCODED_FX_MODS=4 //or however many slots you need NUM_HARDCODED_POLY_FX_MODS=4

    It is possibly you may need to first add that to HISE's extra pre processor definitions in projucer first and recompile HISE, then also add those to your project (so it works in the compiled plugin).

    The documentation about this is a bit hard to find. There's also a forum post about it here.

    Here is a spreadsheet of the different HISE flags you can use (it needs to merge this into the documentation somewhere).

    Just for some extra context this is straight from the docs:

    // number of modulation slots for Script FX HISE_NUM_SCRIPTNODE_FX_MODS=0 // number of modulation slots for Polyphonic Script FX HISE_NUM_POLYPHONIC_SCRIPTNODE_FX_MODS=0 // number of modulation slots for Scriptnode Synthesisers HISE_NUM_SCRIPTNODE_SYNTH_MODS=2 // If you plan to compile the DSP network to a C++ node // (which is possible with this node since HISE 5.0), you will // also need to set the corresponding preprocessor variables // for the hardcoded modules: // number of modulation slots for Hardcoded FX modules NUM_HARDCODED_FX_MODS=0 // number of modulation slots for Hardcoded Polyphonic FX NUM_HARDCODED_POLY_FX_MODS=0 // number of modulation slots for Hardcoded Synthesiser NUM_HARDCODED_SYNTH_MODS=2

12

Online

2.2k

Users

13.6k

Topics

117.9k

Posts