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="{ "KeyWidth": 14, "DisplayOctaveNumber": false, "LowKey": 12, "HiKey": 127, "CustomGraphics": false, "DefaultAppearance": true, "BlackKeyRatio": 0.69999999, "ToggleMode": false, "MidiChannel": 1, "MPEKeyboard": false }" 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>
-
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 :p
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);