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

    Posts

    Recent Best Controversial
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey Ah, I'm sorry! I reloaded the snippet to see if that would work and all of the .js includes then said "embedded" at the top so I was assuming somehow the snippet export catches all of the .js files and "embeds" them into the snippet.

      I'll take a look at the project later and figure out how to send you all of the relevant files.
      Cooking dinner for the fam at the moment.

      Thanks for your help :)

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey
      And here I've gone so far as to commenting out anything else from the callbacks and leaving just "Message.ignoreEvent(true)", that still gives the same errors:

      Screen Recording 2025-05-12 at 6.42.37 PM.gif

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey said in [Confusing error: "Call of ignoreEvent() .

      When did I suggest you add it?

      In your first reply?

      @VirtualVirgin Is your interface script deferred (it should be)?

      @d-healey said in [Confusing error: "Call of ignoreEvent() .

      I tested it here and the error went. Can you show me a video, I want to see exactly what steps you're doing to see if I was doing something different?

      Here I took the Synth.deferCallbacks() out of the script and restarted HISE and the project.
      Then I am just playing notes into my keyboard controller (which is on channel 2).
      Any time I play a note, the error shows up for "Message.ignoreEvent(true)" complaining that it should not be called on a thread other than the midi callbacks (where it is).
      When I change the input/output configuration by adding more nodes, I get the same thing.
      The channel outputs are working properly at the output stage with one exception, and that is the original MIDI message needs to be ignored because the Messages are generated instead.
      When all of the nodes are off, the routing matrix is not supposed to let any MIDI through, but it instead outputs channel 2 because it is not ignoring the original input message.

      Screen Recording 2025-05-12 at 6.22.29 PM.gif

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey I don't quite understand what you mean.
      Originally the script did not have "Synth.deferCallbacks();" at all until you suggested I add it.
      I did and that did not change the error.
      Removing it did not change the error.
      Setting it to false does not change the error:

      Screenshot 2025-05-12 at 5.29.13 PM.png

      Also, can you define what "realtime thread stuff" is? Are you referring to everything used on the MIDI callbacks?

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Multichannel MIDI FX - Is it possible in HISE?

      @HISEnberg I have a MIDI channel matrix router that I made a few months ago:
      Screenshot 2025-05-12 at 1.17.11 PM.png
      With it you can route any of 16 channel inputs to any of the 16 channel outputs.
      Unfortunately when I opened it today I get an error that I am now trying to fix with David's help.
      Otherwise, it was working when I last tested it.

      Hopefully I can get it running again, and if you are interested I could send you a version of it (cleaned up - there is some junk code in there at the moment).
      Or, if you describe your use case context I could possibly tailor something for you.

      posted in General Questions
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey said in Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback:

      @VirtualVirgin Did you restart HISE after removing it ?

      Yes, there is no difference. The error remains.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey said in Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback:

      @VirtualVirgin Perfect. So this is HISE telling you that you can't do that thing in a deferred script. You need to move this stuff to a secondary, non-deferred, script (midi processor).

      Deferring the script makes no difference. The error occurs both with and without Synth.deferCallbacks(true);

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      @d-healey said in Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback:

      @VirtualVirgin Is your interface script deferred (it should be)?

      Yes, it is at the top of onInit under "Content.makeInterface()".

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Confusing error: "Call of ignoreEvent() outside of midi event callback" happening directly on the midi callback

      I'm being told that my "Message.ignoreEvent()" is not happening on a MIDI callback when it clearly is and even says so in the Console:

      Screenshot 2025-05-12 at 11.11.54 AM.png

      Has anyone else encountered something like this?

      I'm not sure what to do about it.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Multichannel MIDI FX - Is it possible in HISE?

      @HISEnberg Yes, that should work for using multiple MIDI channels. You can check the MIDI event list viewer to monitor the MIDI messages and you should see the channels assigned to each message there.

      posted in General Questions
      VirtualVirginV
      VirtualVirgin
    • RE: Problems with persistent panel data?

      @d-healey Sorry my example is not very clear.
      What I meant is that the

      if (!Content.getComponent("testPanel"))
      

      Works without disruptions.
      It does throw an error to say that component does not exist, but because the "if" returns a "true", the code then proceeds without any problems.
      The whole point of the if/else here is just an out-of-context part of factory methods that I use to create components, where the original creation will happen on the first compile and can run any code that doesn't need to be set the 2nd time around (such as properties).

      That all takes place in an inline function like the following example:

      // **** FACTORY RANGE SLIDER **** //
      // "orientation" accepts "horizontal" or "vertical"
      inline function createFactoryRangeSlider(stringName, xywArray, rangeMinMaxArray, highlightColour, orientation)
      {
      	local x1 = xywArray[0];
      	local y1 = xywArray[1];
      	local size = xywArray[2];
      
      	local isVertical = orientation == "vertical";
      
      	local sliderTrackWidth = isVertical ? size * 0.2 : size;
      	local valueBubbleSpace = isVertical ? size * 0.4 : 0;
      	local w = isVertical ? size * 0.5 : size;
      	local h = isVertical ? size : size * 0.3;
      
      	local panel;
      
      	if (!Content.getComponent(stringName + "RangeSlider"))
      	{
      		panel = Content.addPanel(stringName + "RangeSlider", 0, 0);
      		panel.set("allowCallbacks", "All Callbacks");
      		panel.setPosition(x1, y1, w, h);
      		panel.set("saveInPreset", true);
      
      		local t = Engine.createTimerObject();
      		t.setTimerCallback(function[panel, t, rangeMinMaxArray]()
      		{
      			panel.setValue(
      			{
      				"minValue": rangeMinMaxArray[0],
      				"maxValue": rangeMinMaxArray[1]
      			});
      			t.stopTimer();
      		});
      		t.startTimer(50);
      	}
      	else
      	{
      		panel = Content.getComponent(stringName + "RangeSlider");
      	}
      	
      	panel.data.parentPopup = Content.getComponent(stringName + "Popup");
      
      	// Safe to add data here: ensures it's done on every compile
      	if (!panel.data.rangeSliderTimer)
      	{
      		panel.data.rangeSliderTimer = Engine.createTimerObject();
      
      		panel.data.rangeSliderTimer.setTimerCallback(function[panel, stringName]()
      		{
      			if (panel.data.needsUpdate)
      			{
      				panel.data.needsUpdate = false;
      				var parentPopup = panel.data.parentPopup;
      				parentPopup.changed();
      			}
      		});
      
      		panel.data.rangeSliderTimer.startTimer(100);
      	}
      
      	panel.data.rangeMin = rangeMinMaxArray[0];
      	panel.data.rangeMax = rangeMinMaxArray[1];
      
      	panel.setPaintRoutine(function[highlightColour, isVertical, sliderTrackWidth, valueBubbleSpace](g)
      	{
      	    var width = this.getWidth();
      	    var height = this.getHeight();
      
      	    var margin = (isVertical ? height : width) * 0.075;
      	    var trackThickness = (isVertical ? sliderTrackWidth : height) * 0.15;
      
      	    var rangeStart = margin;
      	    var rangeEnd = (isVertical ? height : width) - margin;
      
      	    var rangeMin = this.data.rangeMin;
      	    var rangeMax = this.data.rangeMax;
      	    var rangeSize = rangeMax - rangeMin;
      
      	    function getRatioFromValue(value)
      	    {
      	        return (value - rangeMin) / rangeSize;
      	    }
      
      	    var minRatio = getRatioFromValue(this.getValue().minValue);
      	    var maxRatio = getRatioFromValue(this.getValue().maxValue);
      
      	    var minPos = isVertical
      	        ? rangeStart + (1.0 - minRatio) * (rangeEnd - rangeStart)
      	        : rangeStart + minRatio * (rangeEnd - rangeStart);
      
      	    var maxPos = isVertical
      	        ? rangeStart + (1.0 - maxRatio) * (rangeEnd - rangeStart)
      	        : rangeStart + maxRatio * (rangeEnd - rangeStart);
      
      	    var centerX = isVertical ? width / 2 : 0;
      
      	    // Track
      	    g.setColour(Colours.grey);
      	    if (isVertical)
      	        g.fillRoundedRectangle([centerX - trackThickness / 2, rangeStart, trackThickness, rangeEnd - rangeStart], width * 0.05);
      	    else
      	        g.fillRoundedRectangle([rangeStart, height / 2 - trackThickness / 2, rangeEnd - rangeStart, trackThickness], height * 0.075);
      
      	    // Highlight range
      	    g.setColour(highlightColour);
      	    if (isVertical)
      	    {
      	        var y = minPos;
      	        var h1 = maxPos - minPos;
      	        g.fillRect([centerX - trackThickness / 2, y, trackThickness, h1]);
      	    }
      	    else
      	    {
      	        var x = minPos;
      	        var w1 = maxPos - minPos;
      	        g.fillRect([x, height / 2 - trackThickness / 2, w1, trackThickness]);
      	    }
      
      	    // Knobs
      	    var knobRadius = (isVertical ? sliderTrackWidth : height) / 6;
      	    g.setColour(Colours.white);
      
      	    if (isVertical)
      	    {
      	        g.fillEllipse([centerX - knobRadius, minPos - knobRadius, knobRadius * 2, knobRadius * 2]);
      	        g.fillEllipse([centerX - knobRadius, maxPos - knobRadius, knobRadius * 2, knobRadius * 2]);
      	    }
      	    else
      	    {
      	        g.fillEllipse([minPos - knobRadius, height / 2 - knobRadius, knobRadius * 2, knobRadius * 2]);
      	        g.fillEllipse([maxPos - knobRadius, height / 2 - knobRadius, knobRadius * 2, knobRadius * 2]);
      	    }
      
      	    // Bubbles
      	    var bubbleWidth = knobRadius * 5;
      	    var bubbleHeight = knobRadius * 2.5;
      	    var bubbleRadius = knobRadius;
      
      	    function drawValueBubble(x, y, value)
      	    {
      	        g.setColour(Colours.white);
      	        g.fillRoundedRectangle([x, y, bubbleWidth, bubbleHeight], bubbleRadius);
      
      	        g.setColour(Colours.black);
      	        g.setFont("Oxygen", bubbleHeight * 0.75);
      	        g.drawAlignedText("" + Math.round(value), [x, y, bubbleWidth, bubbleHeight], "centred");
      	    }
      
      	    if (isVertical)
      	    {
      	        drawValueBubble(centerX - knobRadius - bubbleWidth - 4, minPos - bubbleHeight / 2, this.getValue().minValue);
      	        drawValueBubble(centerX + knobRadius + 4, maxPos - bubbleHeight / 2, this.getValue().maxValue);
      	    }
      	    else
      	    {
      	        drawValueBubble(minPos - bubbleWidth / 2, height / 2 - knobRadius - bubbleHeight - 4, this.getValue().minValue);
      	        drawValueBubble(maxPos - bubbleWidth / 2, height / 2 - knobRadius - bubbleHeight - 4, this.getValue().maxValue);
      	    }
      	});
      
      	panel.setMouseCallback(function[isVertical, stringName](event)
      	{
      		var size1 = isVertical ? this.getHeight() : this.getWidth();
      		var margin = size1 * 0.075;
      		var rangeStart = margin;
      		var rangeEnd = size1 - margin;
      		var rangeMin = this.data.rangeMin;
      		var rangeMax = this.data.rangeMax;
      		var rangeSize = rangeMax - rangeMin;
      
      		var parentPopup = Content.getComponent(stringName + "Popup");
      		var dataTableContainer = Content.getComponent(parentPopup.get("parentComponent"));
      		var columnID = parentPopup.data.columnID;
      		var filterData = dataTableContainer.data.filterData[columnID];
      
      		if (event.clicked)
      		{
      			var pos = isVertical ? event.y : event.x;
      
      			function getRatioFromValue(value) { return (value - rangeMin) / rangeSize; }
      
      			var minRatio = getRatioFromValue(this.getValue().minValue);
      			var maxRatio = getRatioFromValue(this.getValue().maxValue);
      
      			var minPos = isVertical
      				? rangeStart + (1.0 - minRatio) * (rangeEnd - rangeStart)
      				: rangeStart + minRatio * (rangeEnd - rangeStart);
      
      			var maxPos = isVertical
      				? rangeStart + (1.0 - maxRatio) * (rangeEnd - rangeStart)
      				: rangeStart + maxRatio * (rangeEnd - rangeStart);
      
      			var distToMin = Math.abs(pos - minPos);
      			var distToMax = Math.abs(pos - maxPos);
      			this.data.dragTarget = distToMin < distToMax ? "min" : "max";
      
      			this.data.needsUpdate = true; // defer popup.changed
      		}
      
      		if (event.drag)
      		{
      			var pos = isVertical ? event.y : event.x;
      			var relPos = (pos - rangeStart) / (rangeEnd - rangeStart);
      			var valRatio = isVertical ? (1.0 - relPos) : relPos;
      			var val = rangeMin + valRatio * rangeSize;
      			var clampedVal = Math.max(rangeMin, Math.min(rangeMax, val));
      
      			if (this.data.dragTarget == "min")
      			{
      				var minValue = Math.min(clampedVal, this.getValue().maxValue);
      				filterData.minValue = minValue;
      				this.getValue().minValue = minValue;
      			}
      			else if (this.data.dragTarget == "max")
      			{
      				var maxValue = Math.max(clampedVal, this.getValue().minValue);
      				filterData.maxValue = maxValue;
      				this.getValue().maxValue = maxValue;
      			}
      
      			this.data.needsUpdate = true;
      			this.repaint();
      		}
      
      		if (event.mouseUp)
      			this.data.dragTarget = "";
      	});
      
      	return panel;
      }
      
      
      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Problems with persistent panel data?

      @ulrik Thank you! Yes, that seems to be the issue here!

      The original initialized data object saved to .setValue() which does not persist:

      {
          rowData: [1,2,3],
          filterData: 
          {
      	        "searchValue" : undefined,
      	        "selectedFilterValues": [],
      	        "partialExact" : "Partial",
      	        "minValue" : undefined,
      	        "maxValue" : undefined
      	}
      }
      

      A data object which uses "placeholder" to replace the undefined and empty array values which does persist:

      {
          rowData: [1,2,3],
          filterData: 
          {
      	        "searchValue" : "placeholder",
      	        "selectedFilterValues": ["placeholder"],
      	        "partialExact" : "Partial",
      	        "minValue" : "placeholder",
      	        "maxValue" : "placeholder"
      	}
      }
      
      HiseSnippet 1149.3ocsV8+ahaCE2okLMx1IsSZ+A3wOAanJfR4ZuoocqT5M1VaQiaUS5T0I2DmhWSrirM8Jph+P1+O6On8ev1yNIj.kdWGpKBP3227m7wu2yuQRgOUoDRji2alkPQNet63Yb8j9SHLNZ3QHmW6NlyRRnZb.MVvUZIQy3WgSHbZDNfnI3DpTwTZJ2mhYJ0TpBiUSDu2XlRDMUyDbzgyRHJEM.43r8qMA2oZEj84u+9CIQDv4BQHz4BlO8WXwLcgzQu5mYQQGSBnugEWx5tuZnuf2WDIlBuHa61BkP7ulbE8ThwrsbQ+HQMA470t60YW+tAuHnSm8NnmOoG8fPRXX6cC51s29Gzd2CHc2uGs0dHmOYP.SKji0DMUgbpbnHX1X3chmtAmyTrKinlEsQigcNU7whn.yqnQJp+DVTvnbFVgfnLpfu2Nku+R2SXArExK38uvp.W3QYBzYqkg21KAu1kgWqRvaMPxoDjpjBom6N1WxRzEZL34ybGx0TYHANmJCkTaQa8mUb6K.K35chIWSOVBKV3Q8dsZ0DC+z3a87tgHw.p0iLYPvZVHt9Wk66UTceQbhfCKpWagY0Zzv6NupKVi+NbtGjf.qnxV2DCamYyJ7XGEEBnhbCcHejjBq.qzxoTiUdUsfBh5.9ULNcGeIEXVSZl7rK+CputtMXlfXE1mDEcIjjUObJ22je+1EaDD0Kp2vqJ.2k28yIQSo0AoFMX3QJd+QP8yKwuscyNM28hlYxCYQ.ukpJSjwE6eLO0TThzehMd0vuDWKIB33IlbOYslqXYD.dZvw1PZ8PUC1vkb4hk8IgH0LRzfaI9Za3GkJXkPGy3OFDDStc8lYrZtW5WC4BGBUgyTngAcmDIaoierBR1gBZHDeCbnYxnJn1qxo1FMxiCbPoEI1SJ3fCHw4YGeZ3UIU7dsrJ7fOy8nQJp2c30mf8foj1Dmm.HOOql3ij98eI66N6a1SAc5cOxbdJVJnx1l5ZbNVvB9oBM8LdFLl6cOUggqUmgvkhnHy9rF0YH3gcrNeZ7kTYS7MF7uvPnw1xcKce3tkkal6md9WxPAeHmoOKgxenV7nrjFSm0LTAlps8UeVdeUCMiXAldpKncjEyHm+x8mFe1o2UKq2PMayAbmlXn8.tVQmAPwcK0GX0hvGcs+JE7kq2KUje+vunvdEUymiP+1PCFyIAfO.NBlRPyLzuyQzafK2Surop6QT00P9k01rpL3H5wPY2B14XF.XV9eJ2d2HyJ792vA2sJBlFQzKegqYrjLEqNwh4lLthomUdrkUuEtxi6V3O7PBOV39b2QLs+j0i2sVCdgSi+uwa1LMOycPXHj5U.1JtG+6evAXdZfxuJlZlM8DhVxLIGmNMdLLSnOEPBGxXL09NaYpRSW2JOuYLkGXW7OvSlx14IPFksyUhhI9Rw67SqsMSP8oVI.l31oMq5dhYMtcdEcA+GCCz8Ne+kC08bryl53tapic2TG2aScr2l53K1TG2+i6nYd6eXpVDmVNgPmLZfsMliy.NAxFsYtn+EPi5q7U
      

      I had found confusion because I was saving a lot of data in arrays and objects inside the panel.setValue() already which had been working properly for some time, but then needed to add a new object and that flummoxed all of the data persistence in that panel after adding it.

      When loading, this data gets copied over to panel.data for use and already has a system expecting "undefined" and an empty array for certain conditions, so I think what I can do here for minimum disruption here is to convert the top version to the bottom version format and back (upon saving and restoring respectively) where any values that read "placeholder" will then be converted to "undefined" and the array will just get cleared if it .contains("placeholder"). That way I should be able to keep all of my logic concerning "undefined" and empty arrays intact.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Problems with persistent panel data?

      @d-healey No error. I've done it dozens of times over here.

      Also, I used var because I can't use const.
      That throws errors:

      Screenshot 2025-05-10 at 7.53.34 PM.png

      I can't put the const before the if/else because then I can't reassign it.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: Problems with persistent panel data?

      @d-healey said in Problems with persistent panel data?:

      Content.componentExists()

      Works here without any errors.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • Problems with persistent panel data?

      Some data I am trying to save in the panel for persistence is not reloading on 2nd compile.

      In this snippet, the first compile uses the .setValue() method to save an initialized object to a panel which has been set to
      ("saveInPreset", true)
      Then the .getValue() method is used to retrieve the values inside, which then print to the console to show that the values have been stored properly.

      When the project is compiled again, the same .getValue() method is used and returns the correct values immediately,
      but the values get wiped after a 50 ms timer (.getValue() returns "0.0").

      By the 3rd compile, all Console printouts read "0.0" for the value.

      I'm at a loss as to what is going on.
      Am I getting something totally wrong or is there a bug of some sort?

      HiseSnippet 1068.3ocsV8+ahaCE2okLMx1IsSZ+A3wOAanJnE3ZuoocqTXCs0Vz3V0jNUcxMwA7ZhcjsSuhp3+48ev1yNIPXPUug5EUUgee8SduO98xXovmpTBIxw6sySnHmuzcxbtdV+YDFGM5LjSW2IbVRBUiCnwBtRKIZFeJNgvoQ3.hlfSnRESoobeJloToTE5z4IDkhFfbb1+mMgxoZEj84u+wSIQDvzUhPnqDLe5uwhY5URG+lekEEMjDPeKKtj0cdyHeAuuHRjBvde2VnDh+sjozKHFy1yE8KD0Ljy2518vi76D7pfCOr6I87I8nmDRBCaeTPmN8N9j1GcBoyw8ns5hb9rAALsPNQSz.3cpbpHX9jYhOvyRvULE6lHp4PazDHyYhGJhBLuhFon9yXQAiKpmJDDkwqpt6mUc+Z2yYArkxWUk+JqB7JOJW.c1ac3s+ZvqcY30pD71BjbJAoJYP5ktS7krD8JMF77Eti3ZpLj.8oxPIyVzdKp31W.Vv0GDStkNTBGV5Q8dsZ0DC+qw264cGQhATqGa3KvYVHt92T36TptuHNQvgC0qszrZMZ38fW0kmw+.tvCRPfUTYqahgzYR1JONPQg.pH2QGwGKovIvJsLkZrxqpETPTGvmx3zC7kTnxZnYxKu4un9551fYBhUXeRTzM.IqdXJ2WyD72sLQPTutdCup.bWO6WQhRo0AoFMX3QJ9vYvskWieW6lG17nqalKOjEA0sLU4hLtX+g4olhRj9yrwqF903Td.MDPcPy+iUQ.voACsgyZspFjrqW2rDhTyHQCtm3qMQq13LA0V2rXF+oRXL49MMwXwB3eKLEPnPWE5aJQD8fDIasVLVADZ3RKffuCZLFVypx2zhxWiFEwAZFZQhsa.MGnPsHuEoA7mItaKqBO3uEdzHE06A71IQOJsyRNdFf7hbd+SPw9+vvdv9l8bTN81nXtHCKqJksM2cwEXAK3WHzzK44vXg2FpBC2pNSAWJhhL4YKpyQvi6XcdZ7MTYS7cF7uzPX305SDce7IhkGX6m0+KYnfOhyzWlP4O1XbTNowL8LGUfoZ6ryWTL6zTlQr.ybykkcjEyk2xg9iQlq4EQBBJjHX4olYdGbNidGrELapbU2ynpaglj01bpJ7d9wj26A6bLoadwOJOGzHyJbyUAvRHQPZDQu9lIy96bEPyYs0AlQ9bESOu798ms0UerP7ktiYZ+YaGi6sELBcfOEXLeI+KbGDFB2vWAvJtC+yOMazQ+tH074XmSzRloweQZ7D3Ci7oP14.avb4vYOCMN6bqBNwDJOvd3efmbksKHGFksKThhI9Rw68yH+lOi3ysR.LwsexUU2yMmws2jxGCeUy688WOTa33g6piGsqN1YWcr6t5Xuc0wWsqNd7S6n4iN+oTsHN6ZCBc93A1QTNNC3DfAZYqn+UZmK2Q
      

      If the initial "setValue()" object is replaced with just "1". The value persists through compiles.

      HiseSnippet 986.3ocsV00aiTCE0SRFDYfUhUhe.d6SIPUTRZZZKqPrzzTHBZaDYoBIDZk6L2IwzYrGM1SgnU4I9Cy+.354iLS1ltaIpLODEe88iiO95i8zXoKnTxXhkyqWFADqO0d1RgdwnELtfL4Lh0Q1yD7nHPS8fPoPoiYZtXNMhIf.pGSynQPrhqzfvEnbkJATz9jSWFwTJviXYU+6LIypYCR52e+MmxBXnyklHjqkbW3G4gbco0ou5G3AAmy7fWyCq38fWMwUJFICjIHvqa2kDwbukMGtjYbqlM46YpEDquv9v9G3Nv6Hu98O7jgtrgvI9Le+dG3MXvviOo2AmvFb7Pn6gDqOZrGWKimoYZPQrZbpza4rEx+PjUfq4J9MAfYPOxLrxYlOWF3YVhFqjQK3AdSKXTEAyxzR9sdF+941Wv83qsWxyeV5DzxHpRfV01Dd02.d8pButUf2VfjUEH0HCRO2dlaLORWNiAOeh8DgFh8Y39TUnj4Ko1eU2djD8Pn6DxtENOFGrNhVC61ceJ9S6W53bGKlhnVO0zwfi49zVunH14fdjLLRJvAs1asa60tsyacZtdL8qoEQv77RMU068oX4LEqLhNJ.SnhcGLQLMFvQnW53Dv3kSyTPgYcrXNW.cbiAjYMsYwWcyuCt5VoIyjjTiiXAA2fMYs7SDtZtT7qqKDl0eqUamlHb2r5WyBRfV8LIB+vevUfRF.chh4arXoJbqEae+J5deIBQC+Uln4EIpc6zLYpRGLfnTbgvj5zbUNX0r3L315PjLnMcV4.AJv4szsSkOH4mRQOAvcU9t+Gfn+uvyHM67jfslN2iHWkgkRZrmoClVfEpTboTCWIxgwJm6Mku+VmyP3wxf.Sc1xz4H3gCrkHI7FHde5cF7u1Q7H7l5B1OrtPUYK2r8+JNJESDb8UQf3gDyH4MMFMjbTgtpSUPdVgBhglIbOi5wZZmjh4px+jedxY38FEYBSJVH7RDM2rFrNCtCuKHSapo8Yf5VbSJ027VUbc9Xp6eh9YYp3xh+TUMvXK038EDQoXoWR.Suo9r4Vr7IvMmMDEMBeBEWur5x7cEsa73Dse+2o7Xg6ysmx0tK1NdqsE7h6F+ei27q.el8Xee7jeIXaXe9u7duu6oAJ+jLw7zkKX5Xto43xjvY3SHbADIBriwb.xploUOab2h9lYfvKcv+fe4S1qnAxLYuhIIgL2X4abyNfXtv8iSsfXRj93jl1WXFS68tGKHjP79+235tYptWf820.OXWCbvtF3g6ZfC20.OZWC73Obflmm8sIZYX1wIB4hoiSkwrrFKXX2XZmK4eAZo8bC
      
      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: The big bug tier list

      Link Preview Image
      Viewport viewPostionX and viewPositionY Value Errors · Issue #742 · christophhart/HISE

      Steps to reproduce: Load the snippet- HiseSnippet 1123.3ocsVs0TabCEVK3kIrsoSSZ+An5mLTCr1EJgllo.FSqmxEOXJSX5zgHqU1VCqk1YWYHdxjeA8w9d+M1G56omydwdM1PR7jtOsma57oi9z4nlgZtHJRGRrbNeXffX841sFpL8p0iIUjFGPrJaegTbafNzPuA9ooNRZjZ0Ko6GpYdbVjQDRiTxf....

      favicon

      GitHub (github.com)

      posted in Bug Reports
      VirtualVirginV
      VirtualVirgin
    • RE: Total Beginners Guide to HISE

      @suttonaudio https://www.youtube.com/@DHealey !!!

      posted in Newbie League
      VirtualVirginV
      VirtualVirgin
    • RE: Viewport problems

      @Lindon Doesn't seem to be. I've just come across some more issues today with the Viewport as well, that when attaching it to a Broadcaster it is putting out odd values for the viewPositionX and viewPositionY in an unpredictable manner. If I had more experience coding I would try to do something about it myself, but in the meantime I'll have to add another bug report on it.

      posted in General Questions
      VirtualVirginV
      VirtualVirgin
    • What is the purpose of the control callback on a Viewport?

      I can't get it to react to anything:

      HiseSnippet 806.3ocsUssaSCDDc2z3Jh4hnH9.r5SoPUkSHosADhRyEHBRaDoTwaUaVutYUs20xdcKQn9MwuF+Avr1NINMUosQB+fkma6b7LmY19gRJKJRFhvlmLNfgvOwXvXgZTyQDt.0sEB+LidjHEKzJU0giCHQQLGDFu1mzJvkJhRd9yGNj3QDT1LUHzoRNk8UtOWMSa+C9B2yqCwgcB2Om20NnKUJZJ8jw.dVyvFEPnWPNmcDQ6VACzmIQiP3WYPo0Zv12s5d1Uavp6TaX0J1jp1MZrGiT2lNrAiT0cH0FgWusCWICGnHJVDbnGJcFOXj7JQZBNkGwG5wzBUPCfLmpF0bD2yo+jhSDBgK1eVoZszR0KM5wc3S0Oqj87DCVyhHeQCWXYPpxC.R3bPpXJj1vX.MjGnlYQimGazU.cPWBzaxCkTeQE9M1noD7Pn1wmbAqSHHLMhx6ZausE7Zq2YZZBMnHkE.b0ob1UAxPk06slDLwwYh1xadRNe1b65vYTWeD4CcmHlRGanzqIwyaHzsKm29Mrk..tviKXVtwBphKEVKw+xToefT.HaaqKIdwrsL+kYIvoHoGamfPt.fYhAq2to0qsTg5e2TOgbc8zbHEGIUriEkSN.yqMstoIW2a0VFf7Xg2pYM8ObYAVVD6OjElG9ZGg187bn0uebHZZeJmiRQWAWcb.KStizyQyMzeuHiCk0n0buLDBtpRXduHi4wlRAPbG81i77.Tx+Q98Cnu2sEQQlbhvgCILfEp35+KbK1kv9iTtcIiVrnKTxfDey5rPo3gj+ehvF3pPZGO4CzhCQv3qzI1inlelVusKy.zjlaPROrHh3pw42F9.FzsW5f98EhaXzmqnitcLV3VvHT0+efwr0iO0nsqKiplAvhFc9wptK7NR+2jwJt37dDUHW2jOJ1e.bMBkAYWHXdQ59cAMENU1VKqq.CXBmDg+BOYFqnkwYFqLwHxmPCkmQSI95EvOJQCfIQxETkfaJAYqJKRy8g6CNiRm+nVHvpqZfuYUCr1pFX8UMvcW0.2aUCb+6NP800eLVI8SGaPnd8amrVBiaKH.CLgsh9GvEEW9M
      

      The Console prints "value: 0.0" onInit, but nothing when clicking/scrolling the Viewport.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin
    • RE: .get("childComponents") does not work or am I misunderstanding something?

      @d-healey Thanks :) The components are being created and referenced in an inline function though.

      posted in Scripting
      VirtualVirginV
      VirtualVirgin