• Sample import dialog menu + alert window LAF (Example)

    3
    1 Votes
    3 Posts
    226 Views
    C

    @David-Healey Oh yes! I did watch that video and have been using the unicode with buttons, but never wrapped my head using it that way.

    (Might be easier for newbies just to copy and paste this in!)

  • Anyone doing this to declare components?

    11
    0 Votes
    11 Posts
    577 Views
    David HealeyD

    @dannytaurus said in Anyone doing this to declare components?:

    Do you mean like this?

    Kind of.

    I split my scripts into lots of separate files, preferably one file per part of the project - what constitutes a part could be functionality, or it could be UI, I often have one namespace per main UI panel.

    For example, I'll have a file called Presets.js which contains the Presets namespace and this contains everything related to preset handling, including the UI.

    I'll have another file for handling expansions.

    I'll have another one that handles a drop down menu in my plugin's header. This will have items for opening the Settings page, the About page, etc. This is an interesting one because the menu itself shouldn't know anything about the Settings or About pages, it doesn't need to.

    But the Settings and About pages are aware of the menu's existence. So using broadcasters those namespaces can watch the menu and if the Settings option is selected the Settings namespace will show the correct panel, if the About option is selected then the About namespace will handle it. Everything is very self contained and links between namespaces/parts of the project are minimised as much as possible.

    Here is what the on init section looks like for my current project. Nice and clean 😀

    f0136148-47c7-4818-82cf-fc6d90abf1d0-image.png

  • 0 Votes
    2 Posts
    172 Views
    David HealeyD

    Each time you add a new entry the indexes will shift. Do a search of the forum and you'll find some solutions.

    One of the simplest is to use the item's text instead of the combobox value, but that isn't always suitable, it depends on how you have things setup.

  • Hise with Gumroad licensing system

    2
    0 Votes
    2 Posts
    240 Views
    bendursoB

    @Avián You should use Server.callWithPOST
    https://docs.hise.audio/scripting/scripting-api/server/index.html#callwithpost

    something like this based on what I read from the docs of gumroad (i'm not using gumroad, so I don't know if it works)

    Server.setBaseURL("https://api.gumroad.com"); const var params = { "product_id": "1234", "license_key": "your_license_key", "increment_uses_count": "true" }; Server.callWithPOST("v2/licenses/verify", params, function(status, response) { if(status == Server.StatusOK) { if(response.success) { Console.print("License valid"); Console.print("Uses: " + response.uses); Console.print("Product: " + response.purchase.product_name); } else { Console.print("License invalid"); } } else { Console.print("HTTP error: " + status); } });
  • Sampler playhead reset on noteOff

    1
    0 Votes
    1 Posts
    102 Views
    No one has replied
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    14 Views
    No one has replied
  • Automation problem in daw (get stuck when hit play)

    1
    0 Votes
    1 Posts
    82 Views
    No one has replied
  • XY Pad Gain Scaling...

    Solved
    3
    0 Votes
    3 Posts
    191 Views
    LindonL

    @JamesC yeah thats one way - but for us this algo approach wasnt quite good enough so we added a simple array of gain(dB) values that the xy pad reads to get the correct gain for its current position - and thus allowed us to have a little "bump" in the middle

  • .set("parentComponent",??? Canw e do this?

    2
    0 Votes
    2 Posts
    139 Views
    David HealeyD

    @ILIAM You can't dynamically change the order of UI components.

  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • Modulation Matrix CSS

    3
    0 Votes
    3 Posts
    159 Views
    ustkU

    @dannytaurus Thanks, yeah I tried using th as well, it does nothing...

    I agree, but unfortunately I am very limited with CSS, so I usually don't know when I'm doing wrong and when it's a Hise issue/limitation

    AI is of no help because of the particular way Hise handles CSS. Conventional stuff often don't work

  • Custom Display panel questions...

    Unsolved
    9
    0 Votes
    9 Posts
    389 Views
    LindonL

    @JamesC said in Custom Display panel questions...:

    inline function onrvbfilenameControl(component, value)
    {
    local currentReverb = ConvolutionReverb1.getCurrentlyLoadedFile();
    if (currentReverb == "")
    {
    rvbfilename.set("text", currentReverb);
    }
    else
    {
    rvbfilename.set("text", currentReverb);
    }
    rvbfilename.repaint();
    };

    Ok well lets look at this:

    local currentReverb = ConvolutionReverb1.getCurrentlyLoadedFile();

    is trying to get a file name..... from ConvolutionReverb1....

    ConvolutionReverb1 is an AudioSampleProcessor, because of this:

    const var ConvolutionReverb1 = Synth.getAudioSampleProcessor("Convolution Reverb1");

    but when we look in the documentation at AudioSampeProcessor it has no method called
    .getCurrentlyLoadedFile();

    https://docs.hise.dev/scripting/scripting-api/audiosampleprocessor/index.html

    ..it does however have:

    https://docs.hise.dev/scripting/scripting-api/audiosampleprocessor/index.html#getfilename

  • Empty slot for combobox?

    Solved
    7
    0 Votes
    7 Posts
    399 Views
    S

    @David-Healey thanx, this helps a lot!! :D

  • 0 Votes
    2 Posts
    158 Views
    David HealeyD

    @Yinxi You can use either parameter\processor id or a control callback. If you want to do two things then it must all be in the callback.

    Or you can use a broadcaster.

  • Scriptnode - Midi frequency

    3
    0 Votes
    3 Posts
    167 Views
    B

    @ulrik

    Ohh yess!! Thank you so much! You helped me a lot. I am good at c++ bad i have no idea about scriptnode.

    Thanks!!

  • Webview cant find index file.....Help please.

    Solved
    13
    0 Votes
    13 Posts
    589 Views
    ChazroxC

    @VirtualVirgin whaaa 500mb?? Its take alot for a normal browser window to hit that much ram. What does ur plugin do?

  • 5 Votes
    7 Posts
    490 Views
    David HealeyD

    The Scripting Course Bundle launch offer expires in 2 days.

  • Paint Routine on Startup not working

    5
    0 Votes
    5 Posts
    277 Views
    P

    @pgroslou Thanks David. I was able to find an example using LAF in the HISE documentation that works well and solves my problem. Much better than using Paint Routines. 👍

  • Creating a MIDI copier/transposer in HISE

    11
    0 Votes
    11 Posts
    563 Views
    F

    @David-Healey An issue I run into now is when

    function onNoteOn() { for (note in track) { if (note.isNoteOn()) { Console.print(note.dump()); Console.print("Note: " + note.getNoteNumber()); //Synth.playNote(note.getNoteNumber(), note.getVelocity()+1); //Synth.playNote(note.getNoteNumber()+12, note.getVelocity()+1); //Synth.playNote(note.getNoteNumber()-12, note.getVelocity()+1); } //Synth.noteOffByEventId(note.getEventId()); } } function getNoteOn(list, noteOn) { for(note in track) { if(note.isNoteOn() && note.getEventId() == noteOn.getEventId()) return note; } } MIDIPlayer1.flushMessageList(track);

    I uncomment any of the synth.playNote function calls, it plays very distorted, notes playing for far longer than they are supposed to, like I mentioned earlier.

  • HISE MIDI FX

    71
    0 Votes
    71 Posts
    4k Views
    S

    After all struggling I've decided to switch to pure C++ VST3 programming.

13

Online

2.3k

Users

13.7k

Topics

118.8k

Posts