@ustk Full disclosure, I figured this out using ChatGPT 
Posts
-
RE: Colour non-sense...posted in Bug Reports
-
RE: Colour non-sense...posted in Bug Reports
@ustk Seems that when you set a colour variable it's stored as unsigned 32-bit but the return of the calculation is signed 32-bit.
They are the same number, but different formats. It looks like the floating tile doesn't like the signed format and falls back to the default green colour.
If you force the calculation result to unsigned, it works as expected:
inline function getColourFromTheme(saturation, brightness) { local sat = Colours.withSaturation(THEME, saturation); local col = Colours.withBrightness(sat, brightness); //return col; // force unsigned 32-bit result return col < 0 ? col + 4294967296 : col; }Not sure if that's considered a bug, or just another gotcha we have to remember and accommodate.

-
RE: Mac installer for audio sample libraries best practices?posted in General Questions
@David-Healey You get the Destinations settings below. I'm not 100% clear if that means User folder and System Disk though.

EDIT: actually, that Destinations section just dictates what the user sees on this page of the installer:

I think just back away quietly. I'm just making things worse here

-
RE: Mac installer for audio sample libraries best practices?posted in General Questions
@David-Healey said in Mac installer for audio sample libraries best practices?:
What does this mean?
I don't know. I'm repeating what I read in other posts here. Hence the 'apparently'

I do know it has an Audio Plugin option when you create a new package project.
And given that installing different files to different locations, including to both user and system directories, is a very common requirement for audio plugins, I assume it will handle it.
Haven't tried it myself yet though.

EDIT: looks like the Audio Plugin option might be purely a visual element, and it doesn't actually do anything special.
-
RE: Mac installer for audio sample libraries best practices?posted in General Questions
@WillowWolf You could look at Package Builder too. Apparently it's been updated to specifically handle installing audio plugins, so I assume it would do what you need.
-
RE: UI feedback on tiny controlposted in General Questions
@Bart Wow, that interface is wild!

The synth I'm building is the start of a series, so I'm designing a layout that will work with all of them. Each one will have a couple of unique controls, so they all look slightly different but obviously from the same family.
-
RE: Help! Automation image painting in panelposted in Newbie League
@David-Healey Yeah, me too. But I thought for someone learning how to do the basics of optimising repetitive code into loops, I would just show the basic method.
@goldee What David means, if we're talking about the same thing, is that you can get an array of components and loop through them directly, instead of fetching each one by name.
const panels = Content.getAllComponents("instimg_pnl\\d+"); for (panel in panels) { panel.loadImage("{PROJECT_FOLDER}" + panel.getId() + ".png", "img"); panel.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); g.drawImage("img", a, 0, 0); }); } -
RE: Help! Automation image painting in panelposted in Newbie League
@goldee To put this in a loop, I would grab the block that is repeated each time:
const var instimg_pnl1 = Content.getComponent ("instimg_pnl1"); instimg_pnl1.loadImage("{PROJECT_FOLDER}instimg_pnl1.png", "instimg_pnl1"); instimg_pnl1.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); g.drawImage ("instimg_pnl1", a, 0, 0); });And put it in a loop structure:
for (panel in panels) // we'll make the panels list later { const var instimg_pnl1 = Content.getComponent ("instimg_pnl1"); instimg_pnl1.loadImage("{PROJECT_FOLDER}instimg_pnl1.png", "instimg_pnl1"); instimg_pnl1.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); g.drawImage ("instimg_pnl1", a, 0, 0); }); }Then change the
instimg_pnl1var name to something generic and reusable,p:for (panel in panels) { const var p = Content.getComponent ("instimg_pnl1"); // 👈 p p.loadImage("{PROJECT_FOLDER}instimg_pnl1.png", "instimg_pnl1"); // 👈 p p.setPaintRoutine(function(g) // 👈 p { var a = this.getLocalBounds(0); g.drawImage ("instimg_pnl1", a, 0, 0); }); }Then identify the parts of the block that change each time. In this case it's the
instimg_pnl1string used 4 times in the block. Change that to thepanelstring we're passing in from theforloop:for (panel in panels) { const var p = Content.getComponent (panel); // 👈 panel p.loadImage("{PROJECT_FOLDER}" + panel + ".png", panel); // 👈 panel, panel p.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); g.drawImage (panel, a, 0, 0); // 👈 panel }); }Now build the list of panels from your original code. There are a few ways to do this but let's use the full names:
const panels = ["instimg_pnl1","instimg_pnl2","instimg_pnl3","instimg_pnl4","instimg_pnl5"]Add this to the loop and we're done:
const panels = ["instimg_pnl1","instimg_pnl2","instimg_pnl3","instimg_pnl4","instimg_pnl5"] for (panel in panels) { const var p = Content.getComponent (panel); 👈 panel p.loadImage("{PROJECT_FOLDER}" + panel + ".png", panel); 👈 panel, panel p.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); g.drawImage (panel, a, 0, 0); 👈 panel }); } -
RE: UI feedback on tiny controlposted in General Questions
@Bart Oof, I don't think the design-nerd side of my brain could accept that!

