key colour



  • I'm trying to paint the keyboard, but nothing is happening, where am I wrong?

    /** External Script File interface.js */
    
    Content.makeFrontInterface(633, 300);
    Console.clear();
    var instr = Engine.loadFromJSON("../scripts/CB.json");
    Console.print(instr.name);
    
    const var Keyboard = Content.addFloatingTile("Keyboard", 0, 100);
    // [JSON Keyboard]
    Content.setPropertiesFromJSON("Keyboard", {
      "width": 600,
      "height": 72
    });
    // [/JSON Keyboard]
    Keyboard.setContentData({"Type": "Keyboard"});
    
    reg i;
    
    const key_none = 0xffffff;
    const key_low = 0x00ff00;
    const key_mixed = 0x0000ff;
    const key_heigh = 0x00ffff;
    reg msg;
    
    msg = "LS: " + instr.Playrange.LS[0] + ' ' + instr.Playrange.LS[1];
    msg += "| HS: " + instr.Playrange.HS[0] + ' ' + instr.Playrange.HS[1];
    Console.print(msg);
    
    Engine.setLowestKeyToDisplay(instr.Playrange.LS[0] - 10);
    
    for (i = 0; i < 128; i++){
        if (i < instr.Playrange.LS[0] || i > instr.Playrange.HS[1]){
            Engine.setKeyColour(i, key_none);
            msg = i + " is key_none";
            Console.print(msg);
        } else if (i < instr.Playrange.HS[0]){
            Engine.setKeyColour(i, key_low);
            msg = i + " is key_low";
            Console.print(msg);
        } else if (i < instr.Playrange.LS[1]){
            Engine.setKeyColour(i, key_mixed);
            msg = i + " is key_mixed";
            Console.print(msg);
        } else {
            Engine.setKeyColour(i, key_heigh);
            msg = i + " is key_heigh";
            Console.print(msg);
        }
    }
    const var Label1 = Content.getComponent("Label1");
    
    
    
    function onNoteOn()
    {
        
    }
    function onNoteOff()
    {
        
    }
    function onController()
    {
        
    }
    function onTimer()
    {
        
    }
    function onControl(number, value)
    {
        
    }
    


  • hmm, in addition: now HISE is falling trying to open script view on this file...



  • @levitanus What version of HISE are you using?





  • @levitanus Your code is for old style HISE 1.5

    // [JSON Keyboard]

    These JSON tags are no longer required.

    Try a minimal example, add a keyboard and set the key colours, nothing else, and see if that works.



  • @d-healey also doesn't work:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Processor Type="SynthChain" ID="test3" Bypassed="0" Gain="1" Balance="0"
               VoiceLimit="256" KillFadeTime="20" IconColour="0" packageName=""
               BuildVersion="650">
      <ChildProcessors>
        <Processor Type="MidiProcessorChain" ID="Midi Processor" Bypassed="0">
          <ChildProcessors>
            <Processor Type="ScriptProcessor" ID="Interface" Bypassed="0">
              <ChildProcessors/>
              <Content/>
              <UIData>
                <ContentProperties DeviceType="Desktop">
                  <Component type="ScriptFloatingTile" id="FloatingTile1" x="115" y="108"
                             bgColour="0" itemColour="436207615" itemColour2="4294967295"
                             textColour="4294951115" ContentType="Keyboard" Data="{&#13;&#10;  &quot;KeyWidth&quot;: 14,&#13;&#10;  &quot;DisplayOctaveNumber&quot;: false,&#13;&#10;  &quot;LowKey&quot;: 12,&#13;&#10;  &quot;HiKey&quot;: 127,&#13;&#10;  &quot;CustomGraphics&quot;: false,&#13;&#10;  &quot;DefaultAppearance&quot;: true,&#13;&#10;  &quot;BlackKeyRatio&quot;: 0.69999999,&#13;&#10;  &quot;ToggleMode&quot;: false,&#13;&#10;  &quot;MidiChannel&quot;: 1,&#13;&#10;  &quot;MPEKeyboard&quot;: false&#13;&#10;}"
                             updateAfterInit="0" width="297" height="98"/>
                </ContentProperties>
              </UIData>
            </Processor>
          </ChildProcessors>
        </Processor>
        <Processor Type="ModulatorChain" ID="GainModulation" Bypassed="0" Intensity="1">
          <ChildProcessors/>
        </Processor>
        <Processor Type="ModulatorChain" ID="PitchModulation" Bypassed="1" Intensity="0">
          <ChildProcessors/>
        </Processor>
        <Processor Type="EffectChain" ID="FX" Bypassed="0">
          <ChildProcessors/>
        </Processor>
      </ChildProcessors>
      <RoutingMatrix NumSourceChannels="2" Channel0="0" Send0="-1" Channel1="1" Send1="-1"/>
      <macro_controls>
        <macro name="Macro 1" value="0" midi_cc="-1"/>
        <macro name="Macro 2" value="0" midi_cc="-1"/>
        <macro name="Macro 3" value="0" midi_cc="-1"/>
        <macro name="Macro 4" value="0" midi_cc="-1"/>
        <macro name="Macro 5" value="0" midi_cc="-1"/>
        <macro name="Macro 6" value="0" midi_cc="-1"/>
        <macro name="Macro 7" value="0" midi_cc="-1"/>
        <macro name="Macro 8" value="0" midi_cc="-1"/>
      </macro_controls>
      <MidiAutomation/>
      <MPEData Enabled="0"/>
    </Processor>
    
    


  • @levitanus

    Here is a minimal example, showing how to set the colour of a single key. Let me know if this works for you

    HiseSnippet 950.3ocsV0zaaaDDcWYQiJ0nhFfdI2HxIa.UAIUGmllCQ15iTgDaKDo31aAqIGItvq1kX4R6HDj+a9d+yze.EvcVtThRIJAQEn5Dm2LyxGmOdqFoUAPRhRSnUlrHFHzG3MdgzD0Mhwkjg8Hzev6LVhAz9NnSWDyRRfPBkt2Ks.zJkIY+96WbJSvjAPADgbohG.ulOmaJPG04UbgX.KDlvmuVzG0YXfR1UIToHe1yqIIlEbMaFbNyFVIOBc+9gbiRO1vLPBFyopvEiiT2JcweIOgek.rFsHiwCxAS5FwEgiV9slPHzxiJ9x2y8k+SdmwC4qvKp.+XlC+hLVuFPKsIkJuAkZ8knz.kHzd.eA5QWidkcz6gdiCz7XSgGK29dugRr4Lkgk80okKVB8e75pv.jlFyYWCCznwpDN33lMq6+jlMO740pVqZe4LtDZj.lWAKbcALh59tGSZbK2DchHNhcvRDMDV2uYi1Gd3ymlJCLbkzWIOWYfKjGbX0OTsR0OV8S8Lc51bYYoVIDfdadsyI5uRZGHSmeEnq6eCSjBKiCKca1a1+aq2D3pXqEnRNTxMWDC41EcuVao6QxK43SucXOlgYan4XXbwf1vszg1CtA2Nbs2Jd8fjqMp3rXmGqj1Sf9.S9roqgNPnXFtb1DNRaNxfZdSE190UJlNj79hko52sXkwcQcxe8t2UUuUYb0rk6aU1OLL7da3bCLu.896u+Qah1NGNKXC7dSQv+0cNzru5RgTuOTqpu+iwW2evCMQO927acT8Lnd7jXAawEAF1Mv4YsOz6TlHAbA7Z0sXZH1yb1+N2Y1p8Sc.cSSLp4uTyhi3AIalbOXJKUXNINFXZqlD51nSy8dp.0UvS6MXsTgdZ133m4947OQMal.NSEBadpVY.TVPJAgkHNv2l.WBA3T11YB5dffYFaVH9zSaT+ksgOyANwpMEup1qbzWFtFCNtV0ORt0VYITOZTIBIB3yhJzZ6LoC4ykRPAMUXJxpMU4rx44NvsqMjSrZFxDtYw5x86fzWysJ8s0kmuQ59PuQbSPz14aosvWbI7+a9leQRMu9SmhiDEjsr2f+7+5sF6.UdiJ0JNbFyn4nTfGtVMFWLCf7QlD6TRIq.kyto01VYFCxvLC6VctyVVaZtyVKcRlyBzp2E3zcsWU8cYHHmjY2RWA+6BnseKRlVri2ywEm2EDXKD+Lx7smQ6cNieYmy3ncNimryYb7NmwS24L90uRFVUpSRQoQ2ZABLpeldLk1WxvoprIPx+xaK4NJ
    


  • also, I can't understand what is about changing floating panel JSON:

    neither like this is not working:

    const var FloatingTile2 = Content.getComponent("FloatingTile2");
    var ftjson = {
      "OffImage": "midi.png",
      "OnImage": "midi.svg",
      "ShowMidiLabel": false
    };
    

    not in the script, not in the interface designer.
    only pure XML-preset hacking)


    @d.healey Yep, it works. Can't understand what the difference to my example...
    PS. AAgrh, with alpha...

    This works:

    Content.makeFrontInterface(600, 500);
    
    Content.makeFrontInterface(633, 300);
    Console.clear();
    var instr = Engine.loadFromJSON("../scripts/CB.json");
    Console.print(instr.name);
    
    reg i;
    
    const var key_none = 0x00;
    const var key_low = 0x6000ffff;
    const var key_mixed = 0x6000ff60;
    const var key_heigh = 0x6000ff00;
    reg msg;
    
    msg = "LS: " + instr.Playrange.LS[0] + ' ' + instr.Playrange.LS[1];
    msg += "| HS: " + instr.Playrange.HS[0] + ' ' + instr.Playrange.HS[1];
    Console.print(msg);
    
    Engine.setLowestKeyToDisplay(instr.Playrange.LS[0] - 10);
    
    for (i = 0; i < 128; i++){
        if (i < instr.Playrange.LS[0] || i > instr.Playrange.HS[1]){
            Engine.setKeyColour(i, key_none);
            msg = i + " is key_none";
            Console.print(msg);
        } else if (i < instr.Playrange.HS[0]){
            Engine.setKeyColour(i, key_low);
            msg = i + " is key_low";
            Console.print(msg);
        } else if (i < instr.Playrange.LS[1]){
            Engine.setKeyColour(i, key_mixed);
            msg = i + " is key_mixed";
            Console.print(msg);
        } else {
            Engine.setKeyColour(i, key_heigh);
            msg = i + " is key_heigh";
            Console.print(msg);
        }
    }
    


  • @levitanus When you make a change in the interface designer you must press F5 or Compile for the change to be applied.



  • @levitanus You have this at the top of your script

    Content.makeFrontInterface(600, 500);
    
    Content.makeFrontInterface(633, 300);
    

    Pick one 😛

    I don't have scripts/CB.json so I can't do much else to debug.

    This works for me though

    Content.makeFrontInterface(600, 500);
    
    const var key_low = 0x6000ffff;
    Engine.setKeyColour(60, key_low);
    

 

3
Online

353
Users

1.1k
Topics

7.6k
Posts