• Sliders not responding to "Consumed" MIDI CCs

    Solved
    21
    0 Votes
    21 Posts
    427 Views
    CyberGenC

    @d-healey @d-healey said in Sliders not responding to "Consumed" MIDI CCs:

    setCustomAutomation

    Now that I've had a bit more time, there are a number of hurdles with using this method.

    Issues Encountered

    MIDI Learn disappears
    The "MIDI Learn" option no longer appears in the right-click context menu of knobs — unless an automationId has been manually assigned in the Properties panel.

    automationId overrides control callbacks
    Assigning an automationId disables the knob's regular controlCallback, which is where most of my knob logic lives (e.g., updating processors, linked components, states, etc.).

    Workaround via automation callback
    You can attach a callback to a specific automation and call the original controlCallback logic from there — but this adds boilerplate and breaks modularity.

    Avoiding feedback loops crashes HISE
    Trying to assign a knob as the target of its own automation (to bypass issue #2) results in an infinite loop that crashes HISE.

    Controller numbers don’t carry over
    If you switch the automationId to a new target, the MIDI CC assignment doesn't carry over. It must be learned again manually — making it difficult to share CC control across multiple processors or targets.

    🤕

  • Global Variable stuck?

    Solved
    7
    0 Votes
    7 Posts
    82 Views
    ChazroxC

    @d-healey Good to know! I have a bunch of 'consts' in my 'onNoteOn's. Im going to change them now and hope nothing breaks. Thank You! 🙏

  • How can I efficiently remove a key from an object?

    7
    0 Votes
    7 Posts
    91 Views
    Christoph HartC

    @d-healey yeah something like JSON.delete(obj, key) is the easiest way, the delete syntax would require a real brain-twister with the current parser.

  • Midi-Out Messages?

    Solved
    12
    0 Votes
    12 Posts
    470 Views
    ChazroxC

    If anyone ever needs to know...

    This was ultimately solved with the help of the following!

    @VirtualVirgin said in Midi-Out Messages?:

    You would need to place the your piano roll script in a container on the next level down from your chord generator. Any MIDI that you generate will not be "seen" on that onNoteOn or onNoteOff callback, so you need a new container level to receive it as MIDI input.

    @ulrik said in Midi-Out Messages?:

    @Chazrox it is as @VirtualVirgin suggested, you need to read the out coming note ons and offs from a script one level below the script that generate the chord

    Thank You! 🙏

  • PNG Slider LAF || See Example

    2
    2 Votes
    2 Posts
    65 Views
    ChazroxC

    @pcs800 👍

  • Change Variables within function

    5
    0 Votes
    5 Posts
    120 Views
    ChazroxC

    @Ben-Catman

    I think you could just

    reg x = yourKnob.getValue(); // declare x // then just use 'x'...

    I think you can also

    local x = yourKnob.getValue(); // from within your inline function... // then use 'x'...
  • Adding JSON properties to a component via script?

    4
    0 Votes
    4 Posts
    164 Views
    Christoph HartC

    @VirtualVirgin Little unrelated tip of the day:

    mySliders.map(function(element){return element.getId();});

    can also be written as

    mySliders.map(element => element.getId());

    Link Preview Image Arrow function expressions - JavaScript | MDN

    An arrow function expression is a compact alternative to a traditional function expression, with some semantic differences and deliberate limitations in usage:

    favicon

    MDN Web Docs (developer.mozilla.org)

  • How do I send 'noteOff' messages from UI Button?

    Solved
    7
    0 Votes
    7 Posts
    215 Views
    ChazroxC

    @VirtualVirgin This worked best for me! Thank You! I got it working with my chord script perfectly. 🙏

    Bingo:
    Screenshot 2025-06-20 at 11.38.07 PM.png

    The script:

    for (i = 0; i < chord1.length; i++) { Engine.setKeyColour(i, NoKeyColour); Synth.addNoteOff(1, chord1[i] + 60 + Octave1 + Chord1Choice - 1, 0); } //THANK YOU!
  • Just wondering about how this logic condition evaluates

    6
    0 Votes
    6 Posts
    149 Views
    VirtualVirginV

    @d-healey said in Just wondering about how this logic condition evaluates:

    @VirtualVirgin said in Just wondering about how this logic condition evaluates:

    Yes! That is the solution :)

    You can probably also get rid of the ternary operator at the end - ? true : false because the statement itself should return true or false.

    Yes, that makes sense. It is just evaluating to that anyway, so no need to make it redundant.

  • Articulation Switches Alternative Routing??

    Solved
    5
    0 Votes
    5 Posts
    109 Views
    ChazroxC

    @d-healey makes sense! 🙏

    @d-healey said in Articulation Switches Alternative Routing??:

    Of course not

    Its much appreciated!

  • Preset browser LAF - hover?

    7
    0 Votes
    7 Posts
    156 Views
    Christoph HartC

    @tomekslesicki I'm quoting your deleted post her because these are still valid questions:

    thanks! How do I know which css classes correspond to which elements? Also - I remember seeing a commit when you allowed LAF and CSS to co-exist. How do I approach this?

    This is documented in the Preset browser docs with a cheat sheet that shows all CSS identifiers for each component. However I've noticed that I haven't ported all the nice debugging tools that are available in the multipage dialog editor to the HISE CSS workflow, so I'll be doing that over time. For now I've added a simple overlay that shows some (but not all nested component IDs):

    I remember seeing a commit when you allowed LAF and CSS to co-exist

    Yes, this is now possible, you can give a single LAF object a style sheet as well as a script paint routine and it will use whatever is best (with the script functions always having the precedence over the style sheet definition with the exception of the popup menu styling which is CSS first).

    On some objects, obj.over works, on some it's obj.hover. Wouldn't it make sense to make both of these descriptions perform the same function in LAF?

    Yes that also annoyed me whenever I'm writing LAF functions. I obviously can't just correct the typo as this would break existing projects, but I can duplicate the property so that every LAF object that has over will get a hover property with the same value, then we can phase out over in 20+ years lol.

  • Changing playback position of audio looper

    2
    0 Votes
    2 Posts
    75 Views
    LindonL

    @marbey consider replacing your Audio Looper with a Sampler and using a SampleStart modulator there, remember the sample start modulator will work in percentages of the range you set up for the sample (wav file) itself in the sample editor

  • enable Midi select

    7
    0 Votes
    7 Posts
    122 Views
    ulrikU

    @d-healey thank you, good example!

  • FFT Analyser Path - Need help drawing the magnitude to height

    Unsolved
    20
    0 Votes
    20 Posts
    2k Views
    C

    @HISEnberg I couldn't make a better example snippet than @ustk has already done above. Maybe you can post your code and we can see if we can get it to work.

  • Chord Player Inversions || Help with Indexing!

    Solved
    10
    0 Votes
    10 Posts
    246 Views
    ChazroxC

    @dannytaurus it does also have a WaveGenerator for auditioning chords on its own as well. When the 2nd track is piggy backing the midi from the this I just mute the output and hear Serum only for instance. Its great!
    Its no more work than setting up a send track. All good with me.

  • Any particular reason that eval() does not work here?

    8
    0 Votes
    8 Posts
    108 Views
    d.healeyD

    @VirtualVirgin parseInt and trace

    I think I made a video about undocumented functions (if I didn't I should).

  • Memory leak with Engine.loadAudioFilesIntoPool

    12
    0 Votes
    12 Posts
    787 Views
    d.healeyD

    @Elezeid said in Memory leak with Engine.loadAudioFilesIntoPool:

    Am I really the first to run into this issue?

    First one to report it at least, I haven't tested for it though.

  • -1 Votes
    34 Posts
    5k Views
  • Real-Time Skew Control on Linked Knob – Need a Better Way

    4
    0 Votes
    4 Posts
    148 Views
    ILIAMI

    @Chazrox
    Thanks a lot, man! but it doesn’t seem to update the behavior after I tweak the Skew knob and then move Knob1.
    You need to hit compile every time after changing the skew value

  • Preset Browser callback?

    3
    0 Votes
    3 Posts
    129 Views
    L

    @d-healey Ahh gotcha - thanks as always d.healey!

    For the future:

    //PresetDisplay const var PresetNameLabel = Content.getComponent("PresetNameLabel"); UserPresetHandler.setPostCallback(function() { PresetNameLabel.set("text", Engine.getCurrentUserPresetName()); });

27

Online

1.8k

Users

12.1k

Topics

105.0k

Posts