<?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[suck notes with keyassigner script in silent synth]]></title><description><![CDATA[<p dir="auto">Ahoi,</p>
<p dir="auto">i'm having trouble with my keyassigner for a silentsynth that uses faust scriptnodes for VCO, VCF and VCA... it works just fine, but sometimes notes randomly (presumably) get stuck on sustain and need an extra pedal press/release to stop.... it took me about a year to get this far, and neither AI nor me can figure out what could be wrong... anyone any ideas?</p>
<pre><code>const globalRouting = Engine.getGlobalRoutingManager();
reg keysdown = [];
reg midiList = Engine.createMidiList();

reg i = 0;

global ControlValue 	= {};

// Get VCO/VCS effects once at initialization
const VCO1 = Synth.getEffect("VCO1");
const VCO2 = Synth.getEffect("VCO2");
const VCS1 = Synth.getEffect("VCS1");
const VCS2 = Synth.getEffect("VCS2");


//	set eventdata to the scriptnode fx
inline function setPolyAfterTouch(eventId, slotIndex, value)
{
	globalRouting.setEventData(eventId, slotIndex, value);
}
function onNoteOn()
{

	local n = Message.getNoteNumber();
	midiList.setValue(n, Message.makeArtificial());
	keysdown.push(n);

	//Message.ignoreEvent(true);
	//Event.noteIds[n][0] = Synth.playNote(n, Message.getVelocity());


}
 function onNoteOff()
{
	local n = Message.getNoteNumber();
	Synth.noteOffByEventId(midiList.getValue(n));
	keysdown.remove(n);

	/*
	Message.ignoreEvent(true);
	for (i in Event.noteIds[Message.getNoteNumber()])
	{
		Synth.noteOffByEventId(i);
	}
	*/

}function onController()
{
	if (Message.isPolyAftertouch())
	{
		local nn = Message.getPolyAfterTouchNoteNumber();
		local value = Message.getPolyAfterTouchPressureValue();
		setPolyAfterTouch(midiList.getValue(nn), 0, value * (1/127));
		Console.print("EventID "+midiList.getValue(nn)+", Value "+value);
	}

	if (Message.getControllerNumber() == 128)
	{
		local pitchValue = Message.getControllerValue(); // 0-16383, center at 8192
		local cents = (pitchValue - 8192) / 8192.0 * 200.0; // Convert
		Console.print("Pitch "+cents);

		// Apply pitchbend to all oscillators
		VCO1.setAttribute(15, cents);
		VCO2.setAttribute(15, cents);
		VCS1.setAttribute(9, cents);
		VCS2.setAttribute(9, cents);
	}
}
 function onTimer()
{
	
}
 function onControl(number, value)
{
	
}
 
</code></pre>
]]></description><link>https://forum.hise.audio/topic/14746/suck-notes-with-keyassigner-script-in-silent-synth</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 18:47:51 GMT</lastBuildDate><atom:link href="https://forum.hise.audio/topic/14746.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 May 2026 14:37:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 17:26:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> i think i isolated the problem and filed an issue, it's in fact three problems<br />
<a href="https://github.com/christophhart/HISE/issues/954" rel="nofollow ugc">https://github.com/christophhart/HISE/issues/954</a></p>
]]></description><link>https://forum.hise.audio/post/120341</link><guid isPermaLink="true">https://forum.hise.audio/post/120341</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 17:26:31 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 17:23:53 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> there is no waveform generator in a silent synth</p>
]]></description><link>https://forum.hise.audio/post/120340</link><guid isPermaLink="true">https://forum.hise.audio/post/120340</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 17:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 17:09:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Does this happen if you swap your faust synth for a waveform gen, keeping everything else the same?</p>
]]></description><link>https://forum.hise.audio/post/120339</link><guid isPermaLink="true">https://forum.hise.audio/post/120339</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 17:09:23 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 17:06:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> there's also another bug in the hise/faust midi implementation.... if a key is held and the pedal released, the note stops. although the key is still held.... weird.</p>
]]></description><link>https://forum.hise.audio/post/120338</link><guid isPermaLink="true">https://forum.hise.audio/post/120338</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 17:06:40 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:48:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> i believe it was this thread<br />
<a href="https://forum.hise.audio/topic/11793/polyphonic-aftertouch/34?_=1778856642370">https://forum.hise.audio/topic/11793/polyphonic-aftertouch/34?_=1778856642370</a></p>
]]></description><link>https://forum.hise.audio/post/120337</link><guid isPermaLink="true">https://forum.hise.audio/post/120337</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:46:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> nope, we had this discussion here a long time ago and this was the only working way</p>
]]></description><link>https://forum.hise.audio/post/120335</link><guid isPermaLink="true">https://forum.hise.audio/post/120335</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:46:37 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:46:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Does that need to be scripted? Isn't there a way directly in scriptnode to get those values and forward them to the faust node?</p>
]]></description><link>https://forum.hise.audio/post/120334</link><guid isPermaLink="true">https://forum.hise.audio/post/120334</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 16:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:45:04 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> handle polyphonic aftertouch and pitchbend by sending their values to a knob in the faust (not present in the snippet example)</p>
]]></description><link>https://forum.hise.audio/post/120333</link><guid isPermaLink="true">https://forum.hise.audio/post/120333</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:42:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Tell me what the key assigners role is.</p>
]]></description><link>https://forum.hise.audio/post/120332</link><guid isPermaLink="true">https://forum.hise.audio/post/120332</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 16:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:38:29 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> oh yes, the pleasures of building with faust and ending up without faust .... ;)))</p>
<p dir="auto">im very strongly convinced the issues is within how hise implements faust as explained in the post before, not the faust dsp itself. then again that would only explains the issue that notes are not sustained even though the pedal is pressed...</p>
<p dir="auto">the other problems are the orphan notes that might still be a problem of the keyassigner... some never get released when the pedal is released.... could be some sort of orphans from a tretrigger of the same note...</p>
<p dir="auto">my forte is coding dsp, all that stuff around that makes the world tick -- no clue</p>
]]></description><link>https://forum.hise.audio/post/120331</link><guid isPermaLink="true">https://forum.hise.audio/post/120331</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:27:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Oh hang on, my current build doesn't include FAUST <img src="https://forum.hise.audio/assets/plugins/nodebb-plugin-emoji/emoji/android/1f926.png?v=fba14f4754a" class="not-responsive emoji emoji-android emoji--face_palm" style="height:23px;width:auto;vertical-align:middle" title=":face_palm:" alt="🤦" /> I can't rebuild at the moment because I'm in the middle of something, but I think you've nailed down that it's a faust side issue.</p>
]]></description><link>https://forum.hise.audio/post/120330</link><guid isPermaLink="true">https://forum.hise.audio/post/120330</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 16:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:26:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> dead code</p>
<p dir="auto">is there a faust node in the polyphonic scriptfx?</p>
<p dir="auto">toes it have a dsp code?</p>
<p dir="auto">if not put this</p>
<pre><code>// Faust Source File: Test
// Created with HISE on 2026-05-15
import("stdfaust.lib");

