• How to add Portamento

    Scripting
    48
    0 Votes
    48 Posts
    10k Views
    tsempireT

    @tsempire Is there a latest version of the script ?

  • Expansions preset tagging

    Scripting
    4
    0 Votes
    4 Posts
    43 Views
    ustkU

    @Lindon Couldn't the object described here be able to hold the tags (aka any custom things per preset) instead of relying on external JSON? 🤷

    Link Preview Image HISE | Scripting | UserPresetHandler

    An object for customizing the data model

    favicon

    (docs.hise.dev)

  • How to limit voice count per key?

    Newbie League
    12
    0 Votes
    12 Posts
    26 Views
    It_UsedI

    @d-healey said in How to limit voice count per key?:

    Use a MIDI list instead of an array.

    This is unlearned area for me. Which only gives me more interest and perseverance.

  • Forum has 503-ing a lot over the last week...

    Bug Reports
    4
    1 Votes
    4 Posts
    17 Views
    Dominik MayerD

    @Lindon
    Yup, confirmed..

    I will update the forum software in the next days trying to fix this.
    As always there might be some hiccups and newly introduced glitches, so please bear with me :)

    Best,
    D

  • How to add multiple parameters to snex_node in ScriptFX

    Scripting
    2
    0 Votes
    2 Posts
    23 Views
    Christoph HartC

    @blackbneard You're almost there, the only thing you did wrong was using more function arguments than necesssary. setParameter() always requires a single argument that contains the parameter value and all the branching is done with the template constant like you assumed.

    template <int P> void setParameter(double value) { if(P == 0) thresh = (float)value; if(P == 1) attack = (float)value; if(P == 2) release = (float)value; }
  • Building HISE Standalone on macOS with Xcode crashes

    Bug Reports
    3
    0 Votes
    3 Posts
    16 Views
    H

    @d-healey Thank you, I'll look into that option!

    Niklas

  • 0 Votes
    2 Posts
    28 Views
    S

    @ScreamingWaves

    EDIT: The standalone app was compiled successfully, it launches and works perfectly, vst and au fail compiling after a few seconds.

  • Recompiled Hise

    ScriptNode
    9
    0 Votes
    9 Posts
    403 Views
    HISEnbergH

    @hyperphonias I’m more of a humble DSP man myself 👩🏻‍🌾

    @d-healey is the man you want to talk to about these sorts of questions. He’s got a ton of materials online about this on YouTube and Patreon. I think this vídeo should answer your question.

    He also released a whole course on getting started in HISE which may be helpful to you:

    Link Preview Image Audio Dev School

    favicon

    (www.audiodevschool.com)

    Essentially you need to script the controls, not use the property editor here.

  • Control ScriptFX using code

    Newbie League
    9
    0 Votes
    9 Posts
    53 Views
    H

    @d-healey oh yeah you're right I was at the top of the block not of the entire dsp sorry

  • I wrote a bbd delay

    C++ Development
    12
    6 Votes
    12 Posts
    144 Views
    griffinboyG

    @Orvillain

    Oh yeah I tried a moog. It was arguably not very good haha.
    It becomes very dark in a very musty way.

    Unless you're willing to stack a few to get a high order it's going to sound quite blurry. Whether or not that's a bad thing is up to you.

    For refrence the real antialising filters from pedals like the memory man are steep. They are almost like low order elliptic lowpasses. That's the closest 'standard' filter response I found to the real thing. This allows them to have a high and crisp feeling cut-off (3.5k) while still killing aliasing.
    It's different to a synth filter.

    But that's what the hardware BBD effects do anyway.

  • 0 Votes
    39 Posts
    1k Views
    d.healeyD

    @ScreamingWaves Mini projects are a great way of debugging issues like this :)

  • Global DryWet

    General Questions
    7
    0 Votes
    7 Posts
    59 Views
    ChazroxC

    @elemen8t I just did this myself trying to mimic the RC-20's Intensity knob. What I ended up doing was putting each of my scriptNodeFX's inside of another wet/dry node, then when you have that done, script one slider/knob on your UI to adjust all 'GlobalMix' knobs together. So if you have a scriptnodeFX with a wet/dry setup already, put the whole thing inside of another one and let that be your 'GlobalMix' parameter. I hope I explained that well enough.

    Heres a working example.
    Screenshot 2025-10-04 at 11.24.40 PM.png

    Screenshot 2025-10-04 at 11.24.46 PM.png

    Best way? idk but it works.

    Screenshot 2025-10-04 at 11.32.17 PM.png

  • 3 Votes
    30 Posts
    7k Views
    OrvillainO

    @Christoph-Hart said in Please Increase parameter limit on Scriptnode custom nodes!:

    @Orvillain have you tried the new pagination feature? That allows you to subgroup parameters into pages. It looks like this is just an UI problem and having a node with 100 knobs will look very ugly anyways.

    Ahhh yeah, this seems like it will work. I did notice when you create a page, any hidden parameters end up going to it, rather than showing up on the unassigned page. But I can work with that.

  • PitchShift Node has Noise

    General Questions
    4
    0 Votes
    4 Posts
    146 Views
    xxxX

    @trillbilly @Yarost

    yes i tried different things and it still crackles

    i ended up using the pitch shifter in faust

    it sounds a little different but it works fine without any crackles

  • 0 Votes
    12 Posts
    127 Views
    VirtualVirginV

    @Christoph-Hart said in Looking into the hise_documentation on GitHub- any reason why a majority of the markdown files are empty for the Scripting API?:

    Aw poor @VirtualVirgin that was half an hour that you'll never get back

    "Aw poor @VirtualVirgin that was half an hour that you'll never get back"

    No worries! Was learning how to generate markdown files from text.
    I made text files of all of the classes in the API, then ran a python script to transform it to markdown. Just a learning experience. I then went on the generate JSON for the API with the following schema:

    { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Scripting API Method", "type": "object", "properties": { "class": { "type": "string", "description": "The class this method belongs to." }, "method": { "type": "string", "description": "The method name." }, "description": { "type": "string", "description": "A description of what the method does." }, "syntax": { "type": "string", "description": "The usage syntax string for the method." }, "parameters": { "type": "array", "description": "List of method parameters.", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The parameter name." }, "type": { "type": "string", "description": "The parameter type." }, "optional": { "type": "boolean", "description": "Whether the parameter is optional." }, "description": { "type": "string", "description": "A description of the parameter." } }, "required": ["name", "type", "optional", "description"], "additionalProperties": false } }, "returns": { "type": "string", "description": "The return type of the method." }, "examples": { "type": "array", "description": "Code examples demonstrating usage.", "items": { "type": "string" } } }, "required": [ "class", "method", "description", "syntax", "parameters", "returns" ], "additionalProperties": false }

    Which makes this for example:

    [ { "class": "Array", "method": "clear", "description": "Clears the array.", "syntax": "Array.clear()", "parameters": [], "returns": "", "examples": [ "const var arr = []; // Declare an array\n\n// preallocate 10 elements, do this if you\n// know how many elements you are about to insert\narr.reserve(10); \n\nfor(i = 0; i < 10; i++)\n{\n\t// Add an element to the end of the array\n\tarr.push(Math.randInt(0, 1000));\n}\n\nConsole.print(trace(arr)); // [ 523, 5, 76, 345, 765, 45, 977, 223, 44, 54]\n\narr.clear();\n\nConsole.print(trace(arr)); // []" ] }, { "class": "Array", "method": "clone", "description": "Creates a deep copy of the array.", "syntax": "Array.clone()", "parameters": [], "returns": "A deep copy of the array.", "examples": [ "const arr1 = [0, 1];\n\nvar arr2 = arr1;\n\n// Changing any element in arr2 will also change it in arr1\narr2[0] = 22;\nConsole.print(trace(arr1)); // [22, 1]\n\n// Reset the element 0 back to 0\narr1[0] = 0;\n\n// Cloning the array creates a new dataset in memory, separate from the original array\narr2 = arr1.clone();\nConsole.print(trace(arr1));\narr2[0] = 22;\nConsole.print(trace(arr2));" ] },

    I'm sure this is all elementary for you and David, but I'm just learning how to do some these data formats and transformations with parsers etc.

  • How to remove draggable filter grid lines?

    General Questions
    3
    0 Votes
    3 Posts
    40 Views
    xxxX

    @d-healey ah, yes thanks

    laf.registerFunction("drawFilterGridLines", function(g, obj) { });
  • Custom wavetables not included in build

    General Questions
    16
    0 Votes
    16 Posts
    448 Views
    xxxX

    gotcha thank you all

  • Preset Browser Tags....?

    Solved Scripting
    13
    0 Votes
    13 Posts
    1k Views
    R

    @Lindon How do you go about creating the buttons on the left for the tags? And if you click them do they filter the preset browser accordingly? ie clicking the Pad button will show you just the presets with a pad tag etc?

  • Wanted to share a release and HISE VSTs we created

    Blog Entries
    14
    12 Votes
    14 Posts
    243 Views
    StraticahS

    @Chazrox We used sample robot to do the multisample recordings. It essentially plays MIDI and records/ crops the receiving sounds. That way it is also possible to have some analog end of chain effects - or make monophonic synths polyphonic. :)

  • Preset tagging and buttons

    General Questions
    1
    0 Votes
    1 Posts
    26 Views
    No one has replied