<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[# Bug report draft: compiled network passes audio UNFILTERED inside a HardcodedMasterFX (raw node works)]]></title><description><![CDATA[<p dir="auto">Hiya <a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/1">@Christoph-Hart</a></p>
<p dir="auto">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).</p>
<p dir="auto">I hope the below explains everything. Happy to drop a minimal script if needed.</p>
<p dir="auto">Thanks</p>
<p dir="auto">Phelan</p>
<p dir="auto">Adjacent to the resolved "HISE 4.1 Hardcoded Master &amp; Poly FX P1 P2 Modulation" thread (forum topic 13276).</p>
<hr />
<h2>Environment</h2>
<ul>
<li>HISE develop, version 4.9.2 (running commit 8606dea6), macOS, Apple Silicon.</li>
<li>A custom C++ SNEX filter node (ZDF filter, 6 params; param 0 = Cutoff/Frequency, 1 = Res/Resonance).</li>
</ul>
<h2>Context</h2>
<p dir="auto">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.</p>
<h2>What works</h2>
<ul>
<li>The RAW C++ node placed directly in the HardcodedMasterFX FILTERS audio correctly. (But its params can no longer be modulated by the P1/P2 slots, as expected after the breaking change - createExternalModulationInfo is not implemented on it.)</li>
<li>The SAME node wrapped in a compiled network and used POLYPHONICALLY in a HardcodedPolyphonicFX (per-voice) filters AND modulates correctly. This is my sampler filter and it is fine.</li>
</ul>
<h2>What doesn't (the bug)</h2>
<p dir="auto">To get P1/P2 modulation back on the MASTER (mono) filter, I wrapped the node in a compiled network:</p>
<ul>
<li><code>container.chain</code> -&gt; single C++ filter node</li>
<li><code>AllowCompilation="1"</code>, NO <code>AllowPolyphonic</code> (so it's monophonic for the master FX)</li>
<li>container params Cutoff/Res have <code>ExternalModulation="Combined"</code> connected to the node's Frequency/Resonance.</li>
</ul>
<p dir="auto">Result in the HardcodedMasterFX:</p>
<ul>
<li>P1/P2 modulation now works (the matrix/extra_mod drives Cutoff/Res).</li>
<li>Parameter changes reach the node (verified via scripting: getAttribute(0) returns the set cutoff, e.g. 2401 Hz).</li>
<li>The effect is NOT bypassed (isBypassed() == false).</li>
<li>BUT the audio passes through UNFILTERED at any cutoff/topology/response. The wrapped node never cooks its coefficients - it behaves as if prepare()/sampleRate never reached the inner node.</li>
</ul>
<p dir="auto">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.</p>
<h2>Questions</h2>
<ol>
<li>Should a monophonic compiled network prepare/process its inner node inside a HardcodedMasterFX? It currently passes audio through unprocessed (inner node not prepared) while the raw node prepares fine.</li>
<li>What is the recommended way to get a node to BOTH filter audio AND expose P1/P2 modulation inside a HardcodedMasterFX?</li>
<li>For C++ nodes specifically: what is the exact signature/usage of <code>createExternalModulationInfo</code> 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.</li>
</ol>
]]></description><link>https://forum.hise.audio/topic/14852/bug-report-draft-compiled-network-passes-audio-unfiltered-inside-a-hardcodedmasterfx-raw-node-works</link><generator>RSS for Node</generator><lastBuildDate>Mon, 15 Jun 2026 03:35:29 GMT</lastBuildDate><atom:link href="https://forum.hise.audio/topic/14852.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jun 2026 18:47:40 GMT</pubDate><ttl>60</ttl></channel></rss>