Forum
    • Categories
    • Register
    • Login
    1. Home
    2. observantsound
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 22
    • Posts 76
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: One-Click Fold All Component List and Module Tree sub-menus/groups/containers.

      @CyberGen I was just going to make a similar post.
      My main wish is to make the right click option "Fold All" assignable as a shortcut.
      Many of the other right click options are there already.

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: Possible to add more colouring options in script editor?

      @Chazrox I know it has a lot of color options, but I don't think I'm willing to give up on auto-complete for more colours : /

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: Possible to add more colouring options in script editor?

      @David-Healey Im curious, if you don't mind: Why use something like Pulsar specifically for editing certain file types if programs like Sublime or VSCode come with extensions for making those things easier? Just preference and force of habit?

      I really don't come from a coding background and am kind of learning as I go.
      But from my IT friend I got the impression that he uses VSCode (or terminal) for everything.

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: Possible to add more colouring options in script editor?

      @David-Healey What are those?
      I've never heard of either of them.
      Are they all IDEs?

      I actually do like the Hisescript editor and the auto complete of API and your own variables is also a really nice feature that I'd prefer to not give up.
      It's mainly the lack of color that bothers me a bit.
      Especially if you have lots of line that are just pure white.

      What would you recommend David?

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: Possible to add more colouring options in script editor?

      @ustk That's what I used to do when working with Kontakt.
      I was hoping to find a visual studio code solution since I've been getting more familiar with that IDE.

      Doesn't it throw compile errors though since it's not true Javascript? Like namespaces are apparently not a thing in Javascript.

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: Possible to add more colouring options in script editor?

      I know I've flagged this as a feature request, but I don't actually know if it's possible or not already. Claude told me this has to do with a languages interpreter and changing that can be very difficult to do.

      Can anyone explain?

      posted in Feature Requests
      observantsoundO
      observantsound
    • RE: How to move the position of the console tab?

      @David-Healey Well I assumed it was out of date because the default layout is different and the different workspace buttons don't exist at the top bar anymore.

      I stopped at 02:35 in your video. You made a custom workspace that spans the entire range of the UI. I don't know how to do that.
      When I do Show Custom Workspace, then it appears instead of the UI editor. But Code Editor and Module Tree tabs are still there.

      posted in Newbie League
      observantsoundO
      observantsound
    • Possible to add more colouring options in script editor?

      I've found that I really appreciate good use of colour in a script editor or IDE!
      It makes it 10 times easier to read for my brain.

      Sadly the HISE script editor doesn't color functions or namespaces, even though the code preview option in this forum does color functions.
      Would it be possible to add this feature? Or is this something I can do myself?
      I've read that this is actually not that easy to do, and there might be real technical limitations, but I don't know for sure how it works.

      There's also no HISE extension for Visual Studio Code right?

      namespace MyNameSpace
      {
      	var variable;
      }
      
      // --- Target ComboBox ---
      // Only testing Filter for now
      inline function onTargetBox(component, value)
      {
      	if (value <= 1) 	 // Disconnect MM_Filter if "None" option is selected
      	{MM.connect("LFO Modulator", "MM_Filter", false);}
      	
      	else if (value == 2) // Connect MM_Filter if "Filter" option is selected	
      	{MM.connect("LFO Modulator", "MM_Filter", true);}
      }
      cmbTarget.setControlCallback(onTargetBox);
      MyNameSpace.variable = 1;
      
      posted in Feature Requests
      observantsoundO
      observantsound
    • How to move the position of the console tab?

      I know there are custom workspaces and Layout Mode, but I don't really understand how they work.
      There is a David Healey video on customising your workspace, but it is a bit out of date.

      I know I can add more tabs and separators with Layout Mode, and I can view a Custom Workspace, but both of those are in addition to the already existing tabs.
      I'd like to have my code console in a vertical tab instead of a horizontal one, but keep my code editor as a horizontal.

      How would I do that?

      posted in Newbie League
      observantsoundO
      observantsound
    • RE: Confused about Matrix Modulator Value Ranges

      I figured it out.
      In order for the matrix modulator to properly work I need to set my filter cutoff to 100%.
      Then use the "Value" knob in the Matrix Modulator module as the main Filter Cutoff knob.
      I was using a 2nd UI knob that I wired to the Cutoff, but the Matrix Mod module expects you to use "Value" as the main knob/slider and "Intensity" as the modulation depth.
      Setting the filter to 100% ensure that both "Value" and "Intensity" have control over the full range of the filter.

      posted in General Questions
      observantsoundO
      observantsound
    • Confused about Matrix Modulator Value Ranges

      This is a continuation of my last post. I made a new post since this is specifically about the ModMatrix.
      https://forum.hise.audio/topic/14944/which-modulation-routing-method-would-you-recommend-for-my-project/18

      I've been struggling to understand how the Matrix Modulator value ranges work..
      I've managed to connect and disconnect sources <> targets dynamically via a Combobox, but the modulation ranges are still way off, and I just don't understand the interaction between the "Value" and "Intensity" knob (I've read all the associated docs multiple times).

      What works:

      • Add Simple Synth and LowPass Filter set to 100Hz.
        Played note outputs 100Hz low-cut square wave.
      • Add UI knob and connect it to Filter cutoff. Set to 100Hz.
      • Add "Matrix Modulator" to Frequency Modulation chain.
        Set to Unipolar mode.
        Set Value and Intensity to 0%.
        Played note is now silent and Cutoff is clamped to 20Hz.
      • Set "Value" to 100%. Cutoff returns to baseline 100Hz.
      • Set "Intensity" knob to lower/higher than 0, and negative/positive modulation gets added.
      • Change mode to "Bipolar" and moving the intensity knob still works as expected.

      What doesn't work:
      With "Intensity" at 100% in Unipolar mode, the cutoff is only alternating between 100Hz - 180Hz...
      This is likely where the "Edit Value Range" comes into play, but I just don't get it....

      If I set the "Output max" range to 20000 instead of 1.0, then the Cutoff value clamps to 1600 KILO Hz, and the UI starts freaking out a bit.

      If I choose either the "FilterFreq" or "FilterFreqLog" value range preset, then the "Income min/max" (huh...?) range are set to (20, 20000), and the Output range is now (0, 1).
      The "Value" knob behaves like before where 0% is 20Hz and 100% is 100Hz, except the displayed "Value" knob % values now go between 2000% and 2000000%???.

      And the "Intensity" knob shows "-20kHz" at 0%, "0 Hz" at 50%, and still "0 Hz" at 100%.
      AND, I can only do negative modulation now...
      Setting "Value" to its max value, and setting "Intensity" lower than 50% adds negative modulation. Setting Intensity higher than 50% does nothing.

      I have to back down with "Value" to be able to set positive modulation, and the Hz display at the "Intensity" knob seems to reflect this shift. But no matter how high the "Intensity" knob is set, the max positive modulation amount that can be reached is 100Hz.

      So yeah... I don't understand.
      And I can't tell if it's by design and me doing something wrong, or if it's a bug.
      I'm not using any of the floating tiles.
      They don't fit my UI design.

      Screenshot 2026-07-28 at 16.02.26.png

      // --- Matrix Setup ---
      const MM  		= Engine.createModulationMatrix("Global Modulator Container");
      const MM_Filter = Synth.getModulator("MM_Filter");
      const LFO 		= Synth.getModulator("LFO Modulator");
      
      
      // --- UI Setup ---
      const cmbTarget = Content.addComboBox("cmbTarget", 0,0);
      cmbTarget.set("items", "None\nFilter\nGain\nPitch");
      
      const depth = Content.addKnob("depth", 0, 40);
      const sli_filter = Content.addKnob("filter", 0, 80);
      
      // =======================================
      //! FUNCTIONS
      // =======================================
      
      // --- Target ComboBox ---
      // Only testing Filter for now
      inline function onTargetBox(component, value)
      {
      	if (value <= 1) 	 // Disconnect MM_Filter if "None" option is selected
      	{MM.connect("LFO Modulator", "MM_Filter", false);}
      	
      	else if (value == 2) // Connect MM_Filter if "Filter" option is selected	
      	{MM.connect("LFO Modulator", "MM_Filter", true);}
      }
      cmbTarget.setControlCallback(onTargetBox);
      
      
      // --- Depth Slider (-1.0, 1.0) ---
      inline function onDepthKnobControl(component, value)
      {
      	MM.setConnectionProperty("LFO Modulator", "MM_Filter", "Intensity", value);  // This sets the "Intensity" knob inside the module
      	
      	//MM_Filter.setIntensity(value); 		// This sets the whole containers intensity between 0.0 - 1.0
      	
      	//MM_Filter.setAttribute(2, value); 	// This sets the "Value" Knob inside the module
      }
      depth.setControlCallback(onDepthKnobControl);
      
      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @David-Healey I've checked out the snippet, and can confirm it works to switch the modulation between gain, pitch, filter using the Global Time Variant Modulators. And it sounds nice and crisp.

      I've also watched the video but I still have some questions:

      • What would I need to do if I wanted to modulate a custom target that can't have a GTVM? For example my instrument color crossfader slider, or modWheel?
      • Is there a way to set the modulation depth at the GTVMs directly instead of lowering the overall gain of the LFO module? That would allow the same LFO to modulate different targets in varying strengths. The GTVM UI does have a strength slider, but I don't see gain, intensity, depth or anything like that in the parameter dump.
      const globalModContainerId = "Global Modulator Container";
      const lfoId = "LFO Modulator";
      
      const modIds = Synth.getIdList("Global Time Variant Modulator");
      const targets = [];
      
      for (x in modIds)
      	targets.push(Synth.getModulator(x));
      
      
      // depth slider
      const depth = Content.getComponent("depth");  // -1.0 .. 1.0
      
      inline function onDepthSlider(component, value)
      {
      	for (i = 0; i < modIds.length; i++)
      	{
      		// Thought this could maybe work as the universal chain idx Attributes
      		modIds[i].setAttribute(1, value);	// Unknown function
      	}
      }
      depth.setControlCallback(onDepthSlider);
      
      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @Christoph-Hart
      I'm afraid I don't completely understand the matrix API yet.
      In the example below, I'm not getting print messages for the modMatrix.connect. But maybe that's normal for onInit? And there's also no modulation happening.

      The reason I thought it was a closed system, is because I don't understand how to set depth without using the floating tiles. I've looked at the tutorial snippet multiple times, but if the answer is in there, I don't see it. I only see a bunch of setup and then CSS styling.

      const LFO 				= Synth.getModulator("LFO Modulator");
      const modMatrix  		= Engine.createModulationMatrix("Global Modulator Container");
      
      // --- targets ---
      const filter    = Synth.getEffect("Filter");       
      const synth 	= Synth.getChildSynth("Waveform Generator");
      
      // If you want to be notified about connection changes, you can attach a callable object here
      modMatrix.setConnectionCallback(function(source, target, isConnected)
      {
      	Console.print(source);
      	Console.print(target);
      	Console.print(isConnected);
      });
      
      modMatrix.connect(LFO, filter.Frequency, true);
      
      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @Christoph-Hart Alright. I had a feeling I was overlooking something.
      I'll try both Davids and your Method Christoph. Just to get on top of what's actually possible.

      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @David-Healey thanks David! I’ll check it out before the end of the week and get back to you.

      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @David-Healey I thought that's what I did in method 3?
      Can you route global LFOs in Global Mod containers to various targets without global cables?

      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      @griffinboy said in Which modulation routing method would you recommend for my project?:

      But it's definately possible to do a sweep with a good AI agent, or use the REST system to probe all the Hise processing paths and get the exact numbers for all the different scenarios.

      I have no idea what that means, sorry. Could you explain?

      @griffinboy said in Which modulation routing method would you recommend for my project?:

      What I do know is that HISE doesn't seem to go faster than updating DSP every 8 samples.

      I used the fix_block8 node and put my oscillator inside of that container. But at 40Hz the native LFO to Filter Cutoff still sounds better than doing the scriptnode LFO to filter.

      Here's the Scriptnode LFO I built
      TimeVariantLFO.xml

      posted in General Questions
      observantsoundO
      observantsound
    • RE: Which modulation routing method would you recommend for my project?

      Hey guys. I do indeed mean the speed of the LFO modulation.
      I should have been more clear.

      Slow methods like the global LFO to cable will sound mushy and uninteresting at speeds higher than 20Hz. Native LFOs add some nice audio rate modulation distortion at those speeds, which the other methods do not.
      At least the way I've set them up

      posted in General Questions
      observantsoundO
      observantsound
    • Which modulation routing method would you recommend for my project?

      The last few weeks I've been fiddling with the different ways of setting up and routing modulation. They all have their pros and cons and I'd like some feedback before I make a final decision, since I might be missing something.
      Thank you for your ideas and corrections!

      My instrument:
      NoteOn plays 3 samplers at the same time for 3 sections of an instrument (Attack, Body, Tail).
      Additionally User can crossfade each section between different instrument sources for color crossfading, and User can set crossfade order, so I need a dedicated sampler for each section of each instrument source.

      My goal:
      Set up 2 x 3 LFOs with comboBoxes for choosing 1 modulation target out of a list for each LFO
      (3 different instrument section samplers play at the same time and each section gets 2 LFOs).

      Method 1: Everything internal
      Most straightforward method would probably be to assign internal LFOs to all the parameters I want to control (volume, pitch, filter) and then only turn on the ones that have been set by the comboBox.
      Pro: best fidelity. Maybe...?
      Con: Lots of fiddly UI work that scales terribly in my project.

      Method 2: Built in modulation matrix.
      Seemed really promising at first but I wasn't able to set it up with comboboxes. I might (probably) be doing something wrong, but it seems like it expects you to use it with a drag and drop style while relying on the floating matrix tiles.
      Pro: Best all in one system
      Con: Requires me to change my UI layout and how I present what is possible and not possible to modulate. Maybe?

      Method 3: Global LFOs
      LFOs in global modulation container, sending to global cables
      Pro: Most straightforward method that stays in script
      Con: Lacking resolution

      Method 4: ScriptNode LFO
      TimeVariant Scriptnode in Global Modulator Container
      Pro: Bit better resolution. Intentionally low block sizes could sound interesting at high speeds.
      Con: Annoying to set up. Even with fix_block8 not as good resolution as native. Maybe?

      posted in General Questions
      observantsoundO
      observantsound
    • RE: Coming Soon Announcement // NEW: Online KNOB BUILDER for HISE!! // Filmstrips, Radial Gradients, Render Bounds

      @Chazrox Amazing! Thank you for your hard work and for sharing it with us!

      posted in Scripting
      observantsoundO
      observantsound