@Christoph-Hart not that I'm aware of, I didn't even know this macro 
I checked and it's 8 as it should...
Posts
-
RE: Unnecessary noise when saving presetsposted in General Questions
-
Unnecessary noise when saving presetsposted in General Questions
@Christoph-Hart I thought this has been dealt with a while ago?

-
RE: API browser drawing a blankposted in Bug Reports
@David-Healey yeah absolutely, for a couple of days or more…
-
RE: Builder InterfaceTypesposted in General Questions
Just a quick question without polluting the thread to much.
Is this what I need if:
- I want to create predefined modules only in "dev mode" (meaning I can use a macro processor during development and disable it before export)
- I want to add scripts to those modules (they would be scriptFX that are using their
processcallback) - add/remove corresponding buttons on the interface
The rationale behind this is to dynamically create a set of tools (modules + scripts + components) that are helping me during development then throw everything away before export with a simple macro (or uncommenting an included file which is about the same)
-
RE: z-ordering issue when using drawModulationDragger/drawModulationDragBackgroundposted in Bug Reports
@Christoph-Hart awesome! I was in the same situation so

-
RE: Agentic coding workflowsposted in AI discussion
@Bart Recompile On File Change does work here on mac, the other things I don’t know…
-
RE: Preset browser not fully functional in exported pluginposted in Bug Reports
Ok it's no bug... I have
READ_ONLY_FACTORY_PRESETS=1and I assumed, naively, that I could prepare aUserfolder in advance. But since it's shipped with the binary it is treated as factory... Shame...
So in plugin, if I create a new Folder in the first column as a user would do, it's working...
-
RE: Preset browser not fully functional in exported pluginposted in Bug Reports
And it's definitely not my
drawDialogButtonLAF function because even commented out I get the same result... -
RE: Does anyone offer compilation service for plugins on PC/MACposted in General Questions
@Morphoice GPT's answer: "the ultimate weapon against Defender is compliance. Not very rebellious, but highly compatible."
Arfff... those robots will never have the balls...
-
RE: Preset browser not fully functional in exported pluginposted in Bug Reports
@David-Healey oh sorry... well I tested today's one and 2 months ago...
macOS 26.4 -
Preset browser not fully functional in exported pluginposted in Bug Reports
So all is good in Hise, but in exported plugin:
- the additional buttons at the bottom are not showing
- the SAVE button doesn't react (it does not even illuminate with mouse over like the mouse event is not received...)
EXPORTED PLUGIN:

HISE:

