• drawFilterPath itemColour1 and itemColour2 are the wrong way around

    3
    1 Votes
    3 Posts
    300 Views
    David HealeyD

    I also noticed that drawDragHandle's colour properties are all empty. So I've made a modification that passes the filtergraph to the laf function so we can grab its colours. I hope this is the correct way to do this.

    https://github.com/christophhart/HISE/pull/705

  • Dynamically switching processorId of an AudioWaveform Tile.

    9
    0 Votes
    9 Posts
    881 Views
    David HealeyD

    @CyberGen said in Dynamically switching processorId of an AudioWaveform Tile.:

    should I add this to the gitHub issue list?

    Can do

  • HISE CSS Syntax

    Unsolved
    6
    0 Votes
    6 Posts
    487 Views
    C

    @Christoph-Hart cheers, mate.

  • Button default value should be used in broadcaster

    3
    1 Votes
    3 Posts
    377 Views
    David HealeyD

    @Christoph-Hart said in Button default value should be used in broadcaster:

    It's used for AAX plugins

    Aha that's good to know

  • Programmatically Assign Macro Connections?

    4
    0 Votes
    4 Posts
    296 Views
    ?

    Okay for anyone else wanting to do programmatic macro assignment for GUI elements:

    // First you need to setup some stuff: const mh = Engine.createMacroHandler(); Engine.setFrontendMacros(["a", "b", "c", "d", "e", "f", "g", "h"]); reg obj; // this will be what we pass to the function as an object // To see the full JSON object: inline function getObject(component, value) { // This button fetches our existing Macro connections object obj = mh.getMacroDataObject(); Console.print(obj); // Insert a breakpoint here and inspect the ScriptWatchTable "obj" element. }; Content.getComponent("Button1").setControlCallback(getObject);

    The object looks like this:

    { "MacroIndex": 0, // zero-based macro index "Processor": "Interface", // the script processor we're working in (usually "Interface") "Attribute": "Knob1", // the name of the UI control "FullStart": 0.0, // the UI control's "min" value "FullEnd": 127.0, // the UI control's "max" value "Inverted": false, // invert the connection "Interval": 0.0, // no idea "Skew": 1.0, // skew "Start": 0.0, // the macro control's "min" "End": 127.0 // the macro control's "max" }

    Finally to assign your own custom macro stuff:

    inline function assignMacro(componentName, index, fMin, fMax, min, max) { local obj = { "MacroIndex" : index, "Processor" : "Interface", "Attribute" : componentName, "FullStart" : fMin, "FullEnd" : fMax, "Start" : min, "End" : max } mh.setMacroDataFromObject(obj); }

    NOTE: This will likely crash and brick your project if you do it INSIDE HISE. Compile it / export it to Rhapsody before trying to use the actual assignment function.

    If you do brick your project, open the Preset.xml file and delete all the data in the Macro section

    Eg:

    <controlled_parameter id="Interface" parameter="155" parameter_name="knbFilterCutoff" min="20.0" max="20000.0" low="20.0" high="20000.0" skew="0.266319563348789" step="0.01" inverted="0" readonly="0" converter="37.nT6K8CBGgC..VEFa0U1Pu4lckIGckIG.ADPXiQWZ1UF.ADf..."/>
  • Keeping Track of Time for OpenGL - Engine Uptime and iTime

    1
    0 Votes
    1 Posts
    185 Views
    No one has replied
  • File.copy locks UI thread - how to show progress?

    5
    0 Votes
    5 Posts
    353 Views
    A

    @d-healey BackgroundTask is amazing, it unlocks a whole new world with e.g. python access.

  • Generate RSA activation code for machine code on the web page?

    5
    0 Votes
    5 Posts
    440 Views
    Felix WF

    @Christoph-Hart I think I succeeded, thanks

    const d = BigInt('0x' + dHex); const n = BigInt('0x' + nHex); const modulusBits = n.toString(2).length; const modulusBytes = Math.ceil(modulusBits / 8); const requiredHexLength = modulusBytes * 2; const messageBuffer = Buffer.from(machineCode); const reversedBuffer = Buffer.from(messageBuffer).reverse(); let value = BigInt('0x' + reversedBuffer.toString('hex')); let result = 0n; const modulus = n; while (value > 0n) { const remainder = value % modulus; value = value / modulus; const encryptedChunk = modExp(remainder, d, modulus); result = result * modulus + encryptedChunk; } let hexStr = result.toString(16).padStart(requiredHexLength, '0'); const finalBuffer = Buffer.from(hexStr, 'hex'); return { activationCode: finalBuffer.toString('hex') }; function modExp(base, exp, mod) { let result = 1n; base = base % mod; while (exp > 0n) { if (exp & 1n) result = (result * base) % mod; exp = exp >> 1n; base = (base * base) % mod; } return result; }
  • Deleting a preset

    5
    0 Votes
    5 Posts
    309 Views
    S

    @d-healey said in Deleting a preset:

    currentPresetFile.deleteFileOrDirectory();

    Thanks! That worked!

  • Loop Array and Filter by String Prefix.

    17
    0 Votes
    17 Posts
    1k Views
    ChazroxC

    @rglides 100% ! 🙏

  • Anyone got a way to prevent multiple message boxes at the same time?

    10
    0 Votes
    10 Posts
    560 Views
    David HealeyD

    I've just added Engine.showMessageBoxWithCallback() it works exactly the same way as Engine.showMessageBox() but you can pass in a callback as a 4th parameter and it will only allow one message box to be shown at a time.

    https://github.com/christophhart/HISE/pull/700

  • ComboBox Challenge. Oblivious Checkmark.

    Unsolved
    11
    0 Votes
    11 Posts
    1k Views
    C

    @CyberGen I have the same problem on Linux.

  • Help. Project wont open. Instant crash.

    4
    0 Votes
    4 Posts
    766 Views
    ChazroxC

    @rglides yee!

  • Deleting presets

    5
    0 Votes
    5 Posts
    265 Views
    David HealeyD

    @Sampletekk Yes - or at least you need to know the bank/category/preset so that you can build the path.

  • SNEX interpolate table

    Unsolved
    7
    0 Votes
    7 Posts
    650 Views
    ustkU

    @Straticah Yeah no luck you see it working unfortunately. You might be able to get some prototyping but chances are good it just won't work...

  • Keyboard/Midi note triggering button

    17
    0 Votes
    17 Posts
    1k Views
    ulrikU

    @cassettedeath this is an example with 4 buttons, triggering 4 different notes

    HiseSnippet 1371.3oc2X01SabDD9NvWUOm1nlpnp9wUQ8ClJjieGPUowfwjhJFPXGZkPQQquaO6Urd2K2tFhUER8OXk5Ok7Onc18Nyc1wjBVkpjhzgXeYl4YdlYmcVNNR3QjRQjkc9dSBIV1egS2Ib0vVCwTt096ZY63bo3RqclDhkRhuks8puPujsaNKyOu646fYXtGIcJKqSETOxAzQTU5rG27moL1dXeRO5nL6tVy88D7VBlXL.iUcJYEh8NGOfbHVusUbr9Irbnk826TInuWkfMptY4sJu0F01pb45a1uVoJd902pZ0FU8CprItwlfPeVaepRD0UgUDokctcD9S5NTbIO1.mRkz9LhdPYqtfkimdOAyW6h5YsZMjx7OdJ+Hs.l33T1Z0X15wNcn9zqmOk09JyBnTIxRf1qLK7VcF3UNK7JkAdK.R1YfTtXH8HmtdQzPU5JZ77.m84JRT.FhSYgR7dsV4Ox4zR.6fqJNBeNYuHXv0RTnQoRqifes1OjOODqjJzNiUJ3OPOCMUrAD01LVKwnPAGFKK7j387DsPO8otpgTIhQAYuDRCPR7EDjZHAExvSH9HtPQPjK.I22WlOhL35AfMZyGP4jhdQDfvzD6AfdJjUwIZ4bxDYr9UQzACHQFSzOFrFsp2QugXUuj0eF5rZatNpdU3qN7s0qxnUMnRzmTLl6iLpHQ0D+CMKCZngldp.e0fu5ZMP4L.wnfwbOEUvQBdBiooqHAqf2ThZczEX1XxZ4+s7tLgGlgnbexaA0lHQQy3iBREAbb27tz.TgDQccmRVEkD0o5IKLKJOynjWsNxb5tnltzyeS6pQo0zFgvjDP4wxnIiiBB1YR6XaU3ZaN3CZSsltBnj.QDpPev6l5X.t6qwaBkzByX8gS9Elmqzw4LDoV2GwKXHrNPFNTonHc.WDQL.C.APIWyPyEuKBouJ3PprvTQAvq03giG0mDUXs0.TAJdtPw7ZYZH4lTBXd2DmHgExFXhw27avaHlOf3qSqcuJ+U4Qy6yAAwN8GmtU.FRVtq9URDlo0t10laY8EEKdkoGi3Fnk8LjdiPwvYqv5byUXydAfWbsrLaTv2mSUGER32z0BVIE.gpw4RPErUkoV7CSpEGyHVTnjqqS7fxVFHCPy1bK3cPzJKunUWdQqMmnub+cwJr9NnDB.HkPRjhp4a6cIW.c.DeijqytD44JQnggRpgA2QeK3n2l1lvtMmjN3GaRkcDi.8filDGYtj5qFltiyZZcmrUkr1x+90VUyXqe+M2u1pVV+Zxc1Vue+EPmMB+wLrZ11czMElr.bBcldLz8QvkT0jrMM9uVOP2VH9HmioJugKFiqr.LBo12GXLoywuzocP.wSkBvbN68q2OsIl07OL17OvoKzeh4hciw+FyXzun6J6EDNIRSdk+.s8+m2119Cu0s8ejmBLeuHLWFJjyn3tjQzdPNuL6juTB8oRdyI5nY14aIvQKbo2878.mbgxzEqFGYRK1dDzomZlzfU+Puln7R9Zhbez8ZhOANrOyCdbmhwtzQgLRa9EDFbEjAieMbmS.dLSMc1Yyk6H3hvgBN0Kaf9DRRCrYw9BcnsUJnS0zYdbySHLBNaR6207.HYCGA7DYI4hx24G+sv3025DCWj9.H5S2hzq9+6hzmHFqn7AcvPRHbmsCz0cWn1nGArNmCOES250J55awiKMsUrtDtuYveA+jrXY8X6jEKOcw+SrwHrWj30dwcVpyS+byLfeyM+Ccbc5nGittC3zX4HnJ2q87lUUumfUVVAqtrBVaYEr9xJXikUvMVVA27eVP8kPaOVIFEezzxpywsMOBv1tMGCY4lSDV+Mv6OwZ+
  • setMouseCursor consistency

    17
    0 Votes
    17 Posts
    1k Views
  • Enter the serial number every time

    11
    0 Votes
    11 Posts
    900 Views
    bendursoB

    @xsaad You're welcome!
    Oh yeah, you have to remove saveInPreset from all momentary buttons :)

  • How to Play an Audio Loop Player?

    Solved
    28
    0 Votes
    28 Posts
    2k Views
    C

    @d-healey I didn't mean to imply it was your code—it was mine, in that I had assigned an LAF to a Component that no longer existed. And thank you, as always.

  • User deleting factory presets...

    3
    0 Votes
    3 Posts
    238 Views
    ChazroxC

    @d-healey got it. Thank you.

26

Online

2.1k

Users

13.1k

Topics

113.8k

Posts