• Coming over from Kontakt? Read this!

    Pinned
    8
    1 Votes
    8 Posts
    9k Views
    LindonL

    @d-healey said in Coming over from Kontakt? Read this!:

    @Lindon They live inside Kontakt's sample map too, it's just that with Kontakt there is only one sample map and it's part of the NKI.

    I think the main different between Kontakt's groups and HISE's is that with Kontakt you can route them individually and apply effects and other processing to them individually which you can't do in HISE (yet...?).

    In HISE the routing and modulation is at the sampler level rather than the group level.

    Absoloutely - valuable stuff to include - I guess I was thinking inside a group you see a mapping of sample audio files, inside a Sample Map you see....so (to start with) same same...as a starting point. But hey no problem.

  • Native WoA Compatiblility

    4
    0 Votes
    4 Posts
    101 Views
    resonantR

    @dannytaurus PACE has added WoA support to Fusion 6 SDK, Eden Tools, and iLok License Support 6.

    This indicates that there will be demand for this (though I am not sure exactly how soon) at some point.

  • Measuring plugin delay times....

    11
    0 Votes
    11 Posts
    79 Views
    ustkU

    @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
  • 5 Votes
    10 Posts
    131 Views
    LindonL

    @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.

  • -3 Votes
    1 Posts
    25 Views
    No one has replied
  • -1 Votes
    4 Posts
    36 Views
    griffinboyG

    @David-Healey Damn it. I'm really quite susceptible to these somehow 🙄

  • 1 Votes
    1 Posts
    33 Views
    No one has replied
  • How do I reference a node inside a module from the interface's script?

    7
    0 Votes
    7 Posts
    127 Views
    S

    @Kalliopei In this case you could get the Display Buffer Source of the network and then the Index of each Peak Node and then do whatever you want with the value you get. You can do something like this:

    CODE:

    //Get the FX Display Source Reference const var dp = Synth.getDisplayBufferSource("Comp"); // Get the Displaybuffers const var input = dp.getDisplayBuffer(0); const var output = dp.getDisplayBuffer(1); input.setRingBufferProperties({ "BufferLength": 1024, "NumChannels": 1 }); output.setRingBufferProperties({ "BufferLength": 1024, "NumChannels": 1 }); const var inBuffer = input.getReadBuffer(); const var outBuffer = output.getReadBuffer(); const var inMeter = Content.getComponent("inMeter"); const var outMeter = Content.getComponent("outMeter"); const var subMeter = Content.getComponent("subMeter"); //Timer Object const var reductionTimer = Engine.createTimerObject(); reductionTimer.setTimerCallback(function() { //Befor Comp inMeter.setValue(Engine.getDecibelsForGainFactor(inBuffer.getMagnitude(0, inBuffer.length))); //After comp outMeter.setValue(Engine.getDecibelsForGainFactor(outBuffer.getMagnitude(0, outBuffer.length))); //Difference subMeter.setValue(Engine.getDecibelsForGainFactor( (inBuffer.getMagnitude(0, inBuffer.length)) - (outBuffer.getMagnitude(0, outBuffer.length)) )); }); // Start the timer with ~30Hz. reductionTimer.startTimer(30);

    SNIPPET:

    HiseSnippet 2083.3oc2Y07aabbEeVIsxgzoo0EIH43BgBT5BWYRZEakzFHpOsEpoDgnhSxImQ6NK4Ts6LK1cVIwDjhbrG60zKM+Izq8l+CHG5GG6k9mfu1Ks88lYWxcIYjoHbsRhBP.m27dy7998aV2IV5xRRjwDqpGOHhQrdc6tCDp9a2mxEj82gX8F1soIJVrigzVChnIILOhk0hODIXUYIh9umuwVz.pvkMhDg7DI2k8XdHWMhZmV+FdPvdTO1w7vBbuVq8ckhskAxTPeVztNIh5dJsG6.Jx1B1jGQS5Sr9E1dMVqg+5tz6udi0Z551b8Gz78dfKi56ytei28Aqst+Z9T25MIVKuqGWIi6pnJVBbnaI8Fzsu7bg4BdBOgeR.CWzfzEtYCYx184AdcxcNIDhkcmQtpEMtp2ztM2iOj9HW1OQugyHIJ5zrV3xToFWAUxpfJsjQktkcW2XdjZzNn9bS68EPDDbIrRphgWxBw11aKANDpUComx1KFVLThZ2ud863.+ua+qpV8t28gLkipOyYuO1YGdRT.cfSWHd4xbNh4yhYP7uJDESTNmQic7hb9.GcB0p8XpLA1JEhSwFopsx1xvnULmsS9gmw3IZFSJbdbQTpBNRunINuZnBNhSYp5am0F38oOqUSXpi3hdlM.2VDKVwYI097pNNqXn9Xlnmp+JuuSi5MW6NH8CRCgnsPvBRPxU+B77L23KwCrnYaDDLGiVCVzQLpWl4LtgOj4LUZBtKczsYJMy4o..2XLQJfE0VIa+UF+NtboxYnrXIomb4hkyPV9.1dH14vS9sLWUgiIl4k5p3RgY+OvYWQOtfspaLCJozDMxnM0xbigG8O1lFDbBzdolepPucsaW8yqV4t2cKluDZ1AJU0JYFOJzSnAorZY2DlPwb4m.gq8jwXav8ntPMcs7.ExQaZOAWk5wpA0OC2HPG6u8sAUqBdca5iNDW80k60l86aXvdhKbzNitwJlqbGtedkZkbO9rek3YbErSmeoyURKwi2npULUAPaAnUYrowfRGwOmq5676tW8G8YqNQ3EYU+yZ2CZHjGbcjhCjJ1gYQ4peQUmw2x2ep6gIpwxf.rvYJaatpKQvZhzvSXw2AxbAu6PFgN1kGCr7rMFv0T2TfQoXevedXDKa8dx.Or8N96IGZPxJ7fe8g6uCUQw4HYzF0rBnsC6LXxsYpRE6cXImpjQvoNrZEPFnz69FYyb5Fv8XwDtGJPVkC4hhi2GTbQhZ.ZdUseBdmtz.RH2yKf0QlvQWHxqkl2lOCveD0k+YZrB+wuB+6urQXQrGexyBoWTD2QBjUwAJ11NdaQRnmw1WzIlAY43fuy4dJ.Hgs0uFXsOi2quBWUeABIT5kYw5jezgMCFbU67Z2hV7m7CZKNu0QAK9K8+9oEOIPJ.BmzKMfpJiqC6ClsAp9EASg.lDfYMnHh3q.Xu5WJXuYUEukcGtxs+z0wElhNB0+++PGyfH+ir2E5t6pFofKYu2GOu3gqO63gsM2e0rDW3NwKeYaL2tz0CHuJgMLASRfbDRF3Xqeu8nt5QwrHZL6XYGf+ZIzvn.1QfZeGmSBjtmhouSNJHxnUagbTyMCk27LwX4WRObfbDzrBfn1lph00OfOvfFOGCZtOHaccbMlpzkI7zK9uveYa1.WaksYi7MKLm4.l5bY7o5HT1uIV2.CGutch1I+T+KZP1LHPdNFd3YItPvQSqiLXPTeof6hjLbjqoaFJSEpb0Edd3wTd.lo2MMAlH5cnnKvr9MoVKBMgRzG7MrquJ7ePl+A5NAKaf1LnCE6XbKabHKjuBvIbGl2VRWKk.oebZoswSM+YrFGGn0g5FpviXsVrvfVSVKtBpIWvbQ6mLrcoFRFZO5yDYewLU1jNGwnmRJo82Dz9X1p5MlTMyj3EnfKUTAIi5kbLMF.vYPQfo9WjCfXrJnwofVlvicQ9ksKje6AfTzhmmvzgFCpnRKOojQhfiKaj+XauABZH2MYU2IJnyLT8FWiFJZTuPC0xd3JHsrMWjEvGMyqM8hwnAUZEFUBK+ZbTY2SYma7QYTeVu+7a0xjPcbeXpX+9.vPRgyp0666+ye1NLeZZfZh6fb4JF3sFWwZIaMSJ1mt1e3etApXul8lJE7DLxDm8zUp8a8JPopXeDKfQSXE0p24O8U+6Or0bpUOeiIigslMs5q+G+m+tVqtg8QXhYQc5K+aey2buuEc54ab08TfRMlNoOnIzIMUyWUpKfFzzgbFifkqrugtYTiqR+qbQtFqqsloFXkVrkTdZHUOBbtd0UQfUusYyaZ+Q.dW8WVSOd5szq8kwgNOjAStPTgMtjOV6ecV+XsQy7Gq8PWEnBGGSEIQxDViRcrXg7ig2TjTh5XRzbpRzrbZkJUT9nMjJwE5J1CbEE360ZkSrYQhcnhRGFrtzI0lW3EG+qM1UPADVcYfk6cXhK3XniUXzIMHg8Q3SOZTTvQjaVj7inwdPLzsDb7EKCyaoYClW4WlTf+o.Td4qguk8Kmm2bM9BrROunRtN1ki8Q1UbFK.Ji053O0Nq4WN0x0gskBYNb1QQ8iX.V7d8Xk6xNMCJal4PJuYq7AVCI8yZ8X.8JMts4ctyiu3p+O8vTiWuS1HdGr4gy2ee47h+f9kyyd0GzO761Qw21F5K2zQGJctdhkuJdc8qh6Hj5FKepq4iRfE8U0T.6VnwhUwtMt1oA4rwQ4EBiLdpqa4iZBAaNuBdu4Uv0lWAe24Uv6OuB9f4Uv0mWAeuqpfUyS.p+hkDAQrYpRFZJGAjUc10fd1x.pRWYR9eO6K.TA
  • Change the processing order within a network

    3
    0 Votes
    3 Posts
    111 Views
    ustkU

    @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! ☺

  • IPP Mismatch on Windows

    4
    0 Votes
    4 Posts
    119 Views
    David HealeyD

    @eschirle Check out the building HISE section of my free bootcamp course, it covers all the details https://audiodevschool.com/courses/hise-bootcamp/

  • VST/plugin GUI design + launch graphics — ads, motion, web

    29
    6 Votes
    29 Posts
    4k Views
    lalalandsynthL

    Here I am experimenting with Figma and Webview

    The idea is a moving field of hex cells with a lot of parameters.

    Main ones are the Cell fracture, Sparks, moving exclusion zones, Hotspots, orange comets, cyan frames that capture a bunch of cells, cell size.

    Spectrum is also done via webview.

    I am really hoping that Webview matures in Juce/Hise as its a great way to design any intricate moving graphics although at the moment its great for prototyping and I am exploring converting a design into GLSL ? If even possible.
    I gather that the current issues are platform compatibility, overall stability and sample accurate response, hopefully this will advance.

    HEX GRAIN UI

    Main hexgrain.png

    HEX GRAIN UI
    Hex 2.gif

    HEX GRAIN UI
    Hex 3.gif

    HEX GRAIN UI
    Hex 6.gif

    HEX GRAIN UI Controller
    Interface.png

    HEX GRAIN AD 4:5
    Texture In motion.png

  • Latest version of HISE breaks existing presets....

    74
    0 Votes
    74 Posts
    8k Views
    LindonL

    @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:

    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. 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.

    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. 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. recursive, sendToHost and the global enablePluginParameterUpdate then become deletable. (deferNotifyHostFlag can stay - batching host notifications is an optimization, not a correctness guard.) 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......

  • Custom peak meter doesn't work in a DAW

    10
    0 Votes
    10 Posts
    134 Views
    David HealeyD

    @Kalliopei why not use a peak meter floating tile instead of a panel?

  • Need help for Export on Mac

    5
    0 Votes
    5 Posts
    182 Views
    K

    @LUIS29

    I can give the mac compiling a go and try if it compiles ok.
    No guarantees. You need to codesign it afterwards thou on every mac machine it is running.
    it's not too hard, just running some code through terminal on mac.

  • New to HISE for specific purposes, i have lot of things to ask.

    24
    0 Votes
    24 Posts
    338 Views
    A

    @David-Healey oh my god. thank you really. i'll wait for solve. good night that kind man

  • Hise general and compiler settings not saving

    11
    0 Votes
    11 Posts
    908 Views
    K

    @Christoph-Hart
    Yes, you're quite right, that probably is the real cause.
    Still a bit weird, since an older install worked as should.
    Although it was the one with an .pkg, or was it .dmg, installer from the website,
    so that might have to do with it as well.
    And as the admin and the sole user of the machine, the writing rights should've been ok.

  • "An error again :("

    2
    0 Votes
    2 Posts
    87 Views
    David HealeyD

    You just need to run a command to tell the system where xcode is.

    Make sure your xcode app is in /Applications (not the user folder, the system one). Then run the command

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  • Flex Ahdsr laf improvements

    1
    5 Votes
    1 Posts
    62 Views
    No one has replied
  • where do I find the 4.9.2 hise version?

    13
    0 Votes
    13 Posts
    431 Views
    C

    @Christoph-Hart haha thanks man! i dont know what to say. im too new at this stuff, its all hieroglyphes for me.

  • Oriental Drummer

    10
    4 Votes
    10 Posts
    2k Views
    A

    @combamusic Thank you!

17

Online

2.5k

Users

13.9k

Topics

121.1k

Posts