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.
Best posts made by observantsound
-
RE: Confused about Matrix Modulator Value Rangesposted in General Questions
-
Can't use projucer at all on M1 Big Sur MacBookposted in General Questions
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.....
-
RE: One shared Script Voice Start Modulator for many Samplers?posted in Scripting
@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?_=1781354181861I 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.
Latest posts made by observantsound
-
RE: How to move the position of the console tab?posted in Newbie League
@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. -
Possible to add more colouring options in script editor?posted in Feature Requests
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; -
How to move the position of the console tab?posted in Newbie League
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?
-
RE: Confused about Matrix Modulator Value Rangesposted in General Questions
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. -
Confused about Matrix Modulator Value Rangesposted in General Questions
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/18I'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.
// --- 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); - Add Simple Synth and LowPass Filter set to 100Hz.
-
RE: Which modulation routing method would you recommend for my project?posted in General Questions
@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); -
RE: Which modulation routing method would you recommend for my project?posted in General Questions
@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); -
RE: Which modulation routing method would you recommend for my project?posted in General Questions
@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. -
RE: Which modulation routing method would you recommend for my project?posted in General Questions
@David-Healey thanks David! I’ll check it out before the end of the week and get back to you.
-
RE: Which modulation routing method would you recommend for my project?posted in General Questions
@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?