• Dynamically switching processorId of an AudioWaveform Tile.

    9
    0 Votes
    9 Posts
    250 Views
    d.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
    84 Views
    clevername27C

    @Christoph-Hart cheers, mate.

  • Button default value should be used in broadcaster

    3
    1 Votes
    3 Posts
    51 Views
    d.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

  • 1 Votes
    2 Posts
    50 Views
    clevername27C

    @d-healey Sorry, mate - I haven't used Expansions.

  • Programmatically Assign Macro Connections?

    4
    0 Votes
    4 Posts
    49 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
    37 Views
    No one has replied
  • File.copy locks UI thread - how to show progress?

    5
    0 Votes
    5 Posts
    88 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
    115 Views
    CatABCC

    @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
    50 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
    127 Views
    ChazroxC

    @rglides 100% ! 🙏

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

    10
    0 Votes
    10 Posts
    145 Views
    d.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.

    Link Preview Image Added Engine.showMessageBoxWithCallback by davidhealey · Pull Request #700 · christophhart/HISE

    This shows a message box and triggers a callback function after the user clicks ok. It also only allows one message box to be shown at a time.

    favicon

    GitHub (github.com)

  • ComboBox Challenge. Oblivious Checkmark.

    Unsolved
    11
    0 Votes
    11 Posts
    132 Views
    C

    @CyberGen I have the same problem on Linux.

  • Help. Project wont open. Instant crash.

    4
    0 Votes
    4 Posts
    135 Views
    ChazroxC

    @rglides yee!

  • Deleting presets

    5
    0 Votes
    5 Posts
    44 Views
    d.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
    197 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
    355 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
    678 Views
  • Enter the serial number every time

    11
    0 Votes
    11 Posts
    285 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
    468 Views
    clevername27C

    @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
    61 Views
    ChazroxC

    @d-healey got it. Thank you.

20

Online

1.7k

Users

11.7k

Topics

101.6k

Posts