gate = button("[20]gate");							// note on off
freq = hslider("[21]freq", 200, 20, 20000, 0.1);	// note frequeny
gain = hslider("[22]gain", 0.0, 0.0, 1.0, 0.01);	// note velocity

attack 			= hslider("AttackTime[style:knob]",0.2,0,6,0.001);
attackSlope 	= hslider("AttackSlope[style:knob]",0.7,0,1,0.001);
decay 			= hslider("DecayTime[style:knob]",0.3,0,6,0.001);
decaySlope 		= hslider("DecaySlope[style:knob]",0.3,0,1,0.001);
sustain 		= vslider("SustainLevel[style:knob]",0.5,0,1,0.001);
release 		= vslider("ReleaseTime[style:knob]",1,0,6,0.001);
releaseSlope 	= vslider("ReleaseSlope[style:knob]",0.3,0,1,0.001);
velDepth 		= vslider("velDepth[style:knob]",1,0,1,0.001);
legato 			= vslider("Legato[style:knob]",0,0,1,0.001);

ramp   			= en.adsr(0, release * 0.15, 0, 0, 1 - gate);
dramp   		= en.adsr(attack, decay * 0.1, 1,0, gate);
rslope			= releaseSlope - ramp * 0.25;
dslope			= decaySlope - dramp * 0.20;

velocity 		= 1*(1-velDepth*((1-gain))); 

envelope 		= en.adsr_bias(attack, decay, sustain, release, attackSlope, dslope, rslope, legato, gate) 
				: hbargraph("CV",0,1);


osc = os.polyblep_triangle(freq) * envelope;

process = osc,osc;

</code></pre>
]]></description><link>https://forum.hise.audio/post/120329</link><guid isPermaLink="true">https://forum.hise.audio/post/120329</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:17:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> If it's on the faust side I won't be much help.</p>
<p dir="auto">I'm not hearing any audio with your snippet.</p>
<p dir="auto">On the script side this looks weird. What's the intention?</p>
<pre><code>global Event 			= {};

Event.noteIds 			= []; 
Event.noteIds.reserve(128);

for (i = 0; i&lt;128; i++)
{
	Event.noteIds[i] = [];
	Event.noteIds[i].reserve(32);
}
</code></pre>
]]></description><link>https://forum.hise.audio/post/120328</link><guid isPermaLink="true">https://forum.hise.audio/post/120328</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 16:17:05 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 16:02:22 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> my guess is on something along the path from hise to faust or faust itself<br />
so i pointed claude to it which revealed the following, which might be the cause and is beyond my reach</p>
<p dir="auto">FaustUI.h:201 — each Faust voice has its own MidiZones struct containing a sustain flag:</p>
<pre><code>
struct MidiZones {
    float* zones[(int)HardcodedMidiZones::numHardcodedMidiZones];
    bool sustain = false;     // &lt;-- per-voice, defaults to false
};
</code></pre>
<p dir="auto">PolyData&lt;MidiZones, NumVoices&gt; midiZones;<br />
FaustUI.h:357-365 — the reset() method only zeros the pointer array, never resets sustain:</p>
<pre><code>void reset() {
    // ... clears modoutputs, parameters
    for (auto&amp; mz : midiZones)
        mz.reset();   // ← only memsets zones[] to 0
    anyMidiZonesActive = false;
}
</code></pre>
<p dir="auto">The struct's mz.reset() is:</p>
<pre><code>
void reset() {
    memset(zones, 0, sizeof(float*) * ...);   // does not touch sustain
}
</code></pre>
<p dir="auto">FaustUI.h:330-338 — note-off behavior:</p>
<pre><code>
else if(e.isNoteOff()) {
    auto&amp; mz = midiZones.get();
    if(!mz.sustain)              // ← only releases if THIS voice's sustain flag is false
        if (auto gatePtr = mz.zones[(int)HardcodedMidiZones::Gate])
            *gatePtr = 0.0f;
}
</code></pre>
<p dir="auto">The mechanism: mz.sustain is set ONLY by the CC 64 handler (FaustUI.h:339-356) — never on voice start, never on reset. So a voice that was allocated AFTER the pedal CC came in, OR whose voice slot has never received a CC 64 during its lifetime, has mz.sustain == false — its gate gets dropped to 0 on note-off regardless of what the JUCE voice manager thinks about the pedal.</p>
<p dir="auto">This is independent of JUCE's voice-level sustain handling. The HISE voice manager keeps the voice ALIVE (because JUCE's sustainPedalDown is true), but the Faust envelope's gate has already gone to 0 — so the voice produces silence (release tail) and gets killed by silent_killer.</p>
]]></description><link>https://forum.hise.audio/post/120324</link><guid isPermaLink="true">https://forum.hise.audio/post/120324</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 16:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 15:43:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> if the snippet correctly carries the faust code this should be a minimal example displaying the problem</p>
<pre><code>HiseSnippet 3297.3oc6azzaabbcojVGSZYG6jf1dqCzIJYJJ9gjhcbcs9z1pwxR0TQH.FBtK2cH4TsblM6LTVLAFnWJPQ+ATfbp4uQtz1qEn2xe.idnmygdO88lY4xc4GxzpxIMoYAr3tuYdeNu4Mu2aWSOUQ4dTumI4rf.pxxJyz6GJboRoHzJStC5FPsxLqcstbUqMa4v3V6rE.29i3RkScep0FcCbjRpmUlLS+.b7LYmwRe802aCGeGtKsOHKqCELW5iXsYp9P2esOj46eeGO5Ar1Il8xqsiqfuovWzAjkosKYE33drSS5icvoMks0Ccjsrxrfc8k8JSotqVttW8FUpVYkRzpMVdYZUu5qznZ4aeKG5p0KUshUlKssGSIBqobTToUlY1P30sVKwy4FFbHSxPsBdnrUMfyFv2W36gpHB0ZyVLeuXijDLY1ILYSaLYum8tLOVL79ltqqGfzGijFvLSkV7lNk3UNo3UJg3MBQJSBQZFiHcC6Ztgr.U+QP44J16vUzvFNtoWKMy0Zp+8z141T.SgqJ114X58CgGhQI+pkJUfrboRyembZejhdzFzvMc78qCqUx7pvNz4uCIWtl9h5N9jsOAHDIa1r2k7Yu3N4xoetHWnn63IMve5Qv7SAuXHURCOglubkaALBuZHBI4Yj6RJcGB6W.vget4MmO2mkKaJTeJ6HhljCCOlpUq.D8E4htZzg6pXBNQveLL28340TEl.YvgZzXjiglqPguOMbjCiN4QirdGUKQHS5fCUzsE083snsEaeZ.KradTUytzRDegKX47omP8Ac4ILdys4v8h.ZwlT0lcBCAE6Q3vHJ8wPFPodQXTCuGm9gN9cn4mmrfgfl4iyXWgWGeGv4qnjpVWoBY06nn4gk2xy+JmU4BFtEIxfEPJ7oECBYbUdMivQdwvFo77NsqSCKPNAkKznPfqkVfPNnESRbibjH+1NRk9IIQ0hRBfn.jVNbOePl5abeNS0RONrzFPAXmXlZQMUAhBTkRDvLBIt.EEsi4fj3DRIr1A9z1f4DLbLtlTB9NblhH06GhHzR4xJAd41JR7mWC1H63kqijRhzP49f.rQGkRv+.iHSOvotLexggcH0CoNGemzTX6FM.kXbDHwniA+8QOb0XPu+fow9Ef6JDyHcfH6wGHJYbRWSfhDSzX81KfxGWzSqnnKvcezNa4nbvnWQvf4EPCULTDxrE8D3rCSrrr1aQkGqDA541NPvQJjIqRO5Uihz8Hm5TeKFDO6crqQCYN9Z8w.9z3CZt7eZstwO7x+3ZOm4oZEC328qWqEk0rUhCr9kqonmpzm.UuYuyml0d4J251qb6pkqth0IICTaMbrX3TfdajRdz.d.Zz.f6bp3wXHWtjo5l7.1KryKlTQ7F16it8iVFmZDxHrX9lPFiNk8p1lMA8EvYru+G+l4H0jr+xiIunqZ.PkrOkFNtTi9aeY1WNooFELwoFkY5+OIyloFkav5gAzlMYnyZzBQRHI8QGzNM8jEY6rhak4cihkCS0D.5ZQAfLgc0QftlsQJh.oOtK4pu0DPiqZ+DLl8qMIp4y7.+QjDus8i6ztlhFDAa.hTZsIgHWwFofVVNeRw00Dn1wrwHFe88lDyAPEQn5Cock+2XQ.kAyb4C4h5CRfWNrXb8HB.G5TWrg3z3SW9jNTX+bL3WMkFgnbU68bUNmPehCuI87oMYsq0pSiF9zWCIHgI8J1aywx5NfQOq0jYLD3cRw+8grnzD48.yQa1AvYxIFXPp8W8vi5y7T6UWtHb03l3eu8lvept2EyyVSt7dHjMsKbt02Oj22w9QTdSUqIVZab7FqWr3g+psJV7iE6ew7r0js03F1vADbN0uF0GNnVLIa0GIg9o160QEzQcAQtaXu69aCmAD1ifCscasIiPuMRns4digLmQ.0Da6tj8CgygGwN9IsJ9qYCgAIqKkrl7Ax7HtPdaaHkAnJJSk3OQzQg0NcWx17lLttTxGjbjcc3PsAgXIkgzlj1vY6OhAnGifKTyfhtaDbc0p4fpDe.UQNby8V5vMqQnlRTfZnboDGETRESAYgy9Tcti4zHjENEgPwZyQeVhRnq5xTtEW3QIMNMGiC04Q6WmGV3hvu65MTzvCDcf5vzDXGOnLTegZGtG8zDkTlMkJiUtp6E.VrwYfH1SfQ2LfbYMEXyAiwtvh.VgIX9vY7Xc8f55v6YwP9Yp5lWHd5XqTVGproAyELH4mGQPW5buI.KjhPpVNiZhBNZ5dXvO5okv1aX57RfuSWTDRxFrf+nXaZdj6rZiwjnTFVwMnsQ2sMVu7w5ZbGF3wpzB4xdVJUTmbfpsSqbiQFNZ9bYAYcbBBCI4KxkEJQeTsaHtmLrFj7wRkL1YRocllOhGQFjArHo87Fv9Dgi1C5rPCq9V1IjF0NFDygcpGgUkOeARoHOTxBj7kWpbk2WapyltoKyYrHaQl6lijL2btBD8CvD54uCFtzVFr8RwFtdZI4t2kfMhKoMJ.qJ7vgU59X2SQIPHhRKVd0p2pZAhK1okPLxvsJe6JwTCAKABkOAYWTOk4IKo+sXIP4qTpTwRZBBr4DXwaXiftZUPC0TT2bJrQVqGD320Hy0obOLliiuOQHcghsvJFjv7fXXkGnIWqXjXo1bCiW4rGu1.3e6AFtx3G9EiumgitYiC2GM8D+dTib9wtj7CztjbU6ZLezYBiXqY+r13lKywV+uTWRJeN6RxLeO98+7tQP6KQkGU5iY9GlVaggr.ApiuGZxeBEBd0DxRj5oy7ngiuDamr45ay2jxOFUb7QEm5GiJ9cbTwQsc7Z1X1dlsW.eQA3mnAEzRvYtjnskCHR81N9ysGk6dBOb6K71bZ8Xp54hvi05Sz8PPdTvuj8AToxZceewywWGCKZAVScMz9JVD+ogR8LdKaHIthkrLnQiJid81hN3KzwNyT.i66xrAjf3w0XeJEGB8Pdni7.GlO5AUqiD1G5sGWebCdpAtB9XnDRP.uuC1sft66fuYmafUBqfkcZXQ23k+Hknu0FMHlO0fngPZ06zDC6Aots9MOMkMLebbi0wvTjpukcCmN.toDfYAAHjVzLxnXXOrdUbLQDDSmwwmfsPSgrNq8l9.k2wy5PSiEhTCqAlmtmv66DBbFxFW1a11YzLLw.VYxE+Db+tL9gC1whccN8vA6HitWu50LMrWta88uWsioO2XRRNynV2qTNvpL9BtsNfdp5.gljQI4ir9J1eDTodCXAzyBeClZqQsN0ePnnSf9gjBwuoQi+081hBVTe0Pvsd80ne1ZudZzrQZjN4jKBE5K97O+uOJERC25M+RzrvwStNcu3VgVqZ0uZTJjF92BqPWwnPWXKPWz5yq6BzkseDsIb56EhxnuFgxD0gx23Jy0reB0m5Ho+vwe6p8ToKJOtu32+W9y+y6M5Eou9deqrHAG+hGop+Njtn76d4XToWdgnRFXiUktjMrEh9c9VnkWaHU4O7UC5uAQ9+xyTUZDR+jKJUgs1nUE1ZV0zeUTG3D1jpzYBkDPTkObpNsU4.4VXkJWlLCjixr16HODG00wum7.4FtgPbbaGcNomuxqheYGPgrmB47fucbHaK2dIhJ6kCZzyk5kGVMHUS8CeCbEMX4dIMgCVt2f+fgGscbCEOyM56VCLzWVCARCkqSZMq8t3yjxC+hrvVP+LW2zjZHDqbdQr54EwkOuHtx4EwUOuH99mWDu0qFQrkTq2QIZaJaChdt+15MSYxX9d.z0dZQaWm54Q8LEgh64hgvomdenrK8V2FLrvxoveLRx0MUyrDV8QQOYPuFoXM0WMi8RKQtONJw3uRPx7ADbp3aSbS8KYzy7kc9vcpsMTsKoRoJqtXoUVr7J4XsCDgp7yIUdZdTzmUeNrQ+XraxcI00uj07y8zJkNBAAik0bADGe6QH8DMZjCCPByukT+R0QDJeDBatB36Y.+i9F71REKCToG93j5P4cANx3ooPkiPXygXTJ5OkitKIENI5MzkKmitNAymAcLc5W7vSkptfw4Xtn9QyUnTwJEJUXU32RH4hPVmjDYX70vGj.uOPfxwDvCyAd.lGmW7fnVMEu8hqGfLL5ij0USwZoI4AMxmzC4jYTLH5qjB8PS1ToQOQJVowtbJQOLQxkjQf+DH8f7sEM.bPSw+dPGl48wzWmltwlGinI28AXYJzxAGaFPHF7n7hNdxP7K0tmcXAzGcE8aJD84HKRPeebcJFw93Y7aJPLK+ZTAb.90CoPIZBz7JkwZQhlZHFUVAnc+okvcXQhW+YUBD8dd6ZYn7B4KuXOC0B4gGvcLyOu9+x.znux8jR6ypybjoE4BjHumX8u.IwdAXVRyugQ+ZL5QpGIGFL3CHspC4nD5DzJ+badHZu014bBoKrmVHKB2jG2pie478DLXBAlVkomiaA3e2Imk0+A.ejyFa
</code></pre>
]]></description><link>https://forum.hise.audio/post/120323</link><guid isPermaLink="true">https://forum.hise.audio/post/120323</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 15:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 15:32:10 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> i thinned the project down and stripped all the effects, gui etc... which changed nothing but the waveform generator inside the synth container words fine and doesnt show the error. ... so it must be in the way either a silentsynth behaves or the faust implementation. faust just passes the midi to the parameters gate, gain, velocity, frequency etc... im not doing anything weird with it...</p>
]]></description><link>https://forum.hise.audio/post/120322</link><guid isPermaLink="true">https://forum.hise.audio/post/120322</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 15:32:10 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 15:03:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Without having something in front of me to play with it's all just guessing. The problem could be in the script you've shown, some other script, in the networks, or in HISE. Very difficult to say.</p>
<p dir="auto">Bypass all your scriptnode sound generates and use a waveform generator instead. If the problem still occurs then you've ruled out the issue being in scriptnode.</p>
]]></description><link>https://forum.hise.audio/post/120321</link><guid isPermaLink="true">https://forum.hise.audio/post/120321</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 15:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 15:01:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> it would take significant time to douplicate the project and strip it down to the essentials in question, also about everything that makes a noise is a hardcoded faust</p>
<p dir="auto">before i do that a closer observation:</p>
<p dir="auto">if i press the pedal and hit a note, it is not sustained, if i hit it again it is sustained. ntextr ty not sustained on the first hit, sustained on the third hit. pedal kept pressed between hits... does this help narrow it down?</p>
<p dir="auto">i am not sure but it might have to do with multiple instances of the same note... but just a hunch.</p>
]]></description><link>https://forum.hise.audio/post/120320</link><guid isPermaLink="true">https://forum.hise.audio/post/120320</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 15:01:37 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 14:56:08 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Ok cool, you don't need to declare iterator variables like <code>i</code>, HISE creates them in place behind the scenes automatically.</p>
<p dir="auto">Are you able to recreate the issue with a minimal example, preferably without the scriptnode elements and post it as a snippet?</p>
]]></description><link>https://forum.hise.audio/post/120319</link><guid isPermaLink="true">https://forum.hise.audio/post/120319</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 14:56:08 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 14:54:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/12">@David-Healey</a> yes, KeyAssigner.js as a separate ScriptProcessor in the SynthesizerContainer which holds two silent synths. its in the container tho, not the silentsynths.</p>
<p dir="auto">global ControlValue = {}; is dead code from an earlier iteration.</p>
<p dir="auto">keysdown is i believe also never used and from an earlier iteration, i should eremove those<br />
reg i is  leftover from the commented-out for (i in Event.noteIds...) block</p>
]]></description><link>https://forum.hise.audio/post/120317</link><guid isPermaLink="true">https://forum.hise.audio/post/120317</guid><dc:creator><![CDATA[Morphoice]]></dc:creator><pubDate>Fri, 15 May 2026 14:54:26 GMT</pubDate></item><item><title><![CDATA[Reply to suck notes with keyassigner script in silent synth on Fri, 15 May 2026 14:44:12 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> Is this part of a secondary MIDI processor (not your UI script)?</p>
<p dir="auto">Do you need to manually track which keys are held down? Doesn't <code>Synth.isKeyDown()</code> do the job?</p>
<p dir="auto">A few notes that probably won't solve the problem:</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> said in <a href="/post/120312">suck notes with keyassigner script in silent synth</a>:</p>
<blockquote>
<p dir="auto">global ControlValue 	= {};</p>
</blockquote>
<p dir="auto">Avoid globals - I haven't found a single instance where they are the best way to do something yet.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> said in <a href="/post/120312">suck notes with keyassigner script in silent synth</a>:</p>
<blockquote>
<p dir="auto">reg midiList = Engine.createMidiList();</p>
</blockquote>
<p dir="auto">keysdown could probably also be a MIDI list. Midi lists should be <code>const</code>.<br />
midilist isn't a good name for a variable because midilist is a data type. It's like calling an array array, it's confusing.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://forum.hise.audio/uid/3773">@Morphoice</a> said in <a href="/post/120312">suck notes with keyassigner script in silent synth</a>:</p>
<blockquote>
<p dir="auto">reg i = 0;</p>
</blockquote>
<p dir="auto">What's this guy for?</p>
]]></description><link>https://forum.hise.audio/post/120313</link><guid isPermaLink="true">https://forum.hise.audio/post/120313</guid><dc:creator><![CDATA[David Healey]]></dc:creator><pubDate>Fri, 15 May 2026 14:44:12 GMT</pubDate></item></channel></rss>