Js Beta Testing

Good morning,
I have this simple js script on a scripting button:

/// <reference path="C:/Users/xxx/AppData/Roaming/Elgato/StreamDeck/Plugins/se.trevligaspel.midi.sdPlugin/ScriptJint/streamdeck-midi.d.ts" />

function OnInit() {
    ui.text("Init")
}

function OnKeyPressed() {
    ui.text("Pressed" + g_tname_sel);

}


function OnGlobalVariableChanged(g_tname_sel, value) {
  ui.text(value); 
}

Whenever g_tname_sel is changed by the background script, the control displays some text (that i can hardly read but seems to come from another variable: g_dname_sel) and immediately after à 0 (or a 1 or eve,n sometimes another number 3, 6 …).
Log: 4221bc51-d312-4167-ae57-bee35ab88e80

… and after a couple of iterations (and it seems calling the variable display panel) , I get the infamous “Please wait, the plugin is loading …”.
I cannot access then the log file, but just in case this is the last lines i can see in the file :

2026-03-24 06:04:15.3001      0,00ms DEBUG    37  Command          LockCommand                   [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Command locked]
2026-03-24 06:04:15.3001      0,00ms DEBUG    37  ScriptEngine     Event_Common                  [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Executing command (init+)(@l_disp:1)(cc:16,0,1-24){value:#@e_ccvalue#}]
2026-03-24 06:04:15.3001      0,00ms DEBUG    37  ScriptEngine     AddBuiltinVariables           [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Adding reference variables]
2026-03-24 06:04:15.3002      0,10ms DEBUG    37  ccEvent          SetValueVariables             [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F channel=(16), control=(0), value=(17)]
2026-03-24 06:04:15.3002      0,01ms DEBUG    37  ccEvent          SetBuiltinVariables           [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F ccchannel=(16), cc=(0), ccvalue=(17)]
2026-03-24 06:04:15.3003      0,05ms DEBUG    37  ScriptEngine     RunActionList                 [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F (init+)(@l_disp:1)(cc:16,0,1-24){value:#@e_ccvalue#}]
2026-03-24 06:04:15.3003      0,01ms DEBUG    37  DialScript       CmddExStartStop               [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F isStart=True, commandCount=0]
2026-03-24 06:04:15.3004      0,16ms DEBUG    37  valueAction      Execute                       [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Setting value 17, WhilePressed=False]
2026-03-24 06:04:15.3005      0,01ms DEBUG    37  ValueController  SaveValue                     [6dfe2d8769f4407f86276c3e00dd7a41_main updating previous value(18)  new value(17)]
2026-03-24 06:04:15.3005      0,00ms DEBUG    37  DialScript       CmddExStartStop               [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F isStart=False, commandCount=1]
2026-03-24 06:04:15.3005      0,00ms DEBUG    37  DialScript       PrepareDropDowns              [6dfe2d8769f4407f86276c3e00dd7a41 ]
2026-03-24 06:04:15.3009      0,48ms DEBUG    37  LayoutFileCtrl   AddProperty                   [6dfe2d8769f4407f86276c3e00dd7a41 Creating property for layout property 'l_toptext_full_width.color', Value = '##B8A46E']
2026-03-24 06:04:15.3010      0,05ms DEBUG    37  LayoutFileCtrl   AddProperty                   [6dfe2d8769f4407f86276c3e00dd7a41 Creating property for layout property 'l_fadertext_left_side_upper_row.color', Value = 'Gray']
2026-03-24 06:04:15.3010      0,04ms DEBUG    37  LayoutFileCtrl   GetCustomLayoutVars           [6dfe2d8769f4407f86276c3e00dd7a41 LayoutVariables: l_toptext_full_width (text) 190/33)|l_fadertext_left_side_upper_row (text) 200/24)]
2026-03-24 06:04:15.3011      0,04ms DEBUG    37  ImageController  GetImageShared                [6dfe2d8769f4407f86276c3e00dd7a41 'C:\Users\LPA\Documents\Trevliga Spel\Designs\TR_Selector_Background.png' from cache]
2026-03-24 06:04:15.3016      0,52ms DEBUG    37  ImageController  GetImageShared                [6dfe2d8769f4407f86276c3e00dd7a41 'C:\Users\LPA\Documents\Trevliga Spel\Designs\TR_Selector_Handle.png' from cache]
2026-03-24 06:04:15.3023      0,75ms DEBUG    37  Tools            GetAdjustedFont               [6dfe2d8769f4407f86276c3e00dd7a41 Font size found for text ´Keys 2´: size=25, available space=(width:190,height:33), calculated space=(width:67,12891,height:27,599999999999998)]
2026-03-24 06:04:15.3024      0,02ms DEBUG    37  Tools            GetAdjustedFont               [6dfe2d8769f4407f86276c3e00dd7a41 Font size found for text ´Theme 2´: size=22, available space=(width:200,height:24), calculated space=(width:82,961914,height:19,549999999999997)]
2026-03-24 06:04:15.3025      0,09ms DEBUG    37  Dial_Tools       GetChangedJsonItems           [6dfe2d8769f4407f86276c3e00dd7a41 final result = (isChanged:True) isForced:False) (Json:l_fader:{"value":"data:image/png;base64,iVBORw0KGgoAAAANSU...}, )
2026-03-24 06:04:15.3026      0,10ms DEBUG    37  ScriptEngine     ClearBuiltinVariables         [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Reference variables removed]
2026-03-24 06:04:15.3026      0,01ms DEBUG    37  Command          ReleaseCommand                [6dfe2d8769f4407f86276c3e00dd7a41:47EEFB7A4B384086BA3CE912DF86706F Command released]
2026-03-24 06:04:15.3026      0,03ms DEBUG    37  ccEvent          WillTriggerCommand            [1aa0dd2570e3cfba9d253809be8d816f:730981308E6C40318258449D2286750B (cc:1,24,0-127) Event not met for cc (16/0/17)]
2026-03-24 06:04:15.3026      0,03ms DEBUG    37  ccEvent          WillTriggerCommand            [b5b81ef7b1520139b9e7854e39731c07:5EEF65C3DFAB4410A44AC254C008029D (cc:1,25,0-127) Event not met for cc (16/0/17)]
2026-03-24 06:04:15.3027      0,03ms DEBUG    37  ccEvent          WillTriggerCommand            [4c5083655f65b8f3640eeb592a94c5ac:D4BECAEE9DF1407393CDAC77C6BA300B (cc:1,67,0-127) Event not met for cc (16/0/17)]
2026-03-24 06:04:15.3027      0,01ms DEBUG    37  ccEvent          WillTriggerCommand            [4c5083655f65b8f3640eeb592a94c5ac:DDA2C1BE79714E5E979ECB32F1620802 (cc:1,67,0-127) Event not met for cc (16/0/17)]
2026-03-24 06:04:15.3028      0,18ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:221F83B0B56D45F5BB49B2A87DEC4860 (sysex:) Not triggered: pattern=(F0 5C 01 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3028      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:26FA6E3F3A0D4FD394571561FA0F4083 (sysex:) Not triggered: pattern=(F0 5C 02 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3028      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:9AA0C850A93045E0AE9D89F667FFE812 (sysex:) Not triggered: pattern=(F0 6A 00 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3028      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:D77E96521F7E4205B50AC793B77FB07E (sysex:) Not triggered: pattern=(F0 6B 01 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3028      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:843BD858210B4E5ABB024D9C3812207E (sysex:) Not triggered: pattern=(F0 6B 02 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3028      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:BEBDDA617B5E4942B2227364925CE605 (sysex:) Not triggered: pattern=(F0 6B 03 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:AAA2F61FB21A417B924B68BF11A43676 (sysex:) Not triggered: pattern=(F0 6B 04 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:290BA74BED9F4CEDB160D8CEF89D2426 (sysex:) Not triggered: pattern=(F0 6C 00 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:1B6C2BC8C8DA413396F946A2652F5310 (sysex:) Not triggered: pattern=(F0 6D XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:AEA46B39C37645BBA03EBAF2D4AEB877 (sysex:) Not triggered: pattern=(F0 6E 00 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:6DE2DB222A354AE6809C4949AC54CE94 (sysex:) Not triggered: pattern=(F0 6F 00 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:E231A8AACC79458C88B87BB24084A504 (sysex:) Not triggered: pattern=(F0 7A XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:45915F3783EE4AFDB912253F23075D3B (sysex:) Not triggered: pattern=(F0 7B xx F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:737219B79E2243058965264F5409C116 (sysex:) Triggered: matched segment [1-9], pattern=(F0 70 XX F7), msg=(70 00 00 00 00 00 00 00 00 00), extracted=(00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:51DD616D40BC4217A3364604C7399C12 (sysex:) Triggered: matched segment [1-9], pattern=(F0 70 XX F7), msg=(70 00 00 00 00 00 00 00 00 00), extracted=(00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:A5EE7DF79FC846A9ABDDE6F2F2A393F9 (sysex:) Triggered: matched segment [1-9], pattern=(F0 70 XX F7), msg=(70 00 00 00 00 00 00 00 00 00), extracted=(00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  sysexEvent       WillTriggerCommand            [BackgroundScript1:0397FEB65BE743F3962FD3EFD187DA4D (sysex:) Not triggered: pattern=(F0 71 00 XX F7), msg=(70 00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3029      0,03ms DEBUG    37  Command          LockCommand                   [BackgroundScript1:737219B79E2243058965264F5409C116 Command locked]
2026-03-24 06:04:15.3029      0,01ms DEBUG    37  ScriptEngine     Event_Common                  [BackgroundScript1:737219B79E2243058965264F5409C116 Executing command (sysex:F0 70 XX F7){@g_clstart:#BITOR(BITLSHIFT(HEXVALUE(MID(@e_sysex,1,2)),14),BITOR(BITLSHIFT(HEXVALUE(MID(@e_sysex,4,2)),7),HEXVALUE(MID(@e_sysex,7,2))))/1000#}]
2026-03-24 06:04:15.3029      0,00ms DEBUG    37  ScriptEngine     AddBuiltinVariables           [BackgroundScript1:737219B79E2243058965264F5409C116 Adding reference variables]
2026-03-24 06:04:15.3030      0,05ms DEBUG    37  sysexEvent       GetLatestEventState           [BackgroundScript1:737219B79E2243058965264F5409C116 (sysex:) pattern=(F0 70 XX F7) extracted=(00 00 00 00 00 00 00 00 00)]
2026-03-24 06:04:15.3030      0,00ms DEBUG    37  sysexEvent       SetBuiltinVariables           [BackgroundScript1:737219B79E2243058965264F5409C116 sysex=(00 00 00 00 00 00 00 00 00), sysexvalue=(0), sysextext=(         )]
2026-03-24 06:04:15.3030      0,04ms DEBUG    37  ScriptEngine     RunActionList                 [BackgroundScript1:737219B79E2243058965264F5409C116 (sysex:F0 70 XX F7){@g_clstart:#BITOR(BITLSHIFT(HEXVALUE(MID(@e_sysex,1,2)),14),BITOR(BITLSHIFT(HEXVALUE(MID(@e_sysex,4,2)),7),HEXVALUE(MID(@e_sysex,7,2))))/1000#}]
2026-03-24 06:04:15.3033      0,31ms DEBUG    37  variableAction   Execute                       [BackgroundScript1 Setting variable as int 'g_clstart'='0']
2026-03-24 06:04:15.3034      0,08ms DEBUG    23  ScriptEngine_JS  InvokeAsync                   [5f1dd93981e35a8c2845741c50ccbf8f Calling 'OnGlobalVariableChanged' with args=(g_clstart, 0)]
2026-03-24 06:04:15.3034      0,00ms DEBUG    23  Button_C_Base    CmddExStartStop               [5f1dd93981e35a8c2845741c50ccbf8f: isStart=True, commandCount=0]
2026-03-24 06:04:15.3034      0,04ms DEBUG    23  TitleThrottler   SetTitle                      [5f1dd93981e35a8c2845741c50ccbf8f same title as last, ignoring '0' and clearing queue]
2026-03-24 06:04:21.5600   6256,52ms DEBUG     3  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f DebugWindow : Yes]
2026-03-24 06:04:21.5600      0,03ms DEBUG     3  GenericMidi      VariableWindow                [5f1dd93981e35a8c2845741c50ccbf8f Yes]
2026-03-24 06:04:23.2739   1713,91ms DEBUG    34  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f DebugWindow : Yes]
2026-03-24 06:04:23.2739      0,03ms DEBUG    34  GenericMidi      VariableWindow                [5f1dd93981e35a8c2845741c50ccbf8f Yes]
2026-03-24 06:04:23.8240    550,12ms DEBUG     3  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f DebugWindow : Yes]
2026-03-24 06:04:23.8241      0,03ms DEBUG     3  GenericMidi      VariableWindow                [5f1dd93981e35a8c2845741c50ccbf8f Yes]
2026-03-24 06:04:26.6535   2829,42ms DEBUG    43  GenericMidi      OnPIDidDisappear              [5f1dd93981e35a8c2845741c50ccbf8f]
2026-03-24 06:04:26.6536      0,07ms DEBUG    43  VariableWindow   SetWindowClosed               [5f1dd93981e35a8c2845741c50ccbf8f]
2026-03-24 06:04:26.8175    163,98ms DEBUG    43  DialScript       OnSendToPlugin                [6dfe2d8769f4407f86276c3e00dd7a41 propertyInspectorConnected]
2026-03-24 06:04:27.0664    248,90ms DEBUG     3  DialScript       OnSendToPlugin                [6dfe2d8769f4407f86276c3e00dd7a41 propertyInspectorPresent]
2026-03-24 06:04:27.0665      0,02ms DEBUG     3  DialScript       PrepareDropDowns              [6dfe2d8769f4407f86276c3e00dd7a41 ]
2026-03-24 06:04:27.0667      0,27ms DEBUG     3  DialScript       SaveSettings                  [6dfe2d8769f4407f86276c3e00dd7a41 ]
2026-03-24 06:04:27.0669      0,17ms DEBUG     3  DialScript       SendToPI                      [6dfe2d8769f4407f86276c3e00dd7a41 ]
2026-03-24 06:04:29.3225   2255,64ms DEBUG    34  DialScript       OnPIDidDisappear              [6dfe2d8769f4407f86276c3e00dd7a41]
2026-03-24 06:04:29.3225      0,02ms DEBUG    34  VariableWindow   SetWindowClosed               [6dfe2d8769f4407f86276c3e00dd7a41]
2026-03-24 06:04:29.5401    217,59ms DEBUG     3  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f property_inspector : propertyInspectorConnected]
2026-03-24 06:04:29.7910    250,91ms DEBUG    34  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f True : propertyInspectorPresent]
2026-03-24 06:04:29.7911      0,02ms DEBUG    34  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f propertyInspectorPresent]
2026-03-24 06:04:29.7913      0,24ms DEBUG    34  GenericMidi      SaveSettings                  [5f1dd93981e35a8c2845741c50ccbf8f OutPort(BMT 4) InPort(BMT 5) Channel(0) Command(CC)]
2026-03-24 06:04:29.7917      0,43ms DEBUG    34  GenericMidi      SendToPI                      [5f1dd93981e35a8c2845741c50ccbf8f OutPort(BMT 4) InPort(BMT 5) Channel(0) Command(CC)]
2026-03-24 06:04:31.5922   1800,47ms DEBUG    34  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f DebugWindow : Yes]
2026-03-24 06:04:31.5922      0,02ms DEBUG    34  GenericMidi      VariableWindow                [5f1dd93981e35a8c2845741c50ccbf8f Yes]
2026-03-24 06:04:31.5922      0,00ms DEBUG    34  VariableWindow   ShowVariablesWindow           [5f1dd93981e35a8c2845741c50ccbf8f]
2026-03-24 06:04:31.7081    115,91ms DEBUG     3  GenericMidi      OnSendToPlugin                [5f1dd93981e35a8c2845741c50ccbf8f DebugWindow : Ready]
2026-03-24 06:04:31.7082      0,02ms DEBUG     3  GenericMidi      VariableWindow                [5f1dd93981e35a8c2845741c50ccbf8f Ready]

And I don’t know if it’s related but sometimes I have noticed that the input port is duplicated (BMT5 - the input port - remains open even after the streamdeck app is closed).

The problem is that the local variable g_tname_sel is never set. In the event…

function OnGlobalVariableChanged(g_tname_sel, value) {
  ui.text(value); 
}

…the first argument is only that - an argument; it does not reference the local variable g_tname_sel. In fact, naming the argument g_tname_sel prevents you from actually accessing the local variable g_tname_sel.

In addition, the OnGlobalVariableChanged() event is called for ALL changes to global variables, so you need to check if it is your variable that is changed. The correct use of OnGlobalVariableChanged() is like this:

function OnGlobalVariableChanged(name, value) {
	if (name == "g_tname_sel")
	{
		g_tname_sel = value;
		ui.text(g_tname_sel); 
	}
}

And the full script should look like this:

var g_tname_sel = 0;

function OnInit() {
    ui.text("Init");
}

function OnKeyPressed() {
    ui.text("Pressed " + g_tname_sel);
}

function OnGlobalVariableChanged(name, value) {
	if (name == "g_tname_sel")
	{
		g_tname_sel = value;
		ui.text(g_tname_sel); 
	}
}

That said, there are issues with the script execution that can cause the plugin to crash. I have not located that problem yet, but it seems to be related to the display of the variable window.

I’ve encountered similar issues, but only when the plugin crashes. During a normal shutdown, it seems to close the ports correctly. I’ll keep an eye on this.