• Help with css slider

    Solved
    13
    0 Votes
    13 Posts
    131 Views
    ustkU

    @DanH A chance ChatGPT's here to debug Hise...

  • Unknown function error

    3
    0 Votes
    3 Posts
    37 Views
    F

    @d-healey Fixed, thanks!

    I'm new to HISE so I'm bound to do beginner mistakes lol

  • 0 Votes
    2 Posts
    43 Views
    d.healeyD

    @Taihongcraft But the node within a soft bypass node

  • Stretch player node

    1
    0 Votes
    1 Posts
    37 Views
    No one has replied
  • Background Task || Help me understand this please.

    Unsolved
    9
    0 Votes
    9 Posts
    122 Views
    ChazroxC

    @ustk aaahhhh here you go! haha. I gotta see this...brb.

  • Control velocity from each incoming midi note with a Knob / Slider?

    7
    0 Votes
    7 Posts
    95 Views
    d.healeyD

    @Rognvald You can put it all in the interface MIDI processor if you want to keep things simple - just avoid doing any UI stuff in the MIDI callbacks.

    // This sort of thing should be avoided in a non-deferred script. Buttons[index].setValue(true); Buttons[index].changed();

    However the ideal situation is you separate UI logic from MIDI processing by using separate processors for individual tasks.

    You can add the velocity code I described above alongside your current script.

    Those reg variables you have should most likely be const. Rule of thumb is if the values are fixed (or it's an array or object) use a const. If the value is going to be dynamic then use a reg.

  • BackgroundTask.setFinishedCallback() || How to get status....

    Unsolved
    1
    0 Votes
    1 Posts
    31 Views
    No one has replied
  • Syntax Error ?

    Solved
    5
    0 Votes
    5 Posts
    82 Views
    ChazroxC

    @Lindon I havent gotten that one much before. I get whats happening now. 🙏

  • Setting ControlCallback w/ Loops ?

    Solved
    17
    0 Votes
    17 Posts
    157 Views
    Oli UllmannO

    @d-healey
    Yes, that's right! Thanks for the tip! :-)

  • CableBox

    18
    0 Votes
    18 Posts
    343 Views
    RetromelonR

    Hey @Orvillan,

    No big deal if I didn’t know how to post a snippet. Better to ask than mess around blindly, right? I’m really new to coding, mostly picking it up bit by bit.

    I love making my own tools and plugins, experimenting with sounds, and sharing my stuff for free with the community. I started with Synthedit, but it’s not really modernized, so that’s why I decided to switch to HISE.

    Honestly, I’m mainly a music producer, graphic designer, and sound engineer, and I want to put all of my passions together to create the plugins that I want to make. Since coding isn’t one of my skills, I have no choice but to learn it step by step to help me further with plugin development, since HISE requires some coding knowledge to work around.

  • License Manager (Wordpress) Deactivation help

    11
    0 Votes
    11 Posts
    240 Views
    It_UsedI

    @Christoph-Hart Thanks, I just don't know how to make my problem noticed, it doesn't bother me, but I had no other way out. I could write to you in private messages, but that's even worse than doing it in another post. I heard you, thanks again, and sorry again!

  • random float 0. - 1. how to?

    6
    0 Votes
    6 Posts
    75 Views
    iamlampreyI

    @Rognvald No problem 🙂

    This is a bit cleaner:

    inline function onButton6Control(component, value) { if (!value) { return; } // works the same as if (value) but the scope is a little bit cleaner local Knob1_value = Math.randInt(20, 20000); // this is already fine local Knob3_value = Math.random(); // you don't need range here, Math.random() is already within the range you're expecting Knob1.setValue(Knob1_value); Knob1.changed(); // these can be single lines if you prefer Knob3.setValue(Knob3_value); Knob3.changed(); }; Content.getComponent("Button6").setControlCallback(onButton6Control);

    If Knob1 and Knob3 already have their own Control Callbacks, you also don't need to independently call these:

    SimpleGain1.setAttribute(SimpleGain1.Gain, Knob1_value); // already handled by Knob1.changed(); SimpleGain2.setAttribute(SimpleGain2.Gain, Knob3_value); // already handled by Knob3.changed();

    Control.changed() is essentially simulating changing the control with the mouse, so you're basically calling the setAttribute function twice.

  • buttonpacks, panels, buttons and midi note fun...HELP! lol

    Solved
    4
    0 Votes
    4 Posts
    109 Views
    J

    @ulrik ahhhhhhh! perfect! thanks so much! this really simplifies everything!

  • Waveform how to get playback position?

    Unsolved
    19
    0 Votes
    19 Posts
    2k Views
    Christoph HartC

    @HISEnberg said in Waveform how to get playback position?:

    Your version is giving the actual sample value so it seems preferable:

    It also runs if your waveform is not visible.

  • Check if (!FILE) do this...

    Solved
    4
    0 Votes
    4 Posts
    64 Views
    ChazroxC

    @Oli-Ullmann @iamlamprey I promise you guys I was looking for this. hahaha. Thank You 🙏

    That was it...Thank you guys!

  • How To Link Keyboard Keys to Buttons

    5
    0 Votes
    5 Posts
    173 Views
    W

    @d-healey THANK YOU! IT WORKS PERFECT!

  • This topic is deleted!

    Unsolved
    7
    0 Votes
    7 Posts
    33 Views
  • FileSystem / How tdo I set USER specified root folder?

    Unsolved
    10
    0 Votes
    10 Posts
    262 Views
    ChazroxC

    @d-healey I eneded up figuring that out reading thru the apis.....then everything went baaaad. lol

  • Multiple start and end ranges in a single AudioLoopPlayer

    12
    0 Votes
    12 Posts
    931 Views
    griffinboyG

    @Chazrox

    Ah I don't unfortunately, not anything I can share freely at least.

    You can paste the code I sent above, into chat gpt and ask it questions about the workings of it

  • Query multiple TOKENS? || Please advise!

    Unsolved
    11
    0 Votes
    11 Posts
    188 Views
    dannytaurusD

    Yeah, regex is your friend here. The HISE regex seems to be missing a lot of features but you can still condense it down a bit like this:

    const kickPattern = "kick|kck|kk|bd|bassdrum|bass\sdrum|bassd"; const snarePattern = "snare|snar|snr|sn"; const hatPattern = "hat|hh|clh|cl|oph|op"; inline function stringMatchesPattern(str, pattern) { return Engine.matchesRegex(str.toLowerCase(), pattern); } Console.print(stringMatchesPattern("Kick".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Kck".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Kk".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("kick".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("kk".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("BD".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Bd".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("bd".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("BassDrum".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Kick".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Kick".toLowerCase(), kickPattern)); Console.print(stringMatchesPattern("Snare".toLowerCase(), snarePattern)); Console.print(stringMatchesPattern("Snr".toLowerCase(), snarePattern)); Console.print(stringMatchesPattern("Hat".toLowerCase(), hatPattern)); Console.print(stringMatchesPattern("Clh".toLowerCase(), hatPattern));

    If some of the usual regex tools worked, we could have shorter patterns like this:

    const kickPattern = "ki?c?k|b(ass)?\s?d(rum)?"

    Although the longer one might be easier to read and understand I guess.

34

Online

2.0k

Users

12.8k

Topics

111.3k

Posts