<?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[C++ External Node &amp; XML Issues]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/1">@Christoph-Hart</a></p>
<p dir="auto">Github issue: <a href="https://github.com/christophhart/HISE/issues/866" rel="nofollow ugc">https://github.com/christophhart/HISE/issues/866</a></p>
<p dir="auto">I've been getting a lot of these errors lately (maybe since the last 3-4 weeks?)</p>
<pre><code>XML file is not valid. Loading aborted
</code></pre>
<p dir="auto">Usual context is having a hardcoded FX module with a custom C++ node (or Scriptnode Networking containing a C++ node). If I remove the reference in a text editor (.xml), the project will load and I can add my node back in. But resaving and opening again will reproduce this issue. Mind you it isn't a matter of updating HISE or recompiling the FX, this happens on any build from this year.</p>
<p dir="auto"><img src="/assets/uploads/files/1770231203017-screenshot-2026-02-04-at-1.52.55-pm.png" alt="Screenshot 2026-02-04 at 1.52.55 PM.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.hise.audio/topic/14360/c-external-node-xml-issues</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 02:32:18 GMT</lastBuildDate><atom:link href="https://forum.hise.audio/topic/14360.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Feb 2026 19:00:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Fri, 06 Feb 2026 13:11:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/1">@Christoph-Hart</a> said in <a href="/post/117536">C++ External Node &amp; XML Issues</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3500">@Orvillain</a> I think the problem is that HISE converts Parameter IDs into actual attributes. This is only the case with hardcoded modules, script processors or DSP networks properly escape that in the value string.</p>
<pre><code class="language-xml">&lt;Processor Type="Hardcoded Master FX" ID="HardcodedMasterFX1" Bypassed="0"
           Network="No network" YourParameterGoesHere="0.5" TryValidating(That)="nope"&gt;
  &lt;EditorStates BodyShown="1" Visible="1" Solo="0"/&gt;
  &lt;ChildProcessors/&gt;
  &lt;RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/&gt;
&lt;/Processor&gt;
</code></pre>
<p dir="auto">I do a bit of sanitizing at some place though (eg. remove white space for the XML attribute, so all my ramblings might be moot because I sprinkled a character sanitation in there too.</p>
</blockquote>
<p dir="auto">ahhhhhhhhhhhhh, gotcha. Yes, then that does make sense that parenthesis would possibly break things... and now I'm going to do a sweep through my code to see how many landmines I've invented. <img src="https://forum.hise.audio/assets/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f606.png?v=fba14f4754a" class="not-responsive emoji emoji-emoji-one emoji--grinning_squinting_face" style="height:23px;width:auto;vertical-align:middle" title=":grinning_squinting_face:" alt="😆" /></p>
]]></description><link>https://forum.hise.audio/post/117537</link><guid isPermaLink="true">https://forum.hise.audio/post/117537</guid><dc:creator><![CDATA[Orvillain]]></dc:creator><pubDate>Fri, 06 Feb 2026 13:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Fri, 06 Feb 2026 13:09:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3500">@Orvillain</a> I think the problem is that HISE converts Parameter IDs into actual attributes. This is only the case with hardcoded modules, script processors or DSP networks properly escape that in the value string.</p>
<pre><code class="language-xml">&lt;Processor Type="Hardcoded Master FX" ID="HardcodedMasterFX1" Bypassed="0"
           Network="No network" YourParameterGoesHere="0.5" TryValidating(That)="nope"&gt;
  &lt;EditorStates BodyShown="1" Visible="1" Solo="0"/&gt;
  &lt;ChildProcessors/&gt;
  &lt;RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/&gt;
