Forum
    • Categories
    • Register
    • Login
    1. Home
    2. HISEnberg
    3. Posts
    • Profile
    • Following 0
    • Followers 8
    • Topics 88
    • Posts 1,061
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Audio Looper in FX Plugin

      @svkpowa Just FYI: https://forum.hise.audio/topic/13200/audio-fx-play-an-audio-file/7

      I think you may also need "Enable Sound Generators FX" Enabled in the Project Settings before building the plugin as well.

      posted in Scripting
      HISEnbergH
      HISEnberg
    • RE: Github to Hise

      Just to extend on what @David-Healey said, you can write a wrapper for your JUCE DSP using the Third Party Template.

      posted in General Questions
      HISEnbergH
      HISEnberg
    • RE: Agentic coding workflows

      @Bart I haven't tried it but looks like that may be in the works: https://github.com/christoph-hart/hise_cpp_raw_template/blob/main/AGENTS.md

      posted in AI discussion
      HISEnbergH
      HISEnberg
    • RE: How to control sample start time with the audio loop player?

      @Quemis Yea if that works for you then stick with it. If you wanted to explore the AudioLoopPlayer route this will get you started, but you'll need to make sure to update it anytime a new sample is loaded.

      HiseSnippet 1265.3ocyW0saiSDEdbR7xVCrhkcu.t.IqJtHEU0jzjMP0JDoMsEpnsaTS2UbCpZh833Qc7LF6wsM.6a.2vaF2wqAuAvYFamX2l1MD1thb24+uY747MmLHR3PhiEQHCqSmDRPFef4vIboeeeLkiNXWjwiLOBGKIQ1op1YRHNNl3hLLp9sJEFqTCo+8WeyNXFl6PloBgdkf5PNjFPkyzNn22SYr8wtjSoAE7tSuCbD79BlHAvSUylnPry43wjiwJ2pXh9NbrOx3KLwNsa0rYmttsGgwib2bqNdj1c61oUausZ1AuEtays51rSKjwC1ykJEQCkXIIFYTaGg6jg9hK4oE3UzX5HFQIzBMDpbp58ELW0QToE02mxbGjeQEiPFlClcsUM8Z6olGQcoS0O656izFrmEQwKPiJkgW0Rvq0sAu4.IiBPpVJjdr4PmHZnblEEddeyC3vWSOL7cpHTR8EU4xJl8EfGb4FA3yI6GABSin9lMattMb0u1ysrrfOVwR6KvQ1GJDgPGxWaq6c1XLQtchKULDGDxHSqe8US8aUH5YwdNezYv4ORBgmWYHA8EAgBNHTe0odnBzJhL1lQ3ik9P.oIT4eZsNTan9ZO2tQCaPqcrVcd.0o7LMwqYMMsaDSfpDfuZ00ybLM9IhD6KwbosTXCtXK8I1fWzfj.kJxOkfYZkYYW3okRKfkEkynbhsWB2QREbaAeZEUmyHAqtS9gbc3pfkPVy5WrVI6LEmelNAyGSpqsOCeVuFtJJcBxxYeLiMBFapeyxot8JfliERxK3000z50V1W2jm2bskkLFIZtlUizQ2Uf04IAiHQEOwJGg11xyBOXwlEbRaYJ3nfe.mJeQHIS9tGlQY8bpYnLDBtJ0SPOJaBZHi5RhPTW03yzaUj9.Lk95W+8dnWdvtXINOUPVgJAeKkT0AxXWxE.YX5v4Jl6RhOWJB09l0E.ruKTgupHC6jYBedu.pqKLwIhopK8oVB+yd.Ed3P5OCI2zr0FMQAkotg9ZvhwO9YeJJNwyiBRVl4yJHI4J.bumYZ4uj5J8Ud+aPn9D5XeoRZSM29Mng.BPgaBCKKyJpd6HyfBoEohTzMb3DLoH.+WPU17NoJWTH9XyAToi+7wXk4fQ3y98AFydf4CM2yyi3HmAvZl6+CK6qIKd4eRd40L5obS5x+PyLgaeif+XQ2HHbg2H.dfwA9jPJ1Zn+NcZDP5Q4iKVJE.2iigyraQ0mHDRECWwMRRoZ082P5K4M4BRTb4LrOkksTRKyFuLFr2fDwIwxFYS0Mz2V1oYMtw3DJj4M2HHrc5fmowYPxJLzw.nlNckYiowtatcip20hL2J6X4orB9OmUHpcesUSsEqO7MvS++elkRKgsRNFGRU8.6wufvfwEMF+Xf72Cmvj4ZaUBkGI3hPeAm5TtOTFQGOlDUD6y8.ssTByByz7zdmPXDbLo3KEGB6lfit9nz85Boy860mXlBWa0ju8+kuauSaytyWGptPuN7VGuK+KEucfxIhDIv.eDFZTUDaGmDLDHtcH.R3bBKVQlUQsxUpbSkr5lYHg6pE9a3WlwVJYiLisxM9NoFAXmHwYNoKCp5kenVCbt4ZN+Uf+QLHa25Za.B+f8unm43TNU2HvMW1.aurA1YYC7YKafcW1.+xkMvu5MGn5QqsSjhfzQVD5nA6o2X2vX5dBFUQ+CrLBvRO
      
      posted in Newbie League
      HISEnbergH
      HISEnberg
    • RE: Neural node bug on HardocdedFX as embedded

      @resonant I had this come up regarding the global cables. I forget exactly how I got around this, but I recall that just loading a new xml within the project, opening a scriptnode network with the node/global cable in it (maybe recompile the script interface and/or .dll network), then trying to relaunch the actual XML I am working from, seemed to clear up the issue.

      posted in Bug Reports
      HISEnbergH
      HISEnberg
    • RE: How to control sample start time with the audio loop player?

      @Lindon 's answer is definitely the easier option. But just for some further information, in case you want to go down the scripting route, you can read about the AudioSampleProcessor API and the list of available functions.

      So reference the Audio Looper as an AudioSampleProcessor:
      const var AudioLoopPlayer1 = Synth.getAudioSampleProcessor("Audio Loop Player1");

      That gives you access to this API and you can use Audiofile.SampleRange(int startSample, int endSample); to adjust the start position. It will also give you a lot more control over the Audio Looper.

      posted in Newbie League
      HISEnbergH
      HISEnberg
    • RE: Three State Button

      @pcs800 You can use a 6-state filmstrip, just make sure to set the numStates to 6.

      posted in AI discussion
      HISEnbergH
      HISEnberg
    • RE: What is wrong with this export for the love of all that is good

      @Quemis Possibly a good way to test this is to remove copies of the plugin's VST3 file and clear the AppData folder. Download your own installer and run it, then try launching the plugin in FL. From there you can start to identify what is failing (wavetable files not be copied over, permission issues, etc.). Certainly, it would help to define specifically what doesn't work.

      posted in Newbie League
      HISEnbergH
      HISEnberg
    • RE: Agentic coding workflows

      I finally had a chance to dig into the new setup this week and my head is still spinning with the possibilities. I agree with Christoph that there is something almost uncanny about Opus 4.6 (I'd add Sonnet 4.6 which I use for most tasks) when it comes to writing Hisescript and editing the source code. Next best models which I find produce useful enough results are GPT-5.4, and Gemini's new multimodal embedding model has piqued my interest as well.

      It's still early days of trying out different workflows but what does everyone's setup look like currently? Are you still using the HISE script editor or do you find working out of a separate IDE more convenient at this point? I've been using Visual Studio for the most part launching Claude Code or Codex in Terminal. Admittedly, I still find HISE script editor too useful to completely separate with it...

      On another, note how are you all getting along with specific HISE projects at this stage? One thing I am noticing is how much more aggressive Claude code can be on token usage if you don't prompt and direct it right. Previously I would consolidate all necessary information (Scripts, xmls, Dsp Files, scope of work, bug checklist, etc.) along with specific examples, API documentation, or source code from HISE, and create a new project with an LLM. This seems to have the added benefit of keeping the model more focused, faster, use less resources, and most importantly, retain memory. The main drawbacks are lack of project/HISE context and lack of writing to project.

      So the MCP server approach does allow for read/write to the project and clearly performs significantly better, but requires careful prompting and project context to avoid significant token usage. Figuring out the right balance between comprehensive context and efficiency is the real challenge for me moving forward. I imagine this just boils down to reformatting my setup to include the right sort of skill, tools and spawning subagents in the right context.

      I'll have to try out opencode as Chrsitoph suggests and using this to make edits to the HISE source code are next on my bucket list as well!

      posted in AI discussion
      HISEnbergH
      HISEnberg
    • RE: This script processor has a network that consumes the parameters

      @Jeetender This issue comes up every now and again, check here.

      posted in Scripting
      HISEnbergH
      HISEnberg
    • RE: HISE says Export Wizard is not set up even after setting it up multiple times.

      @pratitghosh

      ggg.gif

      posted in Bug Reports
      HISEnbergH
      HISEnberg
    • RE: Absolute Samples - Windows 11

      @l4ch Yea you can write a bash script to fix this. First move your samples to your project's samples directory. Then open one of your samplemaps and observe the directory structure it currently has. I'll just assume you have a folder on your desktop with your samples as an example:

      "Users/username/Desktop/AudioSamplesFolder/SampleName.wav"
      

      To fix it, you will need to structure like this:

      "{PROJECT_FOLDER}SampleName.wav"
      

      You could test this first by making a new samplemap.

      So all you need to do is generate a bash script that changes your old sample path to the new one (simple enough to vibecode).

      posted in General Questions
      HISEnbergH
      HISEnberg
    • RE: Asset Manager

      @Christoph-Hart Looks very promising. The setup seems straightforward enough (the robot maybe generated too much text description). Happy to throw some FX Libraries and HIsescripts at it if you need some beta testing before launching. 😁

      posted in General Questions
      HISEnbergH
      HISEnberg
    • RE: Handling Latency for Delay-Based Modulation Effects

      @Yinxi Good question.

      Just to start, latency refers to a short period of delay (usually measured in Samples in DSP) when an input signal enters the plugin and when it exits the plugin. In many cases that is not desirable so HISE (using the JUCE backend) has a function called Engine.setLatnecySamples. This works by telling the host/DAW: "Hey, this plugin introduces X samples of latency, so adjust the signal so it is X samples further ahead in time".

      An example of this happening in Scriptnode is if you use oversampling, which will generally introduce a few samples of latency. So you need to calculate the amount of latency introduced (Use Tools>Check latency of signal chain) and use Engine.setLatencySamples to adjust it. This function is dynamic, meaning you can adjust the number of samples depending on the latency you are introducing. Example: if you have a knob that adjusts the oversample size from 2x to 4x, this might cause your latency to jump from 1 samples to 2 samples. You can write an if statement to change this and the host will be updated:

      // pseudo-code
      if (OversampleKnob = 2x)
         Engine.setLatencySamples(1);
      else if (OversampleKnob = 4x)
         Engine.setLatencySamples(2);
      

      Small note: Each host has a different way of handling the information it receives from a plugin so results may vary here. You need to make sure to update the latency report once when initializing the plugin, and any time after if changes(this is probably updated once per block).

      But returning to your earlier question about vibrato, if you consider that latency is just a delayed signal, that is not necessarily a bad thing. Vibrato is basically just a time-varying delay (delay line modulated by an LFO). The pitch shifting comes from the rate of change of the delay. In other words, the delay(or latency) introduced by the Vibrato is precisely what you want, so there is no reason to adjust for the latency.

      This is all an oversimplification but hopefully clarifies things a bit. You can test this out in a DAW to confirm as well. Run an impulse through your plugin and record the output and see how they line up.

      posted in General Questions
      HISEnbergH
      HISEnberg
    • RE: How to set up parameter modulation slots for RNBO nodes in C++?

      @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
      
      posted in C++ Development
      HISEnbergH
      HISEnberg
    • RE: How to set up parameter modulation slots for RNBO nodes in C++?

      @Allen, it's been a looong time since I've used it, but doesn't the RNBO template provide you this option?

      Screenshot 2026-03-05 at 7.53.14 AM.png

      posted in C++ Development
      HISEnbergH
      HISEnberg
    • RE: Check Latency broken on latest develop build?

      Just a little bump to this topic. I believe test begins to run, but the impulse doesn't pass through and the Alert Window fails to show up reporting the latency samples.

      posted in Bug Reports
      HISEnbergH
      HISEnberg
    • RE: Linking a pre-compiled static library with ThirdParty C++ nodes

      @Christoph-Hart You are the best. I'll give this a try later on! Thank you as always.

      posted in C++ Development
      HISEnbergH
      HISEnberg
    • RE: Linking a pre-compiled static library with ThirdParty C++ nodes

      Just a bump to see if anyone has a suggestion!

      posted in C++ Development
      HISEnbergH
      HISEnberg
    • RE: Load DLL from some else's Scriptnode export?

      @alobassmann you don't need Git necessarily, but it is very helpful to build HISE on your own system. I may be mistaken, but I believe you should be able to use the precompiled version of HISE and still compile Scriptnode Networks. Just to clarify, there is a difference between HISE itself--the application and it's source code--and the HISE project you are working in. When sharing Third Party C++ nodes, all of that is contained in the HISE project and you recompile those from within HISE.

      @David-Healey is the person to clarify here, but I believe his program will walk you through the steps of building HISE, both from the installer and from Github: https://audiodevschool.com/courses/

      posted in ScriptNode
      HISEnbergH
      HISEnberg