HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. aaronventure
    3. Posts
    A
    • Profile
    • Following 0
    • Followers 3
    • Topics 168
    • Posts 1,756
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Anyone successfully building plugins in GitHub actions?

      @Christoph-Hart okay that's a build command, but I still have to use a single global build for the interface.

      There's a bunch of stuff HISE stores in its app data folder. Like it's source code path, faust path, etc. It would be nice to be able to just go to the HISE submodule directory in the project directory and launch the version of HISE that I know will work for that specific project.

      For example, I opened an older project now and dropShadowFromPath is broken in it. Now I gotta find the last commit where it worked.

      posted in General Questions
      A
      aaronventure
    • RE: Anyone successfully building plugins in GitHub actions?

      @dannytaurus As long as you don't need to compile scriptnode networks first or do anything funny with hardcoded networks, you can do it.

      You need the HISE binary to initiate the calls and the build order, create the JUCE project and generate all the code.

      You need the HISE source because it contains the JUCE source, which is what's actually used to build your plugin.

      So pull the repo, build HISE, pull your project, build your project.

      If you need to install IPP first, check this https://github.com/sudara/pamplejuce/blob/main/.github/workflows/build_and_test.yml , though this uses Cmake.

      HISE is a bit funny here. The annoyance is how it uses the appdata folder, which makes having multiple HISE builds annoying or sometimes impossible. It should store its preferences and stuff right next to the binary, I don't think anyone building from source ever moves the binary. This would make it possible to add the HISE repo as a git submodule, effectively letting you lock projects to a certain commit, which would be great as HISE starts making more and more breaking changes (a welcome development).

      Now every project can have its own HISE build, which would definitely be a good change rather than having to rebuild it with different flags for every project, because you have to manage and keep track of which flags you're using for which project, and hopping projects becomes silly. In fact, I'll tag the boss here, and hopefully get his take here @Christoph-Hart

      If that were to happen, you'd just pull your repo, initialize submodules, build the HISE submodule, call the binary to build the project, without having to worry about breaking changes or manually updating your build script every time you validate a new HISE commit as safe.

      posted in General Questions
      A
      aaronventure
    • RE: Quick F5 tip for Mac users

      @d-healey Hold Shift while typing to amplify my anger.

      posted in General Questions
      A
      aaronventure
    • RE: Quick F5 tip for Mac users

      @dannytaurus I use BetterTouchTool and have it on Fn+Space for HISE, way more practical than reaching up.

      posted in General Questions
      A
      aaronventure
    • RE: How to trigger label callback on enter/return but not on focus change?

      keypresscallback object has a "isFocusChange" property

      posted in Scripting
      A
      aaronventure
    • RE: Is it possible to link parameters between plugins?

      @ustk OSC doesn't work. You need to write to a file and read it on a timer. It's dirty as hell but it works.

      Named pipe or some other memory-based solution would be much better, though, and a lot faster (no filesystem access needed).

      Link Preview Image
      Named Pipe idea

      @Christoph-Hart This is my entire class. It works great. I have a value change broadcaster for all my controls, and it checks for the condition (key modifier...

      favicon

      Forum (forum.hise.audio)

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @d-healey it gets destroyed completely, so even the memory gets cleared

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @Christoph-Hart said in Webview! || Whats going on here??:

      I've heard multiple complaints from developers getting into trouble with multiple instances or bugs that arise when people load in different plugins that all use a webview.

      Big if true, but also an issue that should then be fixed by DAW devs or JUCE devs or Webview2/Webkit devs. The potential is too insane to ignore. Though I've never seen two Webview based desktop apps interact with each other negatively, which means this could be a thing because they're within the same process/host, which might then put it into the DAW developers' court.

      No doubt in some cases your users will have to be using the latest version of the DAW. That's the price. It's also a question of where HISE's Webview component is with tech, since HISE is still on JUCE 6.

      Also, if your plugin has a skeumorphic interface with little or no animations or you're generally just using filmstrips, it's simpler and faster to just use HISE.

      If it's not complex and you don't need performant animations, it's also faster and simpler to use HISE, and it's even possible to do a responsive design now with the changeable plugin resolution.

      HISE is uniquely positioned here because of hot reloading. Actually developing a complex interface in JUCE is not super fun. Melatonin inspector helps, but man...

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @Chazrox it's just a frameless browser instance that loads a html file. When you connect to a website with a normal browser app, it loads the same bundle, it's just served by a server. Here it's shipped in your dll. Put the bundle in the Images directory and point the Webview component towards it.

      The idea of Webview in general is to leverage the undoubtedly most mature frontend technology on the planet - the web platform technologies - to develop an interface for your desktop app.

      The Web tech is so far ahead of the native JUCE UI stuff in terms of what it can do, how well it runs and how easy it is to work with it. As a bonus, you also get skills that directly translate elsewhere outside HISE and even audio.

      Once you know this, the only missing thing will be how to point CloudFlare Pages or Github Pages to your github repo (it's like two clicks) and voila, you have a static website. Then if you learn Firebase or Supabase for example, you can ship a whole SSR web app with user accounts, database etc.

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @dannytaurus Don't have anything released yet but this is what you do in HISE

      const var Interface = Content.addWebView("Interface", 0, 0);
      Interface.set("width", 1600);
      Interface.set("height", 900);
      
      Interface.set("enableCache", true);
      Interface.set("enableCache", false); // comment this out before export
      
      Interface.set("enablePersistence", true);
      Interface.reset();
      
      Interface.set("saveInPreset", true);
      
      // Point to index.html
      var index = FileSystem.getFolder(FileSystem.AudioFiles).getParentDirectory().getChildFile("Images/Interface/build/index.html");
      Interface.setIndexFile(index);
      
      Interface.setConsumedKeyPresses("all");
      
      //=====================================================================
      
      Interface.bindCallback("DOMContentLoaded", function(args)
      {
      	// Push persisted state into the interface. Simply call this when the DOM loads in your index.html, 
      });
      
      //=====================================================================
      
      // WebView component callback
      // Only executes on init when persistent data is restored
      inline function onInterfaceControl(component, value)
      {
      	//Init stuff, recall config.ini, push persisted state back into the interface...
      };
      
      Content.getComponent("Interface").setControlCallback(onInterfaceControl);
      

      Your app.html while developing the interface is mostly empty anyway since you do everything in +layout.svelte and the individual components. But it does have

      	<script>
      		// Define a fallback for development mode
      		if (typeof window.DOMContentLoaded === 'undefined') {
      			window.DOMContentLoaded = function () {
      
      			};
      		}
      
      		document.addEventListener('DOMContentLoaded', function () {
      			// Call the function that will be defined in the HISE app
      			DOMContentLoaded();
      		});
      	</script>
      

      So you open the interface, it finishes loading and calls DOMContentLoaded, which is defined in HISE, and in HISE you simply take the value of the webview component (or wherever you're storing the state) and call a function in your interface https://docs.hise.dev/scripting/scripting-api/scriptwebview/index.html#callfunction.

      In your interface, you take the object that this function receives and reset your state.

      For every interaction, you're managing your Svelte state anyway. In your appState.svelte or whatever you call it, you simply define a callback which says when the state changes, it calls a function "storeToHISE" or whatever you call it, which again you define in HISE, which just receives the json and stores it in the webviewcomponent or in any other component via setValue() so that it can persist.

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @Christoph-Hart I made the Webview component itself saveInPreset and am storing the whole state as an object on every UI interaction.

      When I close the interface and open it, the DOM finishes loading, I call a function in HISE which then feeds this back into the interface.

      The state management in the web app itself is while it's running: full reactivity, store subscriptions etc.

      posted in General Questions
      A
      aaronventure
    • RE: Webview! || Whats going on here??

      @Chazrox I built a full UI using Webview. This is the future IMHO.

      I used Svelte 5 + SvelteKit and developed a "static Single Page App".

      Svelte 5 + SvelteKit gave me a built in router and state management, no virtual DOM, tree shaking and compiling to simple html+css+java script. The Webview in general gives me screen refresh rate performance with no hiccups whatsoever, responsive design, full accessibility and accessibility checklist + warnings, performance monitor, profiling (Chrome), GPU rendering if needed.

      The build folder is in the Images folder of a HISE project and the Webview component's path simply points to the html file.

      The work flow is the standard webdev workflow: npm run dev to launch a server and see the changes in real-time, npm run build to compile.

      Then if you one day want to move from HISE, you're not locked in. Take your webview GUI and go anywhere you please: JUCE, iPlug2, Cmajor...

      posted in General Questions
      A
      aaronventure
    • RE: Neural Amp Modeler (NAM) in HISE

      @Lurch said in Neural Amp Modeler (NAM) in HISE:

      EDIT: Ignore the Const Var at the end there, copied by accident, doing a few things at once.

      this is funny because you could've used the edit to remove it 😆

      posted in General Questions
      A
      aaronventure
    • RE: Neural Amp Modeler (NAM) in HISE

      @JulesV i haven't gotten around to actually implementing this, but it should work, instead of just reading the file as object, i would just paste the data in there

      posted in General Questions
      A
      aaronventure
    • RE: Help Me Get SliderPack Values please! Thank You!

      @Chazrox Console.print(trace(yourArray)) ;

      posted in Scripting
      A
      aaronventure
    • RE: I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise

      @rglides You're gonna run into agreeing issues even when running a local open source model.

      It does not have the training data for HISE, for the docs, likely for the interface screenshots or videos of it etc.

      Even Context7 availability is limited by the tool calling ability, and output quality quickly degrades with context size (except on the latest frontier models).

      The real benchmark would be to try and use something like this https://github.com/e-p-armstrong/augmentoolkit to add training data to a good open source LLM like Devstral. Then feed it the docs, the entire forum content, transcripts of David's videos etc.

      You would then try to use it with a strong system prompt that discourages glazing and agreeing.

      posted in Scripting
      A
      aaronventure
    • RE: Roadmap to HISE 5

      @d-healey how so? aren't you just loading it from the computer in that case?

      EDIT: Ah, the IPP license clarifies this.

      posted in General Questions
      A
      aaronventure
    • RE: Roadmap to HISE 5

      @d-healey if hise resorts to using the Ipp that's gettable via nuget or any of the ones that can be be found with direct links on the Intel website, then you could add it to the installer? There would then have to be an option that it's not included in the plug in, but found in the pc.

      Kind of like video games of old used to pack C++ resists and direct X versions.

      posted in General Questions
      A
      aaronventure
    • RE: CSS Shadow potentially causing lag

      @Gab you can use a Webview and get the best performance that way.

      posted in General Questions
      A
      aaronventure
    • RE: Is there a way to search all included .js files?

      @VirtualVirgin

      Right click -> Find all occurences. It will look in all included files.

      If you want to search even the non-included ones, use VSCode, open the Scripts directory in a workspace and use Ctrl+Shift+F (or H for replace) to search and/or replace in all of them.

      posted in General Questions
      A
      aaronventure