HISE Logo Forum
    • Categories
    • Register
    • Login

    UI does not work on Load. Works after Compile

    Scheduled Pinned Locked Moved General Questions
    3 Posts 2 Posters 230 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Confuzzled
      last edited by

      Hello,

      I'm currently prototyping out a UI, which I'll refactor and clean up the code later, but I wanted to at least test it with a subset of the instrument's samples: Simple round robin selector and label.

      The problem that I am running into right now is that the UI will not update unless I hit compile.

      After that, everything works fine; however, I tested the vst3 of the instrument and all the underlying instrument logic (the important stuff) works except that the UI will not update as it should—like after I hit compile.

      gGroupCounter is a global variable on a script beneath the interface where all my GroupTracking logic is occuring.

      Init:

      
      Content.makeFrontInterface(600, 600);
      
      Synth.deferCallbacks(true);
      
      const var Keyboard1 = Content.getComponent("Keyboard1");
      const var Label1 = Content.getComponent("Label1");
      
      
      
      for(i = 48; i < 79 + 1; i++ )
      {
      	Engine.setKeyColour(i, Colours.withAlpha(Colours.aquamarine, 0.5));
      }
      
      //Black keys within range.
      
      Engine.setKeyColour(49, 0x00);
      Engine.setKeyColour(51, 0x00);
      Engine.setKeyColour(54, 0x00);
      Engine.setKeyColour(56, 0x00);
      Engine.setKeyColour(58, 0x00);
      Engine.setKeyColour(61, 0x00);
      Engine.setKeyColour(63, 0x00);
      Engine.setKeyColour(66, 0x00);
      Engine.setKeyColour(68, 0x00);
      Engine.setKeyColour(70, 0x00);
      Engine.setKeyColour(73, 0x00);
      Engine.setKeyColour(75, 0x00);
      Engine.setKeyColour(78, 0x00);
      
      Engine.setKeyColour(36, Colours.withAlpha(Colours.gold, 0.5));
      Engine.setKeyColour(37, Colours.withAlpha(Colours.red, 0.5));
      Engine.setKeyColour(38, Colours.withAlpha(Colours.red, 0.5));
      
      Label1.set("text", gGroupCounter + 1);
      

      Note On:

      function onNoteOn()
      {
      	Label1.set("text", gGroupCounter + 1);
      	
      	switch(gGroupCounter)
      	{
      		case 0:
      				Engine.setKeyColour(36, 
      				Colours.withAlpha(Colours.gold, 0.5));
      				Engine.setKeyColour(37, 
      				Colours.withAlpha(Colours.red, 0.5));
      				Engine.setKeyColour(38, 
      				Colours.withAlpha(Colours.red, 0.5));
      		break;
      		
      		case 1:
      				Engine.setKeyColour(37, 
      				Colours.withAlpha(Colours.gold, 0.5));
      				Engine.setKeyColour(38, 
      				Colours.withAlpha(Colours.red, 0.5));
      				Engine.setKeyColour(36, 
      				Colours.withAlpha(Colours.red, 0.5));
      		break;
      		
      		case 2:
      				Engine.setKeyColour(38, 
      				Colours.withAlpha(Colours.gold, 0.5));
      				Engine.setKeyColour(36, 
      				Colours.withAlpha(Colours.red, 0.5));
      				Engine.setKeyColour(37, 
      				Colours.withAlpha(Colours.red, 0.5));		
      		break;
      		
      		
      		
      		
      	}
      }
       
      
      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @Confuzzled
        last edited by

        @Confuzzled Scripts run in order, so if your global variable script is below your interface script the global variable will be updated after your interface script's on note callback.

        Avoid using global variables, 99% of the time there is a better (cleaner) alternative.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        C 1 Reply Last reply Reply Quote 0
        • C
          Confuzzled @d.healey
          last edited by

          @d-healey That's what I thought was going on.

          Ya, it's for a quick demo, which is why I did it in this instance.

          It'll be cleaned up later, haha.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          29

          Online

          1.7k

          Users

          11.8k

          Topics

          102.5k

          Posts