@David-Healey In Image Draw I have : g.drawImage(obj.text, a, 0, 0); and I just change this , for column index >= 0 .... obj.text, obj.area ( was a here) , "centred"
Posts
-
RE: PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItemposted in Scripting
-
RE: PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItemposted in Scripting
@filipalex96 I solve the problem with this : if (obj.columnIndex == -1)
{
g.setColour(Colours.withAlpha(Colours.white, obj.hover ? 1.0 : 0.5));
g.drawImage(obj.text, a, 0, 0);
}else if (obj.columnIndex >= 0)
{g.setFont("Default", obj.selected ? 15.0 : 14.0); g.drawAlignedText(obj.text, obj.area, "centred"); // TEXT var alpha = obj.selected ? 1.0 : (obj.hover ? 0.9 : 0.6); g.setColour(Colours.withAlpha(Colours.white, alpha)); g.setFont("Default", obj.selected ? 15.0 : 14.0); g.drawAlignedText(obj.text, obj.area, "centred");} Thank You for Help , have a nice day
-
RE: PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItemposted in Scripting
@David-Healey said in PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItem:
you need an else
// ICON column
if (obj.columnIndex == -1)
{
g.setColour(Colours.withAlpha(Colours.white, obj.hover ? 1.0 : 0.5));// draw only if obj.text matches a loaded image id if (lav.getImage(obj.text)) g.drawImage(obj.text, a, 0, 0); return; } else // TEXT columns { g.setColour(Colours.withAlpha(Colours.white, obj.selected ? 1.0 : (obj.hover ? 0.9 : 0.65))); g.setFont("Default", obj.selected ? 15.0 : 14.0); g.drawAlignedText(obj.text, a.reduced(8, 0), "left"); }});
same behavior
-
RE: PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItemposted in Scripting
@David-Healey Thanks for the clarification — that makes sense

I understand now that drawPresetBrowserListItem overrides drawing for all columns, so everything has to be drawn manually.I tried doing exactly that, but I still get the same behavior.
When I draw both the icon column and the text columns, the text becomes visible but the expansion icon disappears.This is the code I tried:
lav.registerFunction("drawPresetBrowserListItem", function(g, obj)
{
var a = obj.area;// Expansion icon column if (obj.columnIndex == -1) { g.setColour(Colours.withAlpha(Colours.white, obj.hover ? 1.0 : 0.5)); if (lav.getImage(obj.text)) g.drawImage(obj.text, a, 0, 0); return; } // Other columns (text) g.setColour(Colours.withAlpha(Colours.white, obj.selected ? 1.0 : (obj.hover ? 0.9 : 0.65))); g.setFont("Default", obj.selected ? 15.0 : 14.0); g.drawAlignedText(obj.text, a.reduced(8, 0), "left");});
The result is:
Text in the other columns shows correctly
The expansion icon still does not appear
The icons are loaded like this:
inline function loadExpansionImagesIntoLaf(obj)
{
local expHandler = Engine.createExpansionHandler();for (e in expHandler.getExpansionList()) { local img = e.getWildcardReference("Icon.png"); if (isDefined(img)) obj.loadImage(img, e.getProperties().Name); }}
Am I misunderstanding what obj.text contains in the icon column?
Is there a specific property in obj that should be used to identify the expansion / library for the current row, instead of obj.text?Thanks a lot for your help!
-
PresetBrowser Expansion Icons work, but text in other columns disappears when using drawPresetBrowserListItemposted in Scripting
Hi everyone,
I’m working on a custom PresetBrowser UI in HISE and I’m a bit stuck.
I feel like I’m going in circles, so I’d really appreciate some guidance from someone who knows the internals better.What I’m doing
I enabled Expansions and I load an Icon.png from each expansion into a custom LookAndFeel.
The icon drawing itself works perfectly when I only draw the icon column.Here is the exact code I’m using right now:
inline function loadExpansionImagesIntoLaf(obj)
{
local expHandler = Engine.createExpansionHandler();for (e in expHandler.getExpansionList()) { local img = e.getWildcardReference("Icon.png"); if (isDefined(img)) { obj.loadImage(img, e.getProperties().Name); } }}
lav.registerFunction("drawPresetBrowserListItem", function(g, obj)
{
var a = obj.area;if (obj.columnIndex == -1) { g.setColour(Colours.withAlpha(Colours.white, obj.hover ? 1.0 : 0.5)); g.drawImage(obj.text, a, 0, 0); }});
The problem
With this code:
Expansion icons show correctly
Text in the other columns (preset name, tags, etc.) is not visible anymoreIf I add an else branch and manually draw the text:
Text becomes visible
The expansion icon stops showingSo basically:
Icon only → icon works, text disappears
Icon + text (using else) → text works, icon disappears
-
RE: Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
@David-Healey Hi again, thanks for the suggestion! I think there’s a misunderstanding on my side:
I’m not using the classic Convolution Reverb FX module. I’m using Scriptnode → filter.convolution inside a ScriptFX network.However, from Interface Script:
Synth.getAudioSampleProcessor("Script_FX1") exists (auto-generated by HISE), but calling Script_FX1.setFile("SomeIR.wav") does nothing (IR does not change).
fx.getNumAttributes() is 0, and I also don’t have getNode() in my build, so I can’t access the node directly.
-
RE: Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
@filipalex96 Thanks again — I’m very close now.
I call Engine.loadAudioFilesIntoPool() and setFile() works in principle, but I can’t get the correct reference via Synth.getAudioSampleProcessor("...").
In my Scriptnode network the convolution node is labeled/ID like “convolution_verb” (see screenshot), but Synth.getAudioSampleProcessor("convolution_verb") doesn’t seem to resolve.
Question: what exact name/ID should I use in Synth.getAudioSampleProcessor() to reference the Scriptnode convolution “Single Sample” loader? Is it the Scriptnode node ID, or the module ID somewhere else?
Any quick way to list available AudioSampleProcessors / their IDs from script? -
RE: Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
@David-Healey said in Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?:
Instead of getting the reference to the effect with Synth.getEffect you need to get it as an AudioSampleProcessor. That will give you access to a bunch of extra functions.
Thanks a lot for the tip, really appreciate it!
I didn’t realize I should access it as an AudioSampleProcessor instead of using Synth.getEffect(). That makes a lot of sense.
I’ll try this approach and see how it goes. Thanks again for the help! -
RE: Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
@David-Healey said in Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?:
You don't need multiple slots for this, you just need one, and you use the combo box to load a different IR into that one slot.
Thanks, that makes sense.
Could you please explain how to actually do this with filter.convolution in Scriptnode?More specifically:
– What is the method / API to load a new IR WAV file into the convolution node at runtime?
– Can this be triggered from Interface Script (e.g. from a ComboBox)?
– Or do I need to expose a Scriptnode parameter / use a specific node to call something like “setFile” on the convolution?A small example or hint would really help. Thanks!
-
RE: Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
@David-Healey They’re not connected to anything yet.
I just added multiple External Audio File Slots to load different IRs, but I don’t know how to switch/select the active slot inside the Scriptnode network (or expose it to the UI).
My goal is to select the slot from a ComboBox in the Interface Script.
-
Scriptnode filter.convolution – select External Audio File Slot from UI (ComboBox)?posted in ScriptNode
Hi everyone,
I’m building a convolution reverb inside Scriptnode using filter.convolution.
Inside the node I added multiple External Audio File Slots (IRs) (Slot #1..#6) (see screenshot).
What I want: from the HISE Interface Script / UI, use a ComboBox (or any UI control) to select which External Audio File Slot is currently active.
I tried accessing the Scriptnode network from interface script, but:
fx = Synth.getEffect("Script_FX1") works
fx.getNode(...) does not exist in my build (“function not found”)
fx.getNumAttributes() returns 0 (so I can’t control it via setAttribute() either)
Questions:
Is there an official way to switch the active External Audio File Slot of filter.convolution from UI / interface script?
Do I need to expose a Scriptnode parameter/attribute to do this? If yes, what’s the recommended setup for selecting the slot index?
If direct slot selection isn’t possible, what’s the best-practice workaround (without instantiating multiple convolution nodes)?
Screenshot attached.
Thanks!
-
RE: AU/VST3 Plugin Issues on Mac – Node Errors & Logic/GarageBand Compatibilityposted in General Questions
@d-healey I just delete the script node and I can see now works , but I will made more test on diferents Daw-s and I will be back with more info , tank you a lot , you save me
-
RE: AU/VST3 Plugin Issues on Mac – Node Errors & Logic/GarageBand Compatibilityposted in General Questions
@d-healey I didn’t try this …. just now I will try and come back with news , thanks a lot

-
RE: AU/VST3 Plugin Issues on Mac – Node Errors & Logic/GarageBand Compatibilityposted in General Questions
@d-healey any help , please. Maybe you have an ideea about what happen with these errors , thank you

-
AU/VST3 Plugin Issues on Mac – Node Errors & Logic/GarageBand Compatibilityposted in General Questions
Hi everyone,
We’re having ongoing issues with a new plugin created in HISE on Mac. Here’s a detailed summary:
What we’ve tried / observations:The plugin works fine as VST3 in FL Studio and other DAWs.
The AU version compiles successfully in HISE, notarized and signed, but:
In Logic Pro, the plugin appears in the Plugin Manager but is marked as Not Compatible.Trying to add it to a track either doesn’t show it or shows an exclamation mark.
In GarageBand, the plugin is visible but doesn’t open properly.AU validation (auval -v aumu Blkn Sjce) passes, but when opening the plugin, these errors appear:
"error at node wet_path1 can't create node with factory path container.chain"
"The audio buffer size should be multiple of 8. Please adjust audio settings"

On VST3, the "error at node wet_path1" also appears, but clicking OK allows it to work — indicating the node initialization issue persists.
We have checked all Info.plist fields (type, subtype, manufacturer, CFBundleIdentifier, CFBundleVersion, etc.), rebuilt, signed, notarized, cleared DAW caches, rescanned, etc.
We are at a point where we feel like we’re going in circles.We’ll attach screenshots from FL Studio showing the VST3 node errors and from Logic Pro showing the AU compatibility issue.

Question:Has anyone encountered similar AU/VST3 node initialization problems with HISE plugins on Mac?
How do you handle wet_path1 or similar chain errors so that AU works properly in Logic/GarageBand?
Any guidance would be greatly appreciated!
-
Pitch Wheel Modulation Not Working in Exported VSTi - Possible Workaround?posted in General Questions
Hi everyone,
I'm trying to understand how pitch wheel modulation works. When I create it inside HISE, everything seems to work correctly.
However, when I export it as a VSTi plugin and load it into a DAW (I'm using FL Studio), the pitch wheel modulation no longer functions.
Is there a way to control the pitch wheel using a Slider instead? That way, users could use the mouse to control it, or map the slider to a MIDI CC via MIDI Learn. Would that be a valid workaround?
I’m still a beginner and trying to figure out how these things work, so I apologize if this is a basic question. Any help or explanation would be greatly appreciated!
Thanks in advance!
