HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. VirtualVirgin
    3. Posts
    • Profile
    • Following 1
    • Followers 0
    • Topics 131
    • Posts 487
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Is there a way to search all included .js files?

      @aaronventure Thanks!
      This is great! What a useful feature.

      posted in General Questions
      VirtualVirginV
      VirtualVirgin
    • Is there a way to search all included .js files?

      I seem to be using a lot of .js files and so I'm just checking to see if there is a way to search terms in all of them at once, rather than switching tabs and performing the same search on each one.

      posted in General Questions
      VirtualVirginV
      VirtualVirgin
    • RE: Is there a guide for the SVG to path converter?

      @d-healey Thanks, I think the

      ScriptPanel.setMouseCursor(var pathIcon, var colour, var hitPoint)
      

      only accepts paths though.

      That is the only reason I am converting the SVG glyphs to paths.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: How can I efficiently remove a key from an object?

      So this works but it's just a little clunky:

      var testObject = {"testKey1": "testValue1", "testKey2": "testValue2"};
      
      // removes a key from an object, but just be aware that it does not edit the object in place
      // you must use the new object made here to replace the original
      inline function objectRemoveKey(obj, keyToRemove)
      {
          local newObj = {};
      
          for (key in obj)
          {
              if (key != keyToRemove)
              {
                  newObj[key] = obj[key];
              }
          }
          
          return newObj;
      }
      
      var testRemove = objectRemoveKey(testObject, "testKey1");
      
      Console.print(trace(testRemove));
      
      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Is there a guide for the SVG to path converter?

      @d-healey Oop! Sorry I forgot to add this image:Screenshot 2025-06-23 at 6.41.19 PM.png

      Under the question "What are these different path options?".
      They are the path options for the SVG to path converter.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • How can I efficiently remove a key from an object?

      "delete" does not work as expected:

      Screenshot 2025-06-23 at 6.34.14 PM.png

      There are some methods to iterate over the keys in the object and remove one and return a copy of the original, but that seems a little excessive and painful for that task at hand. Is there something simple like "delete"?

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Is there a guide for the SVG to path converter?

      I can't seem to find much info in the documentation.

      I did find this on David Healey's Youtube but it using a method with JUCE instead of the one in HISE: https://www.youtube.com/watch?v=OHqAijNUabU&t=65s

      I am pretty sure there is a newer video, but I don't find it when searching either "svg" or "path" when searching the channel.

      Anyway, I am looking to convert a lot of glyphs in SVG format to path as I need to use some of them for the

      ScriptPanel.setMouseCursor(var pathIcon, var colour, var hitPoint)
      

      What are these different path options?
      Should I be using "HiseScript Path number array" format if I am just using the paths in HISE?

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: How do I send 'noteOff' messages from UI Button?

      @Chazrox use timeStampSamples = 0

      There is also another method depending on how you need to handle noteOn and noteOff.

      If you use

      Synth.addNoteOn(int channel, int noteNumber, int velocity, int timeStampSamples)
      

      to add your notes I believe it returns the eventId.

      With that you can use

      Synth.noteOffByEventId(int eventId) 
      

      to match notes you made with the first method.

      So for example:

      local  eventId = Synth.addNoteOn(1, 60, 127,0);
      

      Then you can supply that eventId to make the matching noteOff.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Adding JSON properties to a component via script?

      @ericchesek What is it you are trying to achieve? When you are creating the sliders in a loop, are you appending the index number to each in the name?
      Here are some examples of indexing for the ID:

      // a loop to create sliders
      inline function createSliders(stringName, numOfSliders)
      {
      	local sliders = [];
      
      	for (i = 0; i < numOfSliders; i++)
      	{
      		// this appends the index to the slider name: "stringName + i"
      		local slider = Content.addKnob(stringName + i, 50 + i * 125, 50);
      		// this stores the component object inside an array
      		sliders[i] = slider;
      		slider.set("style", "vertical");
      	}
      	return sliders;
      }
      
      // call the function to create the sliders
      const mySliders = createSliders("MySlider", 4);
      // a separate array for the names ("Id")
      const mySlidersIdArray = mySliders.map(function(element){return element.getId();});
      
      Console.print("mySlidersIdArray: " + trace(mySlidersIdArray));
      
      

      So there are multiple ways to use an index as ID to associate with a component.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: How do I send 'noteOff' messages from UI Button?

      @Chazrox said in How do I send 'noteOff' messages from UI Button?:

      @Chazrox

      found this...see if it works...

      Synth.noteOffFromUI(int channel, int noteNumber)

      I haven't use that one, but this is the one I use and it works for me:

      Synth.addNoteOff(int channel, int noteNumber, int timeStampSamples)
      
      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Just wondering about how this logic condition evaluates

      @d-healey said in Just wondering about how this logic condition evaluates:

      @VirtualVirgin said in Just wondering about how this logic condition evaluates:

      Yes! That is the solution :)

      You can probably also get rid of the ternary operator at the end - ? true : false because the statement itself should return true or false.

      Yes, that makes sense. It is just evaluating to that anyway, so no need to make it redundant.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Just wondering about how this logic condition evaluates

      @d-healey said in Just wondering about how this logic condition evaluates:

      @VirtualVirgin you need a set of parentheses around the two parts that belong to the && I think

      Yes! That is the solution :)

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Just wondering about how this logic condition evaluates

      I was expecting this statement to return "false" as soon as it detects that the "selected" variable is not an array. Instead it moves on to checking if the non-existent array contains a value.
      Shouldn't it just return "false" instead of throwing an error?
      Screenshot 2025-06-18 at 8.39.30 PM.png

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Any particular reason that eval() does not work here?

      @d-healey Thank you!
      That is going on my list.
      I'm keeping a list of methods that are not found in the docs.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Any particular reason that eval() does not work here?

      @d-healey Yes, just trying to turn the string "1.5" into the number 1.5.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Any particular reason that eval() does not work here?

      @d-healey I was using "getIntValue()" here, but I decided I wanted to accept decimals as numerator to get beat values such as "1.5/4" as opposed having to use "3/8" when representing dotted note values. It would be more human-readable I think,

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Any particular reason that eval() does not work here?

      eval() is not returning a value here.
      Does in not work in an inline function or loop?
      Screenshot 2025-06-16 at 12.45.02 PM.png

      It works fine in the main code space:

      Screenshot 2025-06-16 at 12.46.10 PM.png

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise

      @aaronventure said in I wasted 3 hours on deepseek trying to create Autotune, Reverb and Delay in Hise:

      @d-healey That's why you should ask Claude with the Context7 MCP installed

      Your results are much better than mine!
      I have tried Claude with Context7 MCP for HISE and did not get anything significant yet.
      Maybe I am doing something wrong.

      I have been able to improve Gemini output by adding instructions under:
      Settings & help -> Saved info

      This way it can remember some things about HISE instead of having to prime every other prompt with rules about inline functions etc.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Midi-Out Messages?

      @Chazrox You would need to place the your piano roll script in a container on the next level down from your chord generator. Any MIDI that you generate will not be "seen" on that onNoteOn or onNoteOff callback, so you need a new container level to receive it as MIDI input.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Out of curiosity, why are external .js files not allowed inside a namespace?

      Screenshot 2025-06-10 at 2.50.16 PM.png

      I don't have any namespaces inside the .js file. Logically, why would I not be able to include it?
      If I can't, I'll just have to copy its contents into the namespace, which seems to counteract the tidiness of "include" files.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin