• Absolute Samples - Windows 11

    Unsolved General Questions
    4
    0 Votes
    4 Posts
    19 Views
    David HealeyD

    @HISEnberg said in Absolute Samples - Windows 11:

    Yea you can write a bash script to fix this.

    Seems like overkill unless you have a lot of sample maps. You can open the xml in a text editor and use find/replace.

  • 8 Votes
    13 Posts
    129 Views
    J

    @bendurso i setup a mock moonbase storefront on my squarespace website,
    but i was curious about the JUCE module that can work with License activations, which i think only works with juce 8?

  • Something probably broken.

    Bug Reports
    2
    0 Votes
    2 Posts
    45 Views
    LindonL

    @Quemis what version of HISE are you using? have you compiled from the latest development version?

  • Asset Manager

    General Questions
    11
    0 Votes
    11 Posts
    154 Views
    HISEnbergH

    @Christoph-Hart Looks very promising. The setup seems straightforward enough (the robot maybe generated too much text description). Happy to throw some FX Libraries and HIsescripts at it if you need some beta testing before launching. 😁

  • What does this above value means

    General Questions
    2
    0 Votes
    2 Posts
    32 Views
    dannytaurusD

    @NISHI_MUSIC It means "minus infinity".

    Since LUFS are measured with 0dB at the top, and all the values are negative values, the 'bottom' value is negative infinity.

    You see it when there's no signal present to measure.

  • JUCE error while exporting VST

    General Questions
    17
    0 Votes
    17 Posts
    116 Views
    J

    @David-Healey said in JUCE error while exporting VST:

    @Jeetender How big is it?

    Content.makeFrontInterface(700, 400);

    const var scriptFx = Synth.getEffect("Script FX1");
    const var buttons = [];
    const var panels = [];

    for (i = 0; i < 5; i++)
    {
    buttons[i] = Content.getComponent("Button" + (i));
    panels[i] = Content.getComponent("Panel" + (i));
    buttons[i].setControlCallback(onButtonControl);
    }

    inline function onButtonControl(component, value)
    {
    if (!value) return;

    local idx = buttons.indexOf(component); local compSwitchValue = idx * 0.25; // Show corresponding panel for (i = 0; i < 5; i++) { panels[i].showControl(i == idx); buttons[i].setValue(i == idx); } scriptFx.setAttribute(0, compSwitchValue);

    }

    //const var scriptFx = Synth.getEffect("Script FX1");
    const var mtbuttons = [];
    const var mtpanels = [];

    for (j = 0; j < 3; j++)
    {
    mtbuttons[j] = Content.getComponent("MtrBut" + (j));
    mtpanels[j] = Content.getComponent("MtrPnl" + (j));
    mtbuttons[j].setControlCallback(onMtrButControl);
    }

    inline function onMtrButControl(component, value)
    {
    if (!value) return;
    local ide = mtbuttons.indexOf(component);
    local compSwitchValue = ide * 0.25;

    for (j = 0; j < 3; j++) { mtpanels[j].showControl(j == ide); mtbuttons[j].setValue(j == ide); }

    }

    const var rm = Engine.getGlobalRoutingManager();
    const var cable = rm.getCable("global_cable");

    const var Knob1 = Content.getComponent("Knob1");

    cable.registerCallback(function(value)
    {
    var dB = Engine.getDecibelsForGainFactor(value);
    dB = Math.max(-60, dB); // Clamp to -60dB
    Knob1.setValue(dB);
    Knob1.changed(); // Update UI
    }, AsyncNotification);

  • 5 Votes
    2 Posts
    34 Views
    ChazroxC

    Epic!

  • Build errors with latest commits on Linux

    Bug Reports
    1
    0 Votes
    1 Posts
    20 Views
    No one has replied
  • Crash when clicking Parametriq EQ1 in module tree

    General Questions
    1
    0 Votes
    1 Posts
    26 Views
    No one has replied
  • 0 Votes
    3 Posts
    36 Views
    ustkU

    @Christoph-Hart alt text

  • 0 Votes
    32 Posts
    1k Views
    David HealeyD

    I also emailed the Araelium dev and he said the situation is the same with Package Builder. The limitation is with the Apple installer which all pkg files use.

  • Pro Tools is not recognizing my AAX plugin.

    General Questions
    8
    0 Votes
    8 Posts
    77 Views
    lijas90L

    @svkpowa thanks!

  • It´s possible to change Popup Data in execution time?

    Scripting
    11
    0 Votes
    11 Posts
    96 Views
    jadgJ

    @ustk Thank you very much. i,ve created a similar solution a few hours ago. I don´t use Broadcaster just the proper scriptSlider callback ,a "InlineStyleSheet" for the valuePopup Label and a Timer:

    Content.makeFrontInterface(400, 200 ); const var Label1 = Content.getComponent("Label1"); const var lblCss = Content.createLocalLookAndFeel(); Label1.set("text", "ValuePopup"); const var valuePopupTimer=Engine.createTimerObject(); valuePopupTimer.setTimerCallback(function(){ Label1.set("visible", false) ; valuePopupTimer.stopTimer(); }); // Label Laf lblCss.setInlineStyleSheet(" * { letter-spacing: 1px; font-weight: bold; font-size: 12; } /** Render the default appearance. */ label { background-color: var(--bgColour); color: var(--textColour); border-radius: 5px; border-size: 1px text-align: centred; text-shadow: 2px 2px 5px rgba(0,0,0,0.6); } /** If you edit the text, it will use this selector. */ input { text-align: left; padding-top: 0.5px; padding-left: 50px; padding-right: 20px; caret-color: white; font-weight: bold; } /** Style the text selection with this selector. */ ::selection { background: #50FFFFFF; color: white; } "); Label1.setLocalLookAndFeel(lblCss); inline function onKnob1Control(component, value) { Label1.set("visible",true); Label1.set("text", Engine.doubleToString(component.getValue(), 1) +" "+ component.get("suffix")); Label1.set("width", Engine.getStringWidth(Label1.get("text"),Label1.get("fontName"), Label1.get("fontSize"), 0.15)); Label1.set("x",component.get("x")-(Label1.get("width")/2)+(component.get("width")/2)); Label1.set("y",component.get("y")-20); valuePopupTimer.startTimer(1100); }; Content.getComponent("Knob1").setControlCallback(onKnob1Control); Content.getComponent("Knob2").setControlCallback(onKnob1Control);

    Probably the best solution is a combination of yours and mine. Thank you very much again.

    ezgif-4b86ba577ac754d8.gif

  • New version removes show text box

    Bug Reports
    11
    0 Votes
    11 Posts
    47 Views
    S

    @David-Healey Wow haha. Works fine on PC, everything is fine there. I didn't feel the need to change it, since it was perfectly working for me. And sometimes updates cause troubles.

  • how can i create a sin lfo in scriptnode

    General Questions
    3
    0 Votes
    3 Posts
    38 Views
    N

    @ustk thank you so much ill try it
    Thanks again im so happy😄

  • 0 Votes
    13 Posts
    124 Views
    David HealeyD

    @ustk Nice!

  • Trying to give back in my own small way - KnobForge!

    General Questions
    1
    3 Votes
    1 Posts
    56 Views
    No one has replied
  • Matrix Modulator Smoothing Control

    General Questions
    7
    0 Votes
    7 Posts
    75 Views
    ustkU

    @DanH just set it to zero then you’ll eat as many kinder as you want (pretty sure this sounds weird in German… 😬)

  • Toggle Oversample container in Scriptnode

    General Questions
    3
    0 Votes
    3 Posts
    38 Views
    DanHD

    @ustk Sexy, thanks!!!

  • Handling Latency for Delay-Based Modulation Effects

    General Questions
    2
    0 Votes
    2 Posts
    69 Views
    HISEnbergH

    @Yinxi Good question.

    Just to start, latency refers to a short period of delay (usually measured in Samples in DSP) when an input signal enters the plugin and when it exits the plugin. In many cases that is not desirable so HISE (using the JUCE backend) has a function called Engine.setLatnecySamples. This works by telling the host/DAW: "Hey, this plugin introduces X samples of latency, so adjust the signal so it is X samples further ahead in time".

    An example of this happening in Scriptnode is if you use oversampling, which will generally introduce a few samples of latency. So you need to calculate the amount of latency introduced (Use Tools>Check latency of signal chain) and use Engine.setLatencySamples to adjust it. This function is dynamic, meaning you can adjust the number of samples depending on the latency you are introducing. Example: if you have a knob that adjusts the oversample size from 2x to 4x, this might cause your latency to jump from 1 samples to 2 samples. You can write an if statement to change this and the host will be updated:

    // pseudo-code if (OversampleKnob = 2x) Engine.setLatencySamples(1); else if (OversampleKnob = 4x) Engine.setLatencySamples(2);

    Small note: Each host has a different way of handling the information it receives from a plugin so results may vary here. You need to make sure to update the latency report once when initializing the plugin, and any time after if changes(this is probably updated once per block).

    But returning to your earlier question about vibrato, if you consider that latency is just a delayed signal, that is not necessarily a bad thing. Vibrato is basically just a time-varying delay (delay line modulated by an LFO). The pitch shifting comes from the rate of change of the delay. In other words, the delay(or latency) introduced by the Vibrato is precisely what you want, so there is no reason to adjust for the latency.

    This is all an oversimplification but hopefully clarifies things a bit. You can test this out in a DAW to confirm as well. Run an impulse through your plugin and record the output and see how they line up.