• How to Disable Mouse Interaction on Slider Without Changing Color?

    4
    0 Votes
    4 Posts
    549 Views
    Christoph HartC

    Even I did this trick in my last project after complaining to the designer that he should stop sending me half transparent filmstrips, oops…

  • Preset Component Callbacks Triggering Twice on Startup

    Solved
    11
    0 Votes
    11 Posts
    844 Views
    C

    Maybe…but what if the plugin interface could expand up, instead of just down.? Think about it.

    I'm just kidding. I don't even understand what you wrote. Is 'callback' even a real word? How is there a tiny picture of me next to my name? This all raises too many questions.

  • Draw Alert Window -> LookAndFeel

    3
    0 Votes
    3 Posts
    241 Views
    Oli UllmannO

    @d-healey thank you.

  • Panel Timer best practise

    7
    0 Votes
    7 Posts
    350 Views
    Oli UllmannO

    @aaronventure
    Good point, thanks to you! I actually only use it for UI animations. So it's actually useful that the timer is stopped when the UI is closed, as it doesn't consume CPU resources.

  • C++ Global Cables: How to manage multiple cables?

    Solved
    5
    0 Votes
    5 Posts
    381 Views
    griffinboyG

    Thanks I took a proper look and I was just misunderstanding it.

    The instructions tell you exactly what to do.

    I think I fell into a trap because I coded up my nodes when i only had one global cable.

    When you ask Hise for the GC C++ code for more than one cable, it becomes clearer how it's working.

    // Use this enum to refer to the cables, eg. this->setGlobalCableValue<GlobalCables::GC1>(0.4) enum class GlobalCables { GC1 = 0, GC2 = 1 }; // Subclass your node from this using cable_manager_t = routing::global_cable_cpp_manager<SN_GLOBAL_CABLE(70357), SN_GLOBAL_CABLE(70358)>;
  • On Note On

    6
    0 Votes
    6 Posts
    512 Views
    David HealeyD

    @Lawrence said in On Note On:

    I have opened that function and it still doesn't show what MIDI notes are coming in. I'll have to dig deeper.

    Snippet

  • custom peak meter.

    5
    0 Votes
    5 Posts
    765 Views
    Oli UllmannO

    @ulrik
    @d-healey
    Thank you very much, that has solved the problem! I should have had a look at the documentation! :-)

  • String.split() bug??

    5
    1 Votes
    5 Posts
    327 Views
    dannytaurusD

    Checked the source and the highlighted line in the split function substrings only the first character of the separator so it seems intentional.

    // HISE/hi_scripting/scripting/engine/JavascriptEngineObjects.cpp static var split(Args a) { const String str(a.thisObject.toString()); const String sep(getString(a, 0)); StringArray strings; if (sep.isNotEmpty()) strings.addTokens(str, sep.substring(0, 1), ""); // 👈 THIS LINE else // special-case for empty separator: split all chars separately for (String::CharPointerType pos = str.getCharPointer(); !pos.isEmpty(); ++pos) strings.add(String::charToString(*pos)); var array; for (int i = 0; i < strings.size(); ++i) array.append(strings[i]); return array; }
  • How do Presets Load Before onInit?

    Unsolved
    9
    0 Votes
    9 Posts
    600 Views
    C

    @Orvillain Yes I am.

  • Absolute X/Y for mouse?

    4
    0 Votes
    4 Posts
    533 Views
    ustkU

    @Dan-Korneff If they are real components then @aaronventure is right, but if they are child panels (from addChildPanel()) then I reckon having an issue not getting the right global position

  • Sampler Group Fade

    7
    0 Votes
    7 Posts
    339 Views
    Oli UllmannO

    @d-healey Yes, I have now tried it again. Apparently there is a problem in my project. It worked with a completely new project! Thank you very much! :-)

  • Broadcasters working inside HISE but not inside compiled plugin

    Solved
    15
    0 Votes
    15 Posts
    842 Views
    OrvillainO

    @aaronventure No idea tbh!!

  • Dynamic Sub ComboBox

    7
    0 Votes
    7 Posts
    1k Views
    Matt_SFM

    @Christoph-Hart Perfect, it's working now with your fix. Thank you very much!

    ComboBox1.set("items", itemList.join("\n"));

    Yeah, I almost never use this method, I didn't thought about it. Thank you also for the reminder :)

  • Frontend macros - display UI component?

    2
    0 Votes
    2 Posts
    385 Views
  • Is it possible to set a custom StepSize

    3
    0 Votes
    3 Posts
    385 Views
    Adam_GA

    @ustk you sir are the man, thank you

  • Updating Default Preset?

    Solved
    5
    0 Votes
    5 Posts
    316 Views
    C

    @Christoph-Hart Thank you, understood.

  • Colours

    7
    0 Votes
    7 Posts
    846 Views
    U

    @Shelest thanx )))

  • Best Way to Implement an Infinite Text Console?

    Solved
    5
    0 Votes
    5 Posts
    361 Views
    C

    @ustk Very cool - I gave up a lot quicker, lol. Thanks on the offer, very kind of you.

  • Controlling FX from a slider?

    6
    0 Votes
    6 Posts
    591 Views
    G

    @d-healey Thanks David

  • Open-Source Faust Transient Shaper

    11
    5 Votes
    11 Posts
    3k Views
    orangeO

    Does this code work for you?

    When I load this, as soon as I tweak the Sustain knob, it breaks the sound and creates sound glitch.

    declare name "Whetstone Transient Shaper"; declare author "Evermind"; import("stdfaust.lib"); WINDOW = 30 / 1000; low_cutoff = hslider("v:Whetstone Transient Shaper/[2]Low Cutoff[unit:Hz]",10,10,20000,10); high_cutoff = hslider("v:Whetstone Transient Shaper/[3]High Cutoff[unit:Hz]", 20000,20,20000,10); do_monitor = button("v:Whetstone Transient Shaper/h:[4]Monitoring/[0]Monitor selected band") : ba.toggle : vbargraph("v:Whetstone Transient Shaper/h:[4]Monitoring/[1]ON[style:led]", 0, 1); attack = hslider("v:Whetstone Transient Shaper/[0]Attack[unit:dB]",0,-12,+12,0.1) : ba.db2linear : si.smoo; sustain = hslider("v:Whetstone Transient Shaper/[1]Sustain[unit:dB]",0,-12,+12,0.1) : ba.db2linear : si.smoo; process = sp.stereoize(split_shape_merge); split_shape_merge = _ : split_active_and_passive : (_ <: _ * get_gain(_ : change)), ba.bypass1(do_monitor != 1, *(0)) :> _; //split signal into two parts $active, $passive //$active is resonant low- and high-passed between low_cutoff and high_cutoff respectively. This is fed directly to output if monitoring is on //$passive is resonant high- and low-passed between low_cutoff and high-cutoff respectively split_active_and_passive = _ <: (fi.resonhp(low_cutoff, 1, 1) : fi.resonlp(high_cutoff, 1, 1)), (fi.resonlp(low_cutoff, 1, 1) + fi.resonhp(high_cutoff, 1, 1)); //$active is analyzed with RMS over N ms divided by a lag filter applied to the RMS to get a rise speed over time to get $change change = ba.slidingRMS(ba.sec2samp(WINDOW)) <: _ - si.lag_ud(WINDOW, WINDOW); //If $change is positive, $gain is $attack //If $change is negative, $gain is $sustain //Smooth $gain get_gain(x) = ba.if(x > 0, attack,sustain) : si.lag_ud(WINDOW,WINDOW);

18

Online

2.5k

Users

13.9k

Topics

120.9k

Posts