@ustk @griffinboy that def does so thank you so much.
P
@ustk @griffinboy that def does so thank you so much.
P
Hiya @Christoph-Hart
Me and my fav Bot (RIP Fable) has identified an issue with audio processing and modulations in HardcodedMasterFX that sit inside a master container (i.e. a top level filter for my device that is obs monophonic due to voicing reasons).
I hope the below explains everything. Happy to drop a minimal script if needed.
Thanks
Phelan
Adjacent to the resolved "HISE 4.1 Hardcoded Master & Poly FX P1 P2 Modulation" thread (forum topic 13276).
After the 4.1 P1/P2 modulation breaking change (params no longer auto-modulated; must opt in per parameter), I'm trying to restore modulation on a global filter that sits in a HardcodedMasterFX.
To get P1/P2 modulation back on the MASTER (mono) filter, I wrapped the node in a compiled network:
container.chain -> single C++ filter nodeAllowCompilation="1", NO AllowPolyphonic (so it's monophonic for the master FX)ExternalModulation="Combined" connected to the node's Frequency/Resonance.Result in the HardcodedMasterFX:
Earlier I also tried the POLYPHONIC network (AllowPolyphonic=1) in the master FX: that produced SILENCE (channel/voice mismatch), which is why I made the monophonic variant.
createExternalModulationInfo to declare params 0 and 1 as Combined-modulatable on the raw node (so I can skip the network wrapper entirely)? You mentioned "with C++ nodes you can directly call a method that defines the parameter's modulation connections" - a minimal example would let me do this directly.I know Oli Larking the dev of iPlug. He's worked very hard on this over the years. Awesome dood. He is day job is at Ableton and he's mostly working on it by himself....
P
Thanks @Oli-Ullmann.
I've been using the clearAllConnections method. And yeah - I've discovered that if you delete and recreate the MatrixModulator in theh module tree it sometimes fixes things.
Thanks for your help.
P
Hiya @Oli-Ullmann
yeah - I wan to avoid the processorId in the UI properties I want to script everything. I never use the UI proprietress processorId for any controls as its function can be scripted via methods like setAttribute etc. I have a massive mod matrix that's arbitrary for the user (i.e. anything to anywhere) that was working under the old global modulator system, which I am trying to move over to the new system.
Your script worked for me and the only differences I can see is that you have the deferControlCallback enabled for the knob in its UI properties.
P
Hiya
There seems to be an new audio capture feature in the latest OBS but I've never used it:
Otherwise, you have to send the audio from the source (i.e. HISE or DAW) out to a third party app that does inter app audio routing and return it into OBS. Something like these:
Blackhole
Jack
VB Audio
Loopback
Audio App
Soundflower used to be the best free solution on Mac but it was killed off when the OS went 64bit.
If your doing anything more than basic screen capture recording I'd suggest in investing in something a bit more flexible than OBS. I used IShowU for quick stuff. I used Screenflow for vids for Master uni course material and Camtasia to make screen capture videos for Ableton. Both are supa pro with multi track editing, camera support, chroma keying, drop in recording etc etc....
P
Hiya
Thanks @griffinboy and @DanH for the info.
@Oli-Ullmann in my snippet the UI control is attached via the setAttribute method in line 34. It actually moves the value slider in the Matrix Modulator successfully, just filter cutoff mod is not audible. Often the core audio driver crashes, hence the impression that filter coeff's are being blown. IMHO core audio driver crashes also happen in Max / Gen when filter coeffs are blown. Thanks for the deferContrtolCallabck and linked slider tips!
I've nested a RNBO filter into scriptnode that contains a chain of other internal cutoff mods via pma's and that compile seems to be a bit more stable when running as a hardcoded polyhonic FX with cutoff modulated by a matrix modulator and lots of mod sources (i.e. no coeffs explosions and no core audio driver crashes).....
Thanks all
P
Hiya
I'm the author of the tutorial video that Dan posted.
I can confirm that my RNBO patches are compiling into scriptnode and hardcoded FX in Max 9.0.0 and RNBO 1.3.3 with HISE 4.1 from the Developer branch I pulled back in Aug 2025. I'm on Mac OS 14.6.1.
Have you tried to roll back?
P
Hey peeps
Noticed some weird behavior when scripting the Matrix Modulator that modulations a filters cutoff frequency.
If your not using the processorId in the UI properites panel and mapping a UI control directly to the Matrix Modulator via scripting (i.e. setAttribute(2, value)), often the UI element doesn't seem to affect the filters cutoff.
This is the case with stock HISE filters and any C++ nodes compiled into a Hardcoded Polyphonic FX (like @griffinboy Griffin_LadderFilter, or RNBO filters).
At times it also seems to kill the core audio driver and all audio is lost in HISE until the Device is toggled in the Audio & MIDI settings or HISE is rebooted.
This leads me to believe that the Matrix Modulator is blowing up the filters coefficients (easy to do - I've done it thousands of times myself in code).
Also, when Matrix Modulator's Intensity value is maximum, the Inverted param cannot be accessed via scripting (i.e. .setConnectionProperty("LFOModulator1", "FilterCutoffModulator1", "Inverted", 1).
It only seems to work when the Intensity value is anything other that maximum. Maybe there's some bounding errors going on?
Here's a short vid demonstrating the problems:
And here's a snippet with the issues:
HiseSnippet 2498.3oc2Z07aabbEeVIMtlL1I1ttwtsWVHzBP2ZHKRQam.CCQ8oMQkrnMkc5G.IY0tCIWnk6vt6rNRov.9XN0bnnnGKP+Cn.8XOUz7WPALJ5UidsW7kdre7lY1OlY4RJREKGkHXHiYl27leuOm2aV0JfZSBCoAHix6d3.Bx3b31G5y5sVOKWeTy0QFWFuM0YaKVf6Aa55wHAq2tEZ0CGXEFRbPFFydONkFklCI94UKupkmkuMIaJD5ITWaxVt8cYYy1pwOw0yaSKGxtt8Untdil1T+0ndzH.UyhWDMvxdeqtjGXwIaFL59Vg8PF+Hrsyd0Vxotcs5j2eIRm5u2sqV61cpV6l2tdMqaUuNrF412xpFx3La33xnAsYVLRHxXtUoNG1tG8S7kGvSbCc2yivGTE0FNY4zaR8b3hHeVzZ8b8bZkntBQ.Sako7lUp7.ckqia57YJwKHVvLaGpJPiYzg2rZvqpJ7VTAdE.ICEHMmDRWD21Nvc.KaENddKbSevT1wBrSpPQRKZFiyiWiBT3yVnu09jMCfAo6nR8EW75lUu4hW6NkKW9F2vbC+tt9jxfYKjY9Tq.ys1bGvoIxyBjppl20T3RsPWBKc1JyqQy7.qx1dKp2gReMsMuQmNDaVk4UVVee2yitmkWJW4R.X.xwEgVSLpx7ibC57suv6+9V9NdRlIE3ErCHfEKd6tTeYTxDyVoLrVDi1oyQptJlXNCKqCuEr8HVAq34AGqOnu.bEVY9BITRPdSw0MG0gccSVPDA3TNFEBZ0zCCbzFPBXGNMrcdXDA9+ZW6Nlu9YN2w0OzkcHLXwEDdsfS6iapXJ12eO08yMBI9+bWFZ+ATeXPk4ySntEMc0GQBm.dvoRmA182CvdaH0mMYzLPipQff0ICX8l.LHoqHTrNIjcTXPPi9l2i4CKzz+ofch3LZFjit4iMKxXmPNqBM6PCLCnQLW+tk47NzixpJkafuZpAN2ehkWDoBvnTZERGPZNwcTDChvcUk9hoKAy.s4DBM54RizKorquGD+a1IxW3EaR8y6Gw0QATuJ1IJnqCZ.fQWq7upbohcs4QFqvfXk8hXjJ0R1vcJ+L3rmTu23vK9Yulkm2dvUsUFI5hEJvscbRD2qdrhiR96uLxfL54HD.EvDi9DiUAhPNq4XEh7dBhUtS77UFqDLjmewxPwnI4NWoaeABgVTwQKBoQSSg.jK+SwvuHbDaBDAgiyERFkdzfOI7dJv9PI9NBGHMnjh+P1H07hDGSBzEIalZsdbF2woyUQPLhaCr2rZb5nzTp4EgXPvwnnHh1Re73aOE4zJ41wrhh.bWypWyLKQWIXqYjj3akPDbmsYUf.NQkNQqg3jf+pkQj48AJkSlCSF1mbVIiEG2yJC+6Yx7.qwMTBZ.6aJDGxzVn8janUrc23Fhg.JCKW5MPUXbIPI74ATFYGeIpf0LyuTmNEtVriNfxBWl2bYv31XE+n96QBTCP4DBMPo2UFdzcko1znsL1UgPpeSeW1NCH9ipURTb.OuoxXTAjxD8u81w8u01y0gDfbg1ztDN+8yHA1S6g9+9GZfl.97NXsqI0XRikV5EKODStPLSfrR6QWkdPLazR0mCKnWMgr47XkrWS.SJPftHNWZaM177u3e+xQylUiXLpeLaxc0adz.+73lqawr3sbGa6hiIb4tJFqSdpqMQ1.dILHQ6ynCDF23r4HiyMMl2CxN6Gz3vrA+fFLxA.yNKVRIpOjCj2c+lAjeYDw29PTXTmNtv9wXy6+on9tNP7bKJDGBAAoLZvuqQe0Gwodi9VYm4m8hFgLxf1teplEwgzwJxSVuqJsHEorzD67kcbOe+hDQLFHaT3GcAE7KbcUwOxrQAXMwCOEqmcJ7wOPEfJncWohCaLCLHw1H2DxkQ5GxMNPRypkgeUC8ItNrdY69m0XRwidvRFZd4foDMmK1yoLW6NV3TZJB6x.TiOVAPO+gwFyuEVPXr656he.MnukG3e4zh.fymY0kj54NK9GNR6NBo429p+hJhwSQDth6WGUU3GFi3x3DZQngejsKfydrGk27i+xnYuNj1CskdanZD0qsGBbRg3EwsbY18JFiyT.FgDdmDXL94SOOV9DeY.bN7l+zSl2JU83Oq73+d3Q8vcBr78G4xUGy6g+2lz2CevD+d34qLYtIqxji34rm6T2yYOodwe6XCiY5ZguAi0zdz8KJgIlmiWfs2AqUh7QiqUcGP8rB3qmcItx5bGjlY9WM97Fef0SIcfDnwkajR4VjtvYpNytDH2X6C8sU8Ea2mRY8f1A0c6tbisnzAa3aAJAGUlzpmUHuXbni.M1.rcW51Vg7xV7n16qtXyt9z.hr.e04WKJjQ6mH.hOtSanRCQoUF+B7spu.7SmeL+2u+ZvuVZmWOimlrXUGu0elI1Ik28apIm6qdJ7BAIJSc7Nkhxwds0rey9ZqGIe6F4mZBxz7fn9xJ5fSG5O2KLodu3wKxGKBPI9NhA+O3m3EqxGaDuX0jEQRlqzfSbe+Pga6ZEzkvZBB0UwE2qOZaQQckNyLIYFDvqouC4fDrnYhX+lqN2S9i+ykWI5fXhxJmSLWAlyzhw.cqpE4JRKxag44TDeFMg836fSxwXdOBbg8v4hOwuzdGaF.gcCr7CGPCgVHTycR56tKTzZn1r41QsB2g1rqSXQ95rVNkFUbUwlfpPgty1HYxZpS1xxWiYvXMNssqhw5kKKurnMAjbmcBsAECWOqc2QjWH4C3cYTUciYSWSc56aE3j+1JiYOIp84Less1muBaxPqvmRIXrsa+AdjMf3SOJLCGiWB51Sz9cxr5gdaS8oC5Q8c0LzOh.4f51kn4+Tn.sBiYoVtwka7HhGAJRQsG8sf5zsBhSMcbzEUm5+xKJzdcUrDtl77Ele8s4vuYeKaQt1WBy+tkRGU4MeBPbdrxmybLWofPCWN+m8hFOT80nzcOuZiGFY4kogMuxU9G+031C9xp8OBu44lPWj2EqUp3oibPWDKqeIEuwAdinbkWSoh93O+K96KK6mgWcDzIySx+l7inSqlMxeo1w1vIOyGY42kvcGZ5OHhIGYblw+.upETM7i8hP6RNf+AfDDEn+ByC+1byJ5L822.sSDaTH.gzdhVtBc7H3wgD3h2jiYkveNIfxoc3i+e8a+S+me8G9mWdxSzwCUOcmL96hii7EMmc5FquM9gmtAHuDtCNcCwqfgJnqYJtA17qlqfeSzo4ahynukc.8irke2O9cFmULCH29h+hhKA2W.iMK3y7A4Vb+HaacVMzFqcb23RG2MV+3twadb23sNta71G2M9dG8F4MhsBbedeYrAzPZqMjucnQ5CWZLK5+ajKUcE
I'm trying to avoid using the ModulationMatrix and ModulationMatrixController floating tiles to fit with my UI aesthetic.
Any thoughts @Christoph-Hart, @griffinboy?
Thanks
P
Been chatting to current and ex NI employee mates about the state of them for years. Since the CI and the racist marketing scandal its been a bit toxic. A few years ago a mate working for them on the stand at Superbooth here in Berlin said the CEO was fired after not making enough shareholder dividends. Think he only been there for a short time. The CI thing kinda fucked it. Has been a sinking ship for a few years. Same thing kinda happened to Digidesign / Avid years ago. At least Yamaha didnt screw Steinberg that badly. Ableton had loads of problems recently. There was a corporate restructure of the entire business due to liquidity issues post pandemic. A lot of the senior team at Ableton fled shortly after, many to L'Acosutics. Mind you Dirk Ulrich from Plug-in Alliance and Brainworkz seems to do well out of the NI CI thing. He recently brought Manley Labs. However clunky Kontakt is / was the engine was still well engineered. Timur Doumler played a large pat in that I believe, then he left to join the JUCE team at ROLI.
DE insolvency law is complicated. One of the DE audio colleges I freelanced at for years went down two years ago. If there is asset sell off its controlled by the government appointment lawyers. The NI board dont get much say. I guess the 3rd party lib devs will pull their IP out. Absynth 6 is fairly new so I guess as it was a dev partnership with Brian Clevinger may he can salvage his IP.
Not good news for audio industry the week of NAMM but I guess we might expect an upsurge in devs flipping to HISE.
P
Hiya All
Anyone had any luck getting the new mod matrix system working with multiple global modulation containers? i.e. ModulationMatrix tile, Engine.createModulationMatrix etc
Christoph mentioned in this thread the system was not really design with this in mind:
https://forum.hise.audio/topic/14031/remove-global-modulators-from-mod-matrix-list
More than one global modulation container does not work for me, even when scripting without the tile.
Would be awesome to split up the mod sources when working with large systems.
Thanks
P
Thanks everyone for your input and advice. Embedding the RNBO DLLs into Scriptnode and recompiling using the ExternalModulation param worked a treat. P1 P2 mods working for Hardcoded FX and Hardcoded Poly FX.
Considering binning my HISE script mod matrix that took a year to build for the ScriptModulationMatrix as it has proper bipolar etc.

@Christoph-Hart we still need those Berlin beers!
Phe
@Goodflow Ok. Thanks. I take it you are referring to the ScriptModulationMatrix? I built my own in HISE script and dont use any Scriptnode. All the DSP is from RNBO DLLs.
Hope there's a way to get P1 P2 etc working in both Hardcoded and Hardcoded Polys FXs withour rolling back. 3.6.2 doesn't play well compiling with silicon on my newer system.
p
Ok. I am def not going nuts. Here is a screen grab of a project running a Hardcoded Master FX DLL compiled from a RNBO patch on HISE 3.6.2 on an old system.

The Global Modulator signal is passed through to P1.
Any pre-processor changes needed in 4.1 to get these working?
P
Hey peeps
I am not sure if I am going nuts so please help me out.
Just upgraded to v4.1 off the dev branch and and all the P1 P2 Modulation slots inside HardcodedMasterFX and Hardcoded Poly FX stopped working. Mods from Global Modulators and built ins like the time variant LFO dont seem to modulate inside HISE.
I have NUM_HARDCODED_FX_MODS=2 & NUM_HARDCODED_POLY_FX_MODS=2 in the pre processors of the build of HISE and inside the project settings.
Enable Sound Generators FX is active inside Project Settings.


Here's a simple project as a zip which contains a basic stock RNBO filter compiled as a DLL (32mb). You may need to recompile the DLL from the RNBO src folder inside third party. The P1 slots associated to cutoff does not seem to get any modulation signal from a Global Modulation LFO.
Any thoughts? I have a few fairly massive projects that use a ton of P1 P2 mods from loads of custom RNBO stuff so I am kinda stuck!!
The P1 P2 slots are greyed out inside all of my projects.
I'm using a load of mono and ploy RNBO patches that have been compiled into DLLs and all mods are dead.
@Christoph-Hart Am I nuts?
Thanks for any insight.
Phelan
@ulrik ;Ive got the same problem but it only seems to happen with one specific RNBO.h file. Anyone now how to trace the compiler errors i.e. change the [-ferror-limit=] ??
P
I'll just leave these here:
https://intro2ddsp.github.io/intro.html
https://github.com/aisynth/diffmoog
https://archives.ismir.net/ismir2021/paper/000053.pdf
https://csteinmetz1.github.io/tcn-audio-effects/
I'm convinced Parameter Inference and TCNs will be the future of audio plug-ins. CNN's will take over circuit modelling as the next fad. Training NN so we can map weights to params to make any sound source will take over. Just have a look at Synth Plant 2.
Having access to trained models from PyTorch in HISE would be awesome. A few VSTs devs are using ONNX Runtime in the cloud to store the weights and the VST calls back to perform the inferences.
P
Hiya
I am trying to import an RNBO patch and I am using a RNBO buffer to access HISE's complex data slots i.e. via a SliderPack.
No matter how large the buffer is in RNBO (i.e. 16 / 32 /64 etc) the max size of the sliderpack (embedded or external) is 16.


Any one explored this and got advice? I'm trying to get a slider pack of 64 for an additive oscillator.
@Christoph-Hart is the max buffer size in the RNBO import fixed at 16? Or am I a numpty?
Thanks all
Phelan
@aaronventure thank you.
Some good advice there. After some tests the timers run successfully in a compiled plug if the script processor timer is triggered on by a note on. I guess the noteOn() callbacks work more systematically than the onInit() callback.
You post was much appreciated.
P