Categories

  • General questions and announcements about HISE

    8k Topics
    69k Posts
    D

    @Christoph-Hart Okay great, this fix already allowed me to pass the plain string into the function.

    Another problem, that also was mentioned in the referenced thread is that data is not being processed as text/plain or plain JSON as it looks like HISE is sending the data as URL-encoded form data (like a web form submission)

    This leads to problems in calling the sign-in API endpoint of Moonbase - this is how Moonbase expects to receive sign-in data:

    POST https://demo.moonbase.sh/api/customer/identity/sign-in?email=test@example.com Content-Type: text/plain Password1234!

    I need to embed the mail into the URL endpoint and pass on the password as plain text. This is how I implemented it within HISE:

    makeHttpRequest("POST", "/customer/identity/sign-in?email=" + email, password, function(success, response)

    Due to the faulty URL encoding the data is being received in the format shown below:

    3a248157-0ea9-4a66-b1e2-c01622177b33-image.png

    I am not sure how to create a workaround for this..

  • Scripting related questions and answers

    2k Topics
    15k Posts
    OrvillainO

    @Christoph-Hart said in Coding in VS Code and HISE:

    If that is a popular request I can add a "external code editor mode" that can be enabled in the HISE compiler settings and will create file watchers with automatic file reload & recompilation.

    Let's talk pitfalls before I do that so we don't end up with something that trashes your code files:

    should we make external files read only in the HISE code editor if this mode is enabled? Since the "source of truth" will switch in this mode to the actual file content it would be easy to create conflicts if the files are modifiable from both ends, especially if a file is included in more than one script. how should we indicate that this mode is active? do we need a customizable interval for file checks or would a sensible default (eg. 3 seconds) be enough?

    No need for read only in the HISE code editor IMO. Hise should just poll the file(s) for changes, maybe each time the window is accessed?? I quite often make major changes in VS Code, and then come into HISE, wait a few seconds and then compile, spot an error, and then quickly fix it directly in HISE. VS Code picks up the changes instantly.

    A customizable interval shouldn't really be needed, again IMO. It should just be as quick and transparent as possible. Like with Notepad++, VS Code, and other text editors.

  • To share HiseSnippets, Interface Elements, GUI, UI/UX, Panel LAF etc..

    186 Topics
    2k Posts
    d.healeyD

    @Jaytove I need to see your code

  • All about ScriptNode DSP nodes, patches, SNEX and recipes.

    326 Topics
    2k Posts
    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.

    https://youtu.be/1rs0w4MDNA0?si=kfDhvlTHNvPa1Uof

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

    https://www.audiodevschool.com/profile/infolibrewave-com/?view=instructor

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

  • A subforum for discussing Faust development within HISE

    109 Topics
    885 Posts
    resonantR

    @Mighty23

    Thank you for the explanation. I don't mean a graphic, but a modulation like the one in the image below. Not separate Right and Left, but a single one (like the scriptnode gate, comp...etc.).

    alt text

  • If you need a certain feature, post it here.
    610 Topics
    5k Posts
    d.healeyD

    @Christoph-Hart Tis Done

    I think it would be a good idea perhaps to also have a function to set the loop start/end, but I didn't take the time to figure it out.

  • Develop better software through collaboration and shared knowledge. Not just about coding β€”> covering the entire journey, from development to launching and promoting plugins or software.

    99 Topics
    832 Posts
    A

    @d-healey Thanks πŸ‘

  • If you encounter any bug, post it here.
    2k Topics
    12k Posts
    ustkU

    @d-healey @Christoph-Hart And I just added two more πŸ˜†
    The forum was just giving me a 503 error for an hour, I think it was acting against... ME AS A PERSECUTED PERSON!!!

    Yeah alright, I divided the connections into 4 sub groups... I don't intend to modulate them though so all good πŸ‘

  • Post your example snippets that you want to add to the official HISE snippet database here. We'll revise it, upload it to the repo and delete the post when finished.

    16 Topics
    103 Posts
    R

    @HISEnberg yes I saved each one before compiling but still got the issues.

    I only installed 4.1.0 the other day but have no issues building networks on my older version. I'll do a test nest time I'm at the laptop and see.

    And yes I'm on windows, ah ok you're getting them on windows too...at least I'm not going mad then. Wonder what the issue is though?

  • Everything related to the documentation (corrections, additions etc.) can be posted here
    67 Topics
    457 Posts
    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.

  • Collection of Blog Entries

    80 Topics
    745 Posts
    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. :)

  • The nerdy place for discussing the C++ framework
    167 Topics
    1k Posts
    Christoph HartC

    Is there a way to update the scriptnode UI with the relevant new parameter

    Not without hacks. The best way of thinking about this is a black box communication of parameters into the node. Now if you want to update a UI state that you display on the plugin interface, global cables (and their data callback) are the way to go, there you can easily pack everything up into a nice JSON and send it back to HISE Script (on a deferred thread!), but I wouldn't recommend going the extra mile of updating the internal scriptnode parameters only so that you can look at them in the network with the right value.

19

Online

2.0k

Users

12.7k

Topics

109.9k

Posts