HISE Logo Forum
    • Categories
    • Register
    • Login

    Custom Keyboard - bug in compiled product

    Scheduled Pinned Locked Moved Bug Reports
    14 Posts 2 Posters 712 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.
    • LindonL
      Lindon
      last edited by

      So I'm using a custom keyboard with LAF - it draws keys as circles and colours these, then flips them to white when the MIDI note arrives and back to its colour when the MIDI off arrives.

      b9655321-6270-45f7-816f-8c0c36ba4ba8-image.png

      This works fine in HISE, but in the compiled product it sometimes(on quick note playing) fails to flip the colours back on MIDI note off...it only flips them back on mouse over..

      HISE Development for hire.
      www.channelrobot.com

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @Lindon
        last edited by

        @Lindon Need to see some code

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

        LindonL 1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @d.healey
          last edited by

          @d-healey sure..

          namespace keys 
          {
          
          	for (i = 36; i<68;i++)
          	{
          		Engine.setKeyColour(i,0);
          	}
          
          	const var KeyboardTile = Content.getComponent("KeyboardTile");
          	
          	const keyboardLAF = Content.createLocalLookAndFeel();
          	
          	keyboardLAF.registerFunction("drawWhiteNote", function(g, obj)
          	{
          		 var a = obj.area;
          		 //Console.print(trace(colourSet));
          		 if (obj.noteNumber-36 <= colourSet.length-1 )
          		 {
          			 g.setColour(colourSet[obj.noteNumber- 36]);
          		 }else{
          		 	g.setColour(0xff333333);
          
          		 }
          		 g.fillEllipse([a[0]+9,a[1]+32,5,5]);
          	});
          	
          	
          	keyboardLAF.registerFunction("drawBlackNote", function(g, obj)
          	{
          	var a = obj.area;
          	if (obj.noteNumber- 36 <= colourSet.length-1 )
          	 {
          		 g.setColour(colourSet[obj.noteNumber- 36]);
          	 }else{
          	 	g.setColour(0xff333333);
          	 }
          
          	g.fillEllipse([a[0]+6,a[1]+15,5,5]);
          	});
          	
          	
          	
          	KeyboardTile.setLocalLookAndFeel(keyboardLAF);
          	
          	
          }
          

          HISE Development for hire.
          www.channelrobot.com

          d.healeyD 1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @Lindon
            last edited by

            @Lindon I'm not seeing anything in there to differentiate between on and off. if (obj.down) etc.

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

            LindonL 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @d.healey
              last edited by

              @d-healey - I see what you mean - strange tho as it works correctly...

              still, did you mean something like this:

              keyboardLAF.registerFunction("drawWhiteNote", function(g, obj)
              	{
              		 var a = obj.area;
              
              		 if (obj.noteNumber-36 <= colourSet.length-1 )
              		 {
              			 if(!obj.down)
              			 {
              			 	g.setColour(colourSet[obj.noteNumber- 36]);
              			 }else{
              				g.setColour(0xFFFFFFFF); 
              			 }
              		 }else{
              		 	g.setColour(0xff333333);
              
              		 }
              		 	g.fillEllipse([a[0]+9,a[1]+32,5,5]);
              	});
              

              HISE Development for hire.
              www.channelrobot.com

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @Lindon
                last edited by

                @Lindon - hmm that makes it worse not better....now its doing it nearly all the time...

                HISE Development for hire.
                www.channelrobot.com

                LindonL 1 Reply Last reply Reply Quote 0
                • LindonL
                  Lindon @Lindon
                  last edited by

                  @Lindon - yeah now its producing all sorts oh half drawn artifacts..

                  41528127-c17a-45cd-a9c5-9ac928166165-image.png

                  HISE Development for hire.
                  www.channelrobot.com

                  d.healeyD 2 Replies Last reply Reply Quote 0
                  • d.healeyD
                    d.healey @Lindon
                    last edited by

                    @Lindon I'll take a look when I'm back home in an hour or so

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

                    1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @Lindon
                      last edited by d.healey

                      @Lindon This is how I would do it. Set all of the key colours outside of the LAF function (unless you need them to change to some other colour). I don't have access to your colourSets array so I've just added some placeholder code.

                      To solve the half drawn artefacts you need to increase the key width in the floating tile's properties.

                      Peek 2022-05-17 16-02.gif

                      HiseSnippet 1292.3ocsVs0SabDEdVfEk08JR8o9zHdHxHbsVCAykTZ.7k.JbwJlPpDJMZX2Ysm50yrZ2w.VQ7R+k0W6+l9OfdN6E60.kPrZsPn4ba1u4b9lybZEpb3QQpPhg0oCC3Diu1r8PotastLgjbPchwBlGJjtJYza3CuPwBcI6MLfEEwcIFFy9ZzMCq4Hw+96WsGymIc3iUQHmoDN7CE8E5wZasyaD99MYt7SE8y48K14.GkrlxWM.fzrl1j.lSOVG9wLzsYLIFy2vUnUgs0LMOB7YOk6v1cUWIS7+LQj3BeNJTgzF1nD0jZcE9tsxNtQDhwbsFe3mM4v+ClGIbEizONI78wFniiHeNvXlGCRU9BfjQNHMWBjVvrsSnHPO1Bhmux7.olG5wfTcdnj3KYl8myrlB7PpK2m0i2LDDFEQwp11knv+V5kEJHgDaDjj4zd7gQzBepfkmJjVTP2lZ+Rpf9yzJqrNrX4kWpfEX0R3gV+ksoqVk97midrMs5FfQKqFxNBIubDWCjkjpXQQIZxpnxWIzc2e.uXlbH2sD8Hlta4PFPw5Wbok.HYYw8i3Ox1g315FvgBEr.1RjldIKjlQOOU3yArmc76v00T8CTRPn3h4cZQbax1gdoFNb2l4B1IjCkzCUNL+CUpd6Jcax49ESBLWHvIoiHBRuMGHczBkr3htgrqdeWglerRyWrD0KyRmRT0E+dZtLF4L3KBpJyfuFd7iEbA5CcanFPeEsClBRO+nsdYYiknaMgQ6q87VM9GVZgcBqUXDR.DGOn+E7vwEt6neTUjZ0orGb6rguuHHhW7b141eftLcyRT14UvUqtRI5ZveeHtP7TyF64CWkezrw8SFfx+yRFSSt3eIUTcTpnxZiSEw4BKLYjmlgH5dLnbYKLjaxxGTkDyPmHKtDdSrvMEn20jm2CZCorgJeed3CZFayF9XAVTFezKALR+A7QNB8glr417OslaNI2fx4nRdfTnOIfmJ2T46hMsv02uUHI8JHr5cGTmoYX2wTcfeA7Ps.giQc9kvyKI8JsLqyi5oUAvKEitzCMK0oM2S5N1zWwzBYGr3PD.B9Vy70Kx04e7ZHwvz3bXwUBWc2QV9y+XmTvj7kKLZKHWzI64Kq4cccuEcGZCzer1au81ebRsqjpN1YM+Z8Xmy.RbNXleyv7SEnTrO16Q.s3V.CrrcITWcQTfOa3INZ1koDYvrGCZlFa+P0UPXfpMiE2WjHAc2ikqMHRq5+5PVPWgSzDQVm6wF3q2MHfyBwm2mvZ78ZXudKjUUfE6xU2L92FaXu9l1qWI1qSUc53yOR4NYv3ypvyrRI2GwRrt2EwOi6.btbfQGNfmYroOS2VOz+N6TqFY0f6pG3tg5wekUxz2P5l6aWsvMHsaDs4YeFZy2YlWUEj2XZ7WYblsLFwgSnHeS7HDsgxJPxmfk.g7.rjrB+cXIYpI2eTAXHEk6.H4L4jK3HZoFfa7SLt.NRfLRnGleDtufwYrezwYdpPbAyVBsS2GFiy7.XD5E7+AFmMqP0vyC3eiA3blM+0ochuOym+spAHCBFBJTfDH3daBEIkXFgboYv9gIx1nLlAZyktwBXaiTiUPYiTiUxLR5ybBUezIoOONl4yh0.XRFOUsk4QnLsBIt2ODmocYaReft9QGG73+SPK5GNlUlhXVcJh4ESQLqMEwTcJhY8oHlMdzXvNE6N.ZGmbc.TzpQ7C.FFMjLfYEyBI+CXaTSSC
                      

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

                      LindonL 1 Reply Last reply Reply Quote 1
                      • LindonL
                        Lindon @d.healey
                        last edited by

                        @d-healey thanks for this - however this make no difference to the problem in the compiled version...its still randomly failing to change the colours on key press/release, especially for very fast key sequences...

                        HISE Development for hire.
                        www.channelrobot.com

                        d.healeyD 1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey @Lindon
                          last edited by

                          @Lindon It works here compiled as standalone. Can you send me a MIDI file that triggers the glitchyness and I can try it in a plugin version. Which DAW are you testing in?

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

                          LindonL 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @d.healey
                            last edited by

                            @d-healey - well I should have been more clear

                            • your example compiles and works fine
                            • but its missing a lot of functionality in that the colour set used changes based upon the number and sequence of samplers the user has inserted...
                            • so I added your "?" operator to my code and it still breaks - this may be because I'm changing the displayed colourset dynamically

                            I'm using the ever reliable Reaper by the way - not that this is the problem..

                            HISE Development for hire.
                            www.channelrobot.com

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @Lindon
                              last edited by

                              @Lindon If you can show me exactly what you're doing I can take a look. You could send me the project in a pm.

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

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @d.healey
                                last edited by

                                @d-healey sure I'll do that...

                                HISE Development for hire.
                                www.channelrobot.com

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

                                28

                                Online

                                1.8k

                                Users

                                12.1k

                                Topics

                                105.5k

                                Posts