&lt;/Processor&gt;
</code></pre>
<p dir="auto">I do a bit of sanitizing at some place though (eg. remove white space for the XML attribute, so all my ramblings might be moot because I sprinkled a character sanitation in there too.</p>
]]></description><link>https://forum.hise.audio/post/117536</link><guid isPermaLink="true">https://forum.hise.audio/post/117536</guid><dc:creator><![CDATA[Christoph Hart]]></dc:creator><pubDate>Fri, 06 Feb 2026 13:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Fri, 06 Feb 2026 13:02:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3174">@HISEnberg</a> said in <a href="/post/117534">C++ External Node &amp; XML Issues</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3500">@Orvillain</a> Strange, I am inclined to agree with you since I've done this with other nodes, but removing them in this particular context seems to have solved the problem. Still I can't find the root issue here so I'll keep digging...</p>
</blockquote>
<p dir="auto">That is very odd. There's nothing in the XML specification that says you shouldn't use parenthesis in an attribute name, so far as I know. The only character to definitely be wary of in my experience is an ampersand.</p>
]]></description><link>https://forum.hise.audio/post/117535</link><guid isPermaLink="true">https://forum.hise.audio/post/117535</guid><dc:creator><![CDATA[Orvillain]]></dc:creator><pubDate>Fri, 06 Feb 2026 13:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Fri, 06 Feb 2026 12:50:27 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3500">@Orvillain</a> Strange, I am inclined to agree with you since I've done this with other nodes, but removing them in this particular context seems to have solved the problem. Still I can't find the root issue here so I'll keep digging...</p>
]]></description><link>https://forum.hise.audio/post/117534</link><guid isPermaLink="true">https://forum.hise.audio/post/117534</guid><dc:creator><![CDATA[HISEnberg]]></dc:creator><pubDate>Fri, 06 Feb 2026 12:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Thu, 05 Feb 2026 12:10:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/1">@Christoph-Hart</a> Wouldn't cause a corruption in XML. So far as I know, it is perfectly legal to do so. I've used parenthesis in parameter id's for ages and not had any errors in xml files like what <a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3174">@HISEnberg</a> is reporting.</p>
]]></description><link>https://forum.hise.audio/post/117489</link><guid isPermaLink="true">https://forum.hise.audio/post/117489</guid><dc:creator><![CDATA[Orvillain]]></dc:creator><pubDate>Thu, 05 Feb 2026 12:10:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Thu, 05 Feb 2026 00:39:28 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3174">@HISEnberg</a> I see a parenthesis in a parameter Id, I get instant rash on my forehead.</p>
]]></description><link>https://forum.hise.audio/post/117471</link><guid isPermaLink="true">https://forum.hise.audio/post/117471</guid><dc:creator><![CDATA[Christoph Hart]]></dc:creator><pubDate>Thu, 05 Feb 2026 00:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Wed, 04 Feb 2026 23:53:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/1">@Christoph-Hart</a> Hmm that seems reasonable. Do any of these raise any flags? I'll try changing the parameter name but I can't imagine this causing issues (it's from one of the C++ modules causing me troubles).</p>
<pre><code>        void createParameters(ParameterDataList&amp; data)
        {
            {
                parameter::data p("PreGain (dB)", { -24.0, 24.0, 0.1 });
                registerCallback&lt;0&gt;(p);
                p.setDefaultValue(0.0);
                data.add(std::move(p));
            }
            {
                parameter::data p("Hold (ms)", { 0.0, 100.0, 1.0 });
                registerCallback&lt;1&gt;(p);
                p.setDefaultValue(5.0);
                p.setSkewForCentre(30.0f);
                data.add(std::move(p));
            }
            {
                parameter::data p("Release (ms)", { 1.0, 2500.0, 1.0 });
                registerCallback&lt;2&gt;(p);
                p.setDefaultValue(80.0);
                p.setSkewForCentre(800.0f);
                data.add(std::move(p));
            }
            {
                parameter::data p("Ceiling (dB)", { -60.0, 0.0, 0.1 });
                registerCallback&lt;3&gt;(p);
                p.setDefaultValue(0.0);
                data.add(std::move(p));
            }
        }

</code></pre>
]]></description><link>https://forum.hise.audio/post/117470</link><guid isPermaLink="true">https://forum.hise.audio/post/117470</guid><dc:creator><![CDATA[HISEnberg]]></dc:creator><pubDate>Wed, 04 Feb 2026 23:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ External Node &amp; XML Issues on Wed, 04 Feb 2026 23:14:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3174">@HISEnberg</a> Probably an issue with your parameter names. Note that using eg. "Type" is illegal because it clashes with the XML element for the module type (HISE!).</p>
]]></description><link>https://forum.hise.audio/post/117469</link><guid isPermaLink="true">https://forum.hise.audio/post/117469</guid><dc:creator><![CDATA[Christoph Hart]]></dc:creator><pubDate>Wed, 04 Feb 2026 23:14:12 GMT</pubDate></item></channel></rss>