Forum
    • Categories
    • Register
    • Login
    1. Home
    2. observantsound
    • Profile
    • Following 0
    • Followers 0
    • Topics 20
    • Posts 66
    • Groups 0

    observantsound

    @observantsound

    Solo Dev at www.observantsound.com

    2
    Reputation
    14
    Profile views
    66
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    observantsound Unfollow Follow

    Best posts made by observantsound

    • Can't use projucer at all on M1 Big Sur MacBook

      2nd time I'm trying to get Hise to work on my MacBook.

      1st time I followed David Healeys instruction video by downloading release 2.0.
      Back then I could open projucer but the project would build with tons of errors and warnings.
      Asked in the forum and was told that I needed to download the current build and not the last stable one.

      Ok, tried that and now I can't even open projucer.

      • Current build download: "projucer is damaged and can not be opened"
      • 2.0 build download: "you do not have permission to open this file"
        Hise.pkg: Sure... it installs, but I have no idea what to do afterwards since none of the tutorials talk about the pkg installer.

      What do I need to do to get this to work on my MacBook?

      I'm willing to learn but this is all very new to me and without the proper, up-to-date tutorials I have no idea what I need to do.....

      posted in General Questions
      observantsoundO
      observantsound
    • RE: One shared Script Voice Start Modulator for many Samplers?

      @David-Healey Yes the Global Modulator Container worked beautifully for this.
      Thanks to your video I've now also understood the global modulator container better.

      Regarding the body + release in one sampler:
      That's what I've tried first, but it's bugged when using together with loop regions.
      It's what I described in this earlier post you commented on:
      https://forum.hise.audio/topic/14799/loud-click-artifact-when-using-releasestart-with-looping-enabled/14?_=1781354181861

      I haven't gotten around to testing it with 48kHz samples yet.
      But by now I've found enough use cases to split apart the sections into dedicated samplers.

      posted in Scripting
      observantsoundO
      observantsound

    Latest posts made by 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: --> Update w/ User Feature Requests! // 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