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

    Posts

    Recent Best Controversial
    • RE: I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise

      @Chazrox Writing small pieces of code, like functions. Connect it to context7 so it can get docs, but obviously that only works if the docs are complete, and HISE docs are not.

      I did once write a full 3d rendering engine in HISE PaintRoutine, with frustum culling and all the jazz. You'd just pass it a "mesh" like a an array of points relative to a center, pass it a location for the the mesh center, pass it camera specs like xyz, pitch, yaw, fov and it would render the whole scene using line calls. Of course it was all running on the CPU so it wasn't very efficient at all.

      I did eventually move to WebView and three.js because that's what three is made for and it runs on the GPU, but this is the kind of stuff where even testing it out meant you had to go and learn computer graphics from complete zero just to implement this here, but the toughest question would be where to even look and what to look for. With AI it was much faster to find the relevant information and get it going.

      So in a world where a question "is this even viable to try to implement" can be answered in days instead of months, it's like magic wand.

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

      @Chazrox said in I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise:

      Who will maintain all this 💩 code??? lol

      The point is that you shouldn't look at it. Does it work? Is the performance acceptable? Have you tested for security issues? Just ship it. That's the current way of things. Some of the stuff I'm seeing in new repos popping up is the stuff of nightmares, but hey, it works.

      I mean it's incredible, it's literal science fiction stuff, you write an instruction as if you were writing it to a developer on your team, and it becomes reality. If you told me 3 years ago this would be a reality today I would've called you crazy. Of course, currently it's just step by step, so you still need to have the big picture, understand on high level how things work so your instructions can be accurate etc.

      But code developed both to be functional and to be readable to humans so they can write it and debug it. This is no longer necessary, so I have no trouble imagining a language coming up in a very near future that is completely oriented to be written by LLMs.

      The potential is just too much to ignore.

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

      @d-healey yeah you're right

      plus as I've said elsewhere, large part of HISE is not code-based

      No way through HISE currently other than the hard way. which may become increasingly inaccessible as people become super impatient with AI doing their shit for them in seconds in other areas of life. I do often think how impossible it will be for us to relate to the new kids, given how we had to go and read 300 pages of docs before writing some code back in the day.

      Now it's all just a prompt away.

      posted in Scripting
      A
      aaronventure
    • RE: ScriptNode Compilation Workflow and What to Do About It

      @Christoph-Hart Haha that's not at all what that requirement says.

      The requirement says that if I input MIDI or audio into HISE and it spits something out, then pressing export should result in that same plugin.

      Faust nodes need the compilation step before they can work? Alright ,throw a warning and tell me to enable Allow Compilation. If I didn't ask again on export. But then it should compile to a plugin that works. Because it works in the HISE IDE.

      I can, in HISE, have a single .dsp file that I use in 10 different networks at 30 different places in Fasut nodes and it'll work in the IDE. I can make changes and it'll work. But just pressing export wont.

      So what, I should now first compile that faust dsp file in a lone network that exists just for compiling lone faust files, replace all existing faust nodes that are used for development because I cannot just branch, as the nodes cannot be in there when exporting, connect all the cables for 30 instances across 10 networks and then compile? And then when I have to make a change, what then? Git discard all the changes to the networks, make changes, and then replace and reconnect 30 nodes again just to run pluginval?

      Come on, man 😄

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

      @d-healey That's why you should ask Claude with the Context7 MCP installed

      // ========================================
      // HISE Hello World Script Examples
      // ========================================
      
      // 1. BASIC CONSOLE OUTPUT
      // The simplest way to output "Hello World" in HISE
      Console.print("Hello World");
      
      // 2. CREATING A BASIC USER INTERFACE
      // Create the main interface (600x500 pixels)
      Content.makeFrontInterface(600, 500);
      
      // Add a button programmatically
      const var HelloButton = Content.addButton("HelloButton", 10, 10);
      HelloButton.set("text", "Click for Hello World!");
      
      // 3. BUTTON CALLBACK FUNCTION
      // Define what happens when the button is clicked
      inline function onHelloButtonControl(component, value)
      {
          if(value) // Button was pressed (value = 1)
          {
              Console.print("Hello World from Button!");
              
              // You can also show a popup message
              Engine.showMessageBox("Hello World", "Greetings from HISE!", 0);
          }
      };
      
      // Connect the callback to the button
      HelloButton.setControlCallback(onHelloButtonControl);
      
      // 4. DRAWING TEXT ON A PANEL
      // Add a panel for custom graphics
      const var HelloPanel = Content.addPanel("HelloPanel", 10, 70);
      HelloPanel.set("width", 300);
      HelloPanel.set("height", 100);
      
      // Set a custom paint routine for the panel
      HelloPanel.setPaintRoutine(function(g)
      {
          // Set background color
          g.setColour(Colours.withAlpha(Colours.blue, 0.3));
          g.fillRect(this.getLocalBounds(0));
          
          // Set text properties
          g.setFont("Arial", 24);
          g.setColour(Colours.white);
          
          // Draw the hello world text
          g.drawFittedText("Hello World!", this.getLocalBounds(5), "centred", 1, 1.0);
      });
      
      // 5. CREATING A SIMPLE SOUND GENERATOR
      // Get reference to a sine wave generator (if one exists in your project)
      // Note: You need to add a SineWaveGenerator module first in HISE
      /*
      const var SineGen = Synth.getChildSynth("Sine Wave Generator");
      
      if(isDefined(SineGen))
      {
          Console.print("Sine generator found - Hello World with sound!");
          
          // Set some basic parameters
          SineGen.setAttribute(SineGen.SaturationAmount, 0.1);
          Console.print("Saturation set to: " + SineGen.getAttribute(SineGen.SaturationAmount));
      }
      else
      {
          Console.print("No sine generator found - add one to test sound generation");
      }
      */
      
      // 6. WORKING WITH ARRAYS AND LOOPS
      Console.print("=== Array Hello World ===");
      const var words = ["Hello", "World", "from", "HISE"];
      
      for(i = 0; i < words.length; i++)
      {
          Console.print("Word " + i + ": " + words[i]);
      }
      
      // Join the words together
      var message = "";
      for(word in words)
      {
          message += word + " ";
      }
      Console.print("Complete message: " + message);
      
      // 7. BASIC MATH OPERATIONS
      Console.print("=== Math Hello World ===");
      const var x = 5;
      const var y = 10;
      const var result = x + y;
      Console.print("Math result: " + x + " + " + y + " = " + result);
      
      // 8. TIMER-BASED HELLO WORLD
      // Create a timer that prints hello world every 2 seconds
      const var HelloTimer = Engine.createTimerObject();
      HelloTimer.setTimerCallback(function()
      {
          Console.print("Timer says: Hello World! " + Engine.getUptime());
      });
      
      // Start the timer (2000ms = 2 seconds)
      HelloTimer.startTimer(2000);
      
      // 9. BASIC FUNCTION DEFINITION
      inline function sayHello(name)
      {
          return "Hello " + name + " from HISE!";
      }
      
      // Call the function
      Console.print(sayHello("Developer"));
      Console.print(sayHello("World"));
      
      // 10. BASIC CONDITIONAL LOGIC
      const var currentTime = Engine.getUptime();
      if(currentTime > 5.0)
      {
          Console.print("Hello World - HISE has been running for more than 5 seconds!");
      }
      else
      {
          Console.print("Hello World - HISE just started!");
      }
      
      Console.print("=== HISE Hello World Script Complete! ===");
      
      posted in Scripting
      A
      aaronventure
    • RE: ScriptNode Compilation Workflow and What to Do About It

      @Christoph-Hart hey, so it's been a bit, where are we with this?

      During the last meetup, we talked about this and my point was basically:

      If it works in the HISE IDE, pressing export should result in a plugin that works/sounds the same.

      No need for hidden steps like compiling nodes separately in a different network, then replacing Faust node instances etc.

      I just tried creating a simple faust effect in a Faust node. HISE kindly reminded me to set the Allow Compilation flag to true. I tried, the error failed to go away, the "Fix it" button worked.

      The effect was having an effect and doing what it should in HISE Standalone.

      I hit export. Build succeeds. VST3 fails to scan. AU crashes host.

      posted in ScriptNode
      A
      aaronventure
    • RE: What are you using to build UI for your plugin? What's your preferred way and why?

      @mrcurious No.

      If you don't fancy building your own components, check out PrimeVue/PrimeReact.

      Then either pick Vue+Nuxt for the Vue version or NextJS for the react version, configure it to build a static website and start.

      Link Preview Image
      PrimeReact | React UI Component Library

      Slider is a component to provide input with a drag handle.

      favicon

      (primereact.org)

      posted in General Questions
      A
      aaronventure
    • Can we please get "Debug/Release with Faust" configuration for the plugin version of HISE?

      This would enable using Faust in Scriptnode and analyzing it in realtime with PluginDoctor.

      posted in Feature Requests
      A
      aaronventure
    • RE: Mask does not scale properly on HiDPI or Retina display

      @prehm It uses the old JUCE routine for drawing blur, which is about 100x slower than the melatonin version that HISE is still missing, and it's still done on the CPU.

      If you want fancy graphics and visual effects, use a WebView and enjoy all the modern frontend tech.

      posted in Bug Reports
      A
      aaronventure
    • RE: Tired of this error on Startup

      So say we all

      Link Preview Image
      The big bug tier list

      @Christoph-Hart HISE_NUM_STANDALONE_OUTPUTS Error // Channel Amount Mismatch on every start https://github.com/christophhart/HISE/issues/692 This one has bee...

      favicon

      Forum (forum.hise.audio)

      posted in General Questions
      A
      aaronventure
    • RE: HISE supports gif images

      @CatABC

      If it were added to the image component, webp would be a much better choice.

      You can already import a stitched image, or you can load in individual frames of a gif, then simply play through them using a timer (use the panel component for this).

      If you don't need to have other components on top of the gif, you can also use a WebView (no other HISE component can be rendered on top of the webview), and then you can import gifs, webp (way better) etc.

      posted in Feature Requests
      A
      aaronventure
    • RE: exporting Pc versions on mac

      @d-healey Did you try this out?

      posted in General Questions
      A
      aaronventure
    • RE: Scriptnode Modulation creating aliasing or bitcrushing

      @dane-zone click the little dropdown in the node title to expose the parameter of the dynamic blocksize so you can change it.

      The CPU meter in HISE is not the final thing. Depending on the complexity of the network, it may go down, sometimes a lot, when you export it. So export it and check against other plugins in your DAW. That's your reference.

      If there are no audible artifacts at lower modulation values, you could leverage the dynamic blocksize node to go for frame processing only past certain modulation thresholds, optimizing the plugin when low modulation values are used.

      There's gonna be a "hiccup" when you switch blocksizes, so keep it in mind if you want to offer parameter automation of the modulation frequency. You may wanna leave an option for this in the settings but before you go trough the engineering trouble to offer this feature, export the plugin and check whether using frame processing for this is actually even expensive by comparing it to the performance of similar plugins on the market.

      posted in ScriptNode
      A
      aaronventure
    • RE: exporting Pc versions on mac

      @dannytaurus Give this a look, too

      Link Preview Image
      HISE/.github/workflows/build_installer.yml at develop · christophhart/HISE

      The open source framework for sample based instruments - HISE/.github/workflows/build_installer.yml at develop · christophhart/HISE

      favicon

      GitHub (github.com)

      posted in General Questions
      A
      aaronventure
    • RE: Scriptnode Modulation creating aliasing or bitcrushing

      @dane-zone have you tried frame processing? instead of using fix_8, try using dynamic_blocksize node so you can preview different settings and see if that's what affects it

      posted in ScriptNode
      A
      aaronventure
    • RE: exporting Pc versions on mac

      @sodanswishers check out how HISE's actions are set up for testing commits.

      for setting up IPP via Github Actions specifically if you need it on Windows, check this out https://github.com/sudara/pamplejuce/blob/main/.github/workflows/build_and_test.yml

      posted in General Questions
      A
      aaronventure
    • RE: exporting Pc versions on mac

      @sodanswishers Running Windows on Parallels. You can also set up Github Actions to export the plugins on all three systems.

      posted in General Questions
      A
      aaronventure