Preset Browser data:
{ "ShowSaveButton": true, "ShowExpansionsAsColumn": false, "ShowFolderButton": true, "ShowNotes": false, "ShowEditButtons": true, "EditButtonOffset": 0, "ShowAddButton": true, "ShowRenameButton": true, "ShowDeleteButton": true, "ShowSearchBar": false, "FavoriteIconOffset": 0, "ShowFavoriteIcon": true, "FullPathFavorites": true, "ButtonsInsideBorder": false, "NumColumns": 3, "ColumnWidthRatio": [ 0.3, 0.3, 0.4 ], "ListAreaOffset": [ 0, 0, 0, 0 ], "ColumnRowPadding": [ 0, -5, 0, -5 ], "SearchBarBounds": [], "MoreButtonBounds": [ 750, 10, 40, 22 ], "SaveButtonBounds": [ 635, 10, 22, 22 ], "FavoriteButtonBounds": [ 487, 5, 32, 32 ] } -
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Christoph-Hart here you go (all the fixes my pet and I tried until today haven't worked so my hacky solution... Using a processingSpecs BC works too, because the root problem as I understand it is the samplerate not being set before the module are constructed/connected)
HISE bug: extra_mod runtime targets broken in exported plugins
Setup
NUM_HARDCODED_FX_MODS > 0, hardcoded FX modules with networks containingcore::extra_modnodes driven by Matrix Modulators in the FX's modulator chains.
Works in HISE backend, broken in exported plugin (compiled DLL and interpreted both).Symptoms
Network parameters don't respond to UI changes or preset recalls.
Matrix modulator'sValueupdates correctly but its output never reaches theextra_modnode.Root cause
Order-of-operations bug between project-state restore and
prepareToPlay:-
Host loads project state →
restoreHardcodedData→setEffect(name)→connectToRuntimeTargets(*newNode, true). -
ExtraModulatorRuntimeTargetSource::addConnection(ModulatorChain.cpp:2155) builds a SignalSource withsampleRate_cr/numSamples_crfromgetSampleRate()— which is0because the host hasn't calledprepareToPlayyet. -
target->onValue(signal)stores that zero-rate signal in everyextra_modnode. -
When
prepareToPlayfinally runs,extra_mod::prepare()reads the stored signal,checkSignalRatio()sees rate0, and the node ends up in a non-functional state — modulation values never reach the parameters.
In the HISE backend the engine is already prepared when networks are loaded, so step 2 captures a valid rate.
The early-return in
HardcodedSwappableEffect::setEffect(if (factoryId == currentEffect) return true;) makes the broken signal sticky — no later preset load triggers a reconnect.Confirmed workaround
After init delay (so
prepareToPlayhas run), force-reload each FX:fxSlot.setEffect(""); fxSlot.setEffect(originalDLLName);This forces a full disconnect + recreate with a valid sample rate.
Related
Same class of bug as the recent
GlobalModulator::prepareToPlayreorder fix ("Fix SmoothedValue assertion when sample rate is uninitialised"), but on a different code path (setEffect→connectToRuntimeTargets, notprepareToPlay).Suggested fix
In
HardcodedSwappableEffect::setEffect, skipconnectToRuntimeTargets(*newNode, true)whengetSampleRate() <= 0, and call it instead fromprepareToPlayonce the rate is valid. The scriptnode FX (JavascriptMasterEffect/JavascriptPolyphonicEffect) andHardcodedSynthesiservariants need the same treatment. -
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann By force the DLL I mean
setEffect("")thensetEffect("myFxDLL")to force a refresh at initconst var DLLNames = ["Tube_ClassA_DspNetwork", "Noise_DspNetwork", "EQ_DspNetwork", "Exciter_DspNetwork", "Tube_ClassB_DspNetwork", "Transformer_DspNetwork"]; const var HCModuleNames = ["Tube Input HCFX", "Noise HCFX", "EQ HCFX", "Exciter HCFX", "Tube Output HCFX", "Transformer HCFX"] const var HCModules = []; for (name in HCModuleNames) HCModules.push(Synth.getSlotFX(name)); const var initTimer = Engine.createTimerObject(); initTimer.setTimerCallback(forceReloadHardcodedDLL); inline function forceReloadHardcodedDLL() { this.stopTimer(); for (fxSlot in HCModules) { fxSlot.setEffect(""); fxSlot.setEffect(DLLNames[HCModules.indexOf(fxSlot)]); } } initTimer.startTimer(500);The way the effect are built doesn't matter (I have a mix of networks, C++ and Faust as well...)
Now I narrowed it down, the main difference is that I am usingmatrixTargetIdfor full matrix mod control of the parameters. This is where the connection breaks after init.
I tried with Claude different patches but nothing does better than this "force refresh timer" thingy@Christoph-Hart Is this production safe enough?
There might be a broadcaster that fires after init, that would be a better pal for the situation I think... -
RE: ScriptNode - DC. Offsetposted in General Questions
@Jeetender Hmmm... I'm might be wrong but I'm not so sure about this. You can surely set a parameter to any value below 20Hz, but I'm not sure the filter is capable of reaching this value. To me it's capped to 20Hz-20kHz no matter the range of your parameters.
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann Thanks a lot for the detailed explanation!
This confirms what I see, so the main difference is that you load your hardcoded DLLs dynamically.
I doubt the setAttribute is the origin of the problem because when I force the DLL it then works.
I need sample accuracy so the targetId is what I want.Now, when you say "I load the HardcodedFX dynamically via script", do you mean once at init or on preset load CB? (or other behaviour to swap them on the fly)
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann @Christoph-Hart Alright I got something!
When setting the hardcoded DLL to "" then back to the original one, the connection is made.
So why it's not connecting at init I don't know...@Oli-Ullmann Do you set your networks/DLL from script or are they just set in the module tree like I do?
Perhaps I should also add those module states to the presets?
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann Mmmm... I have them all already...
Do you mean you actually have an FX plugin working with the matrix modulation system? (extra_mod nodes, UI matrixTargetId, etc...)
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann So in the end it's not this. I have it noted in my project check list like so:
/* In the case the modulation is deleted when loading a DAW project, do this: Engine.addModuleStateToUserPreset("Global Modulator Container"); https://forum.hise.audio/topic/14137/modulation-is-deleted-when-loading-a-daw-project/5 */Thanks anyway!
-
RE: Matrix modulation connection is broken in exported pluginposted in Bug Reports
@Oli-Ullmann I have seen this! Testing...
@Christoph-Hart Yes