But I did remove the background highlight and now it just highlights the actual wave selected.
Feels a bit cleaner and I'm happy with it now!


-
RE: Automation subfolders in DAWposted in Feature Requests
@ustk said in Automation subfolders in DAW:
should be written automationId
That lowercase
dstill gets me LITERALLY EVERY TIME
-
RE: UI feedback on tiny controlposted in General Questions
@Orvillain Yep, that's on the list for a Plus version of the plugin. This is the trimmed-down free version.
Although I have no idea yet how to use a wavetable as an LFO. Fun future project!

-
RE: How to get numbers from stringsposted in General Questions
@ulrik Or use regex to detect strings that only contains digits.
const var strings = ["brass", "001", "127", "flute"]; for (s in strings) { if (Engine.matchesRegex(s, "^\\d+$")) Console.print(parseInt(s)); }^means 'start of string'
\\dmeans digit
+means 'one or more'
$means 'end of string`So, "one or more digits between the start and end of the string, and nothing else"
-
RE: Export Setup Wizard Problemsposted in General Questions
@David-Healey @Christoph-Hart @HISEnberg I think whatever regex magic and tree-following voodoo is in the script, there will be some user somewhere who loses all their work because of their weird setup.
Maybe instead of actually deleting the detected HISE folders, the script should just alert the user of potential issues?
-
RE: Hise Crashes when adding waveform floating titleposted in General Questions
@David-Healey Is there a GitHub issue?
-
RE: Hise Crashes when adding waveform floating titleposted in General Questions
@markothemixer When exactly does HISE crash?
- When you add the floating tile to the Interface Builder, or
- When you change the ContentType of the floating tile to Waveform, or
- When you change the ProcessorId in the Data panel to the processor ID of the waveform module you want to visualise, or
- All of the above work, but HISE crashes at some point later, like re-compiling or a reload of the XML
-
RE: UI feedback on tiny controlposted in General Questions
@griffinboy said in UI feedback on tiny control:
See how tiny the Ableton dropdown selection boxes and multiple choice buttons are in the background?
Very good point! I've always disliked the Ableton UI for that reason but the point is, that's what folks will be used to I guess.
-
RE: UI feedback on tiny controlposted in General Questions
@ustk said in UI feedback on tiny control:
Could also be a 3 pos knob
Yeah, I tried a 3-pos knob but since all the other knobs are continuous, having one that only has 3 positions feels a bit weird. Especially since I don't want to put markers around that one knob to denote the positions.
-
RE: UI feedback on tiny controlposted in General Questions
@David-Healey said in UI feedback on tiny control:
Looks fine sublime to me
Very good!

Yeah, I thought about a combo box but that's essentially what this already is - an 'always open' combo box.
-
UI feedback on tiny controlposted in General Questions
Does the Wave sector in the Motion section look too small and fiddly?
Each wave is a fairly small hit target of 44x14.
Any other ideas for choosing between 3 waves in that control area?

-
RE: Export Setup Wizard Problemsposted in General Questions
@Christoph-Hart said in Export Setup Wizard Problems:
I'm also thinking about a "Nuke HISE" tool
Definitely, although it won't help users who have multiple copies of the source on their machine.