Forum
    • Categories
    • Register
    • Login
    1. Home
    2. ustk
    3. Posts
    • Profile
    • Following 0
    • Followers 15
    • Topics 459
    • Posts 5,949
    • Groups 1

    Posts

    Recent Best Controversial
    • RE: Adding External FX Libraries to the HISE source code

      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!

      posted in C++ Development
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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

      posted in General Questions
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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...

      posted in General Questions
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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

      posted in General Questions
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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 with addModuleStateToUserPreset and then restore the UI components from it with updateConnectedComponentsFromModuleState?

      posted in General Questions
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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...

      posted in General Questions
      ustkU
      ustk
    • RE: Using custom preset system - as in the actual presets themselves, not a browser

      @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).

      posted in General Questions
      ustkU
      ustk
    • RE: HISE’s CPU readout is at 0% in the compiled plugin in logic.

      @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...

      posted in General Questions
      ustkU
      ustk
    • RE: Colour non-sense...

      @dannytaurus Oh cool! Bug or not I can at least make my project to work so thanks!

      posted in Bug Reports
      ustkU
      ustk
    • RE: Colour non-sense...

      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
      
      posted in Bug Reports
      ustkU
      ustk
    • Colour non-sense...

      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 colour 0xFFFF85B4 after 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 -> 0xFFFF85B4
      

      But 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);  // -31308
      

      So 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 -31308 returns 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() and Colours.withBrightness()?
      • Can we fix the preset browser floating tile colour handling?
      posted in Bug Reports
      ustkU
      ustk
    • RE: showErrorMessage doesn't work

      @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

      posted in Bug Reports
      ustkU
      ustk
    • RE: showErrorMessage doesn't work

      @David-Healey Neither does showMessage...

      posted in Bug Reports
      ustkU
      ustk
    • RE: UI feedback on tiny control

      @dannytaurus Yeah good move 👍

      posted in General Questions
      ustkU
      ustk
    • RE: Automation subfolders in DAW

      @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

      posted in Feature Requests
      ustkU
      ustk
    • RE: Automation subfolders in DAW

      @DanH Mmmm... I don't get any error 🤷♂

      posted in Feature Requests
      ustkU
      ustk
    • RE: Third party HISE developers

      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.

      posted in General Questions
      ustkU
      ustk
    • RE: Automation subfolders in DAW

      @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...

      posted in Feature Requests
      ustkU
      ustk
    • RE: Automation subfolders in DAW

      @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 -1 should assign the parameter in natural order but it's just crashing instantly

      It'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...

      posted in Feature Requests
      ustkU
      ustk
    • RE: Automation subfolders in DAW

      @DanH Oh ok so script is the way! Checking this right now...

      posted in Feature Requests
      ustkU
      ustk