Coming right on time (well, when ready...) as I am to release a set of plugins based on the same engine so if fixes and updates can be done just once for the bundle I can already see the benefit of this!
Posts
-
RE: Adding External FX Libraries to the HISE source codeposted in C++ Development
-
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@David-Healey I tried in during my testing and even if I could make it work, the parsing of an array that contains strings is bad bad bad. You need to rework the result to remove the escape char and other things.
This might just be normal, but then what about rewriting it back? Might work, might be risky, this I'm not sure until further testing it -
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@DanH Yeah that's where the biggest job resides.
might doable with some XML parsing, and save as XML but the object might live as strings that are difficult to read/write. I won't be able to make tests within the next days so... -
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@DanH said in Using custom preset system - as in the actual presets themselves, not a browser:
@ustk clever - but possibly running through all the presets every time you load a new preset is going to take a while.... I'd need to cache them somehow.
No, only at init when for checking if new presets are present
How does saving panel data work? Do you have to save the preset (bad for my use case)? Does it auto update / write to the .preset file?
Yes true... but it should be possible to just write it in the preset dynamically without the need to save. but that would require some clever string handling, don't know if it's secure enough and/or doable, but that might worth a try...
That might be where the already existing custom preset system is better...Where is the data in the .preset file?!
Under the panel's value, like all other components
EDIT - Oh it's not persistant... doh

Yes it is if in the preset..., it's recalled like any other value, that's what I do a lot in the things I've worked on
-
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@Orvillain I'm not certain my brain gets all this so pardon me if it's not helping...
But can't you do it the other way round, saving the module state withaddModuleStateToUserPresetand then restore the UI components from it withupdateConnectedComponentsFromModuleState? -
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@DanH Oh in fact you don't even need to create a JSON file, all can be kept internally in a variable since the tag list is gathered at init...
-
RE: Using custom preset system - as in the actual presets themselves, not a browserposted in General Questions
@DanH The stock preset system doesn't just recall parameters, it also stop/release the audio (or something like that) during loading time, and probably a bunch of other stuff you don't want to do without...
An approach could be to store an object in a panel that contains what you need like tags.
Then at init (or anytime you want really) you automatically create/update a unique JSON file that contains all the tags from all the available presets. So if a user shares a preset, this can be automated (or with a "collect tags from presets" button) and the local JSON file updates (as well as your preset browser which ever it is). -
RE: HISE’s CPU readout is at 0% in the compiled plugin in logic.posted in General Questions
@jeffd Since DAWs are reporting there own vison of the plugin CPU consumption, can't you just hide it in the plugin with
Engine.isPlugin(). This might prevent confusion for the user since the values won't be the same between DAW and plugin... -
RE: Colour non-sense...posted in Bug Reports
@dannytaurus Oh cool! Bug or not I can at least make my project to work so thanks!
-
RE: Colour non-sense...posted in Bug Reports
A little snippet to support the case...
HiseSnippet 1638.3ocuXssbaTCFVqa1RsoGnyvCfFeCNfw01woMjRo1NwowCwIlXmRY5zoHuq1XMYsjGsZyA5jY3FtmmCtlmEtlGAtiKK+Z20dWeJMwLvNSRpz+oO8eTpskBKpmmPhLxz8hgTjwcM6bAW0eq9DFG0bajwmXtkvU3K2Wv6P4dTT8KFR77n1HCia8BMWFoWAE78WOuNwkvsnwagPuTvrn6wFvTw61t52xbc2gXS6xFjf6JUaZI3g1CYbKyhngDqSHGS2mnYKkIZWhWejwmaVlXuQE60KYUpXEh0ZOd8x8V2ojCkTobwxq8jxkbpPsrKQPF2tgMSIjcTDE0CTZcg8Ec5KNiGZfWx7X8bo5EkPc.KGtMZq9LW61ibOdHjwJsicV2JzY8olsX1rw6mzooIfikHoSyH0UAoR2.HYj.RqDBoGZ1wRxFphonwyGa1jqnRGh0jwuPdQodqIDkAN3pBCHmP2QBKFKQtGWrXdL7qUeZFfKOgKsfkKkHyAajICDw7T3SIRb2cazpAV+8Lbwycbb5s1WsQkmlfica9hc2C9oKvwwTUXjFr1ft8oCn4JVnxF4w3RE.SgezivdDE9Kv8jri6qve42.JcG3ai0qWAraFfgY0QFF2kwoXGetkhI3yyLfZ8kDM07QJmCtpUy7tLocEVD2.69LbnXdENio52YrH4BNk4wwJA7BQxYIbmRt5iUu1pSXNPpLokTPKbsfOMykgmosarUyV01C236Np4KqsWi861AW6vFEJTXr2enjwU4xtaiWUKh6MwYAOUr+AzNnJPl8OnaBMMsF15fVsOpais2TGzzZHNBEDaSD55o3dvg60ixSB7qCFJ3Tshp6qTBdorqlOCdluqRjxYW8MZKMcXSv0FTKoT3lyZjX4Ar35SChULGbtnUogkQw.eO5tzyAjpku.iaSO+.mXErJ9YPxI36Ame54Cr8H8ntvQIB8E7nvlJ54Q4QYgLzHi77Ddb7lI8c5r2yDxS7VnUZS3yZElhN3+SqTFLyGzJKT463JfB.9wcYtTvFK8QvVP83elJ3njI8kYtDRHbDRbtdXFOHNtJtmV6QoCaQbc6ACFxMQRB.zDYO6KTzC34BRTfJK7zjbblKsHc4Rkykrdbk7pDLG2ePOpLYZplQn87j87u80qmuUneOAiBdSNScvPZz5cDt15d45+8rSHPQANXVQpHDBrpBlTb+nIEg0gHFnjzlQ0wn.3mbxN5FHd4oEG9Np41DEQOyJBR.LGRkJl1aXrM8T3VBgSvRatM06DkXHxvbbxFLBKzr2KxrAEoAV8NlgErnyiM3OT8hwK9YmpmwrUv0FLM9UCDpOU2BVupLP0APSG1Ok.raTkBgJRPz.NrPcOx3iBsAp2witbR5aCr9dM+wcFz696+x6C1Ek.52YRnGTSFA8v5yEA8pCWDz+ZfZbkVRCmn3dQ34tpnauDhmjkwAv5AlSTYm.cUSht+zuZTrLLv8.y1RJTkVWJNyiJm1Y82nqKlGkyDjwj5ORY9NXnRVcQPGxozvbrrahUReZ9QTZb9PB2CpE8pAMDb8Gn4vg35EyRPohb9hq6I3MiNg7fP1mfT71PWD37BzJUbrP0rsmuINjxgawNeZaScopEPqCbSKq90IxjD1gbpPBtM88kGihXPjj7Dh4651ln5Oht2DNonyZSvOZSqKjf2ZB566OHz0pEasfsBW+85jzC0WFBH75fa.TrvZS8k+FtOr8aBrwdLOUMIkL9bFYg7y6OikJDYGJNqMw1FRkutxM1cWW3ys0mzWGRnkPFEgllRbV4zTF4mmgZlKQKnx92lokx3dnIJgSeM5gmnrklnrE0sZXSszlG0oAFtDIBxLg1c5mrrGb5459dRhMS7BoveX3rkwn8bTRzl6FiqxIv0O5MObc+.bM5po+aA2rOQBdblv12knl7Ea52xFQ.ZiLwyjzOEBJJTWjbh3M3YbEuxmwccg3CMayTV8mOFSMGLpm5+e.Fid768La33PsTw.bEycd0x9R2Of4OT3qmG0hnjLH+wDZE0AJOrnf04vHTOc7NkNWLbcQ8ZsGnCkaGr38vWDwR50FQDKMhHZ.wRJdqU38bzOu9NA6.XhG7e+PZyV503Ryd8lAP14asrlTUyHX4kUv0VVAqrrBt9xJ3iWVAexxJ3FeXA0MOp4qDCBKaPnVsaDb4BCiFAcWBxVQ+CvssBkB -
Colour non-sense...posted in Bug Reports
There's a strange thing happening with the colour when used as HEX vs computed.
For instance I have this THEME colour
0xfffb3984, from which I obtain the HIGHLIGHT colour0xFFFF85B4after applying some saturation and brightness (using Hise stock methods)
I can confirm the HEX obtained using a colorPicker on a panel I painted with.briefly:
const var THEME = 0xfffb3984; const var HIGHLIGHT = getColourFromTheme(0.48, 1.0); // sat + bright -> 0xFFFF85B4But from here it makes no sense:
-
If I use the variable in a paint routine as HIGHLIGHT, no problemo, it's the good one.
-
Now if I programmatically set a colour property of some components using HIGHLIGHT, essentially the preset browser floating tile, the resulting colour displayed is absolutely different (like green instead of pink)
While pasting directly the HEX equivalent works... (even if both methods show the same HEX in the property panel)
But this is not the case for other components like labels, for which if you either set the colour programmatically with the variable HIGHLIGHT or paste the HEX value, the result is the same, as expected
Ok... So the preset floating tile colour handling is broken and then what?
Well this is where things get interesting.
When printing the decimal equivalent, you get two different values despite a colourPicker giving the same HEX for both:Console.print(0xFFFF85B4); // 4294935988 Console.print(HIGHLIGHT); // -31308So my guess is that in the components that are working with either values (aka property set manually vs programatically), it might be because of some sanitisation behind the scene. While in the preset browser this sanitisation might simply not occur, so
-31308returns hise green instead of pink.So the questions are:
- Why are the decimal results different, while a colour picker shows the exact same HEX? Are those decimals equivalent like when you make a full revolution around a trigonometric circle? (like 3 PI being equivalent to PI)
- Why, if a sanitisation is needed, it doesn't happen directly after the use of
Colours.withSaturation()andColours.withBrightness()? - Can we fix the preset browser floating tile colour handling?
-
-
RE: showErrorMessage doesn't workposted in Bug Reports
@David-Healey yes this is what I use… just saying it’s broken too and after looking at the code they both use the same thing, so this explains why
-
RE: Automation subfolders in DAWposted in Feature Requests
@DanH hmmm actually I have errors when opening the project then not anymore when compiling.
I also see the warning when exporting the plugin but effectively it’s not a blocking point -
RE: Third party HISE developersposted in General Questions
Using HISE for about 6 years, mostly on personal projects and doing development work for other developers. I’m more focused on GUI integration and building advanced widgets that are tightly integrated with the engine.
I like working with vector graphics and often recreate full designs directly in HISE.
Sample management isn’t really my thing.
I also work on C++ third-party nodes and DSP networks. -
RE: Automation subfolders in DAWposted in Feature Requests
@DanH Holy sh... They are just appearing in the property editor! No need for the sort function if, well, no sorting is needed lol

still it's weird it's crashing but at least I got something...
-
RE: Automation subfolders in DAWposted in Feature Requests
@DanH Oh nice! I just got back home so we're in sync!
So I did this
const var groups = ["EQ", "Input Stage", "Noise", "Exciter", "Output Tube", "Transformer", "Macros", "Envelopes", "LFOs"]; uph.setPluginParameterGroupNames(groups);But how do I set the groups to the different components?
I created the parameter object:
const var IS_TYPE_MACRO = 0; const var IS_TYPE_CUSTOM = 1; const var IS_TYPE_COMPONENT = 2; const var obj = { "Low Boost": {type: IS_TYPE_COMPONENT, parameterIndex: 0, typeIndex: 0, group: groups[0], name: "Low Boost"}, "Low Freq": {type: IS_TYPE_COMPONENT, parameterIndex: 1, typeIndex: 1, group: groups[0], name: "Low Freq"}, "Low Cut": {type: IS_TYPE_COMPONENT, parameterIndex: 2, typeIndex: 2, group: groups[0], name: "Low Cut"}, "Hi Bandwidth": {type: IS_TYPE_COMPONENT, parameterIndex: 3, typeIndex: 3, group: groups[0], name: "Hi Bandwidth"}, "Hi Boost Freq": {type: IS_TYPE_COMPONENT, parameterIndex: 4, typeIndex: 4, group: groups[0], name: "Hi Boost Freq"}, "Hi Boost": {type: IS_TYPE_COMPONENT, parameterIndex: 5, typeIndex: 5, group: groups[0], name: "Hi Boost"}, "Hi Cut": {type: IS_TYPE_COMPONENT, parameterIndex: 6, typeIndex: 6, group: groups[0], name: "Hi Cut"}, "Hi Cut Freq": {type: IS_TYPE_COMPONENT, parameterIndex: 7, typeIndex: 7, group: groups[0], name: "Hi Cut Freq"}, "Bypass": {type: IS_TYPE_COMPONENT, parameterIndex: 8, typeIndex: 8, group: groups[0], name: "Bypass"}, "Heat": {type: IS_TYPE_COMPONENT, parameterIndex: 9, typeIndex: 9, group: groups[1], name: "Heat"}, "Bias": {type: IS_TYPE_COMPONENT, parameterIndex: 10, typeIndex: 10, group: groups[1], name: "Bias"}, "Dynamic": {type: IS_TYPE_COMPONENT, parameterIndex: 11, typeIndex: 11, group: groups[2], name: "Dynamic"}, "Hold": {type: IS_TYPE_COMPONENT, parameterIndex: 12, typeIndex: 12, group: groups[2], name: "Hold"}, "Static": {type: IS_TYPE_COMPONENT, parameterIndex: 13, typeIndex: 13, group: groups[2], name: "Static"}, "Mix": {type: IS_TYPE_COMPONENT, parameterIndex: 14, typeIndex: 14, group: groups[2], name: "Mix"} };But then I don't know what to do with this
uph.setPluginParameterSortFunction(function(p1, p2) { return -1; // instant crash return 1; // instant crash return undefined; // doesn't crash });how do I pass
obj?
I guess just returning-1should assign the parameter in natural order but it's just crashing instantlyIt's like a crucial step is missing in the doc and there's not even a single entry with those methods in the whole forum...
-
RE: Automation subfolders in DAWposted in Feature Requests
@DanH Oh ok so script is the way! Checking this right now...

