Skip to content

Conversation

@FloEdelmann
Copy link
Member

@FloEdelmann FloEdelmann commented Feb 2, 2026

Follow-up to #3658. CC @Doralitze

The order changed in dc0b990 (#3658) and I didn't notice.

See https://open-fixture-library.org/lightmaxx/led-blinder-4:

Before this PR With this PR
image image

@FloEdelmann FloEdelmann added the component-fixture Affects one or more existing fixture definitions. label Feb 2, 2026
@FloEdelmann FloEdelmann enabled auto-merge (squash) February 2, 2026 15:20
@github-actions
Copy link

github-actions bot commented Feb 2, 2026

Plugin export diff

(Output of test script tests/github/export-diff.js.)

You can view your uncommitted changes in plugin exports manually by executing:
$ node cli/diff-plugin-outputs.js -p <plugin-key> [-c <compare-plugin-key>] <fixtures>

🆚 lightmaxx/led-blinder-4: aglight
Changed outputted file aglight_fixture_library.json
--- removed
+++ added
@@ -27,12 +27,19 @@
           "type": "LED"
         }
       },
       "matrix": {
-        "pixelCount": [
-          2,
-          2,
-          1
+        "pixelKeys": [
+          [
+            [
+              "1",
+              "3"
+            ],
+            [
+              "2",
+              "4"
+            ]
+          ]
         ]
       },
       "availableChannels": {
         "Dimmer": {
@@ -98,37 +105,37 @@
             }
           ],
           "singleCapability": true
         },
-        "Intensity (1, 1)": {
-          "pixelKey": "(1, 1)",
+        "Intensity 1": {
+          "pixelKey": "1",
           "capabilities": [
             {
               "type": "Intensity"
             }
           ],
           "singleCapability": true
         },
-        "Intensity (1, 2)": {
-          "pixelKey": "(1, 2)",
+        "Intensity 2": {
+          "pixelKey": "2",
           "capabilities": [
             {
               "type": "Intensity"
             }
           ],
           "singleCapability": true
         },
-        "Intensity (2, 1)": {
-          "pixelKey": "(2, 1)",
+        "Intensity 3": {
+          "pixelKey": "3",
           "capabilities": [
             {
               "type": "Intensity"
             }
           ],
           "singleCapability": true
         },
-        "Intensity (2, 2)": {
-          "pixelKey": "(2, 2)",
+        "Intensity 4": {
+          "pixelKey": "4",
           "capabilities": [
             {
               "type": "Intensity"
             }
@@ -144,12 +151,12 @@
             "Dimmer",
             "Strobe",
             "Effect",
             "No function",
-            "Intensity (1, 1)",
-            "Intensity (2, 1)",
-            "Intensity (1, 2)",
-            "Intensity (2, 2)"
+            "Intensity 1",
+            "Intensity 2",
+            "Intensity 3",
+            "Intensity 4"
           ]
         }
       ],
       "fixtureKey": "led-blinder-4",
🆚 lightmaxx/led-blinder-4: color-chief
Changed outputted file lightmaxx_led-blinder-4_8ch_1_of_2.lib
--- removed
+++ added
@@ -1,1 +1,1 @@
-����������======��======�=======�=======�==�==����������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
+����������======�=======�=======�=======�==�==����������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
Changed outputted file lightmaxx_led-blinder-4_8ch_1_of_2.txt
--- removed
+++ added
@@ -3,33 +3,33 @@
 Blue 1: –
 White 1: –
 Amber 1: –
 UV 1: –
-Dimmer 1: Dimmer
-Shutter 1: Strobe
+Dimmer 1: Intensity 1
+Shutter 1: –
 Red 2: –
 Green 2: –
 Blue 2: –
 White 2: –
 Amber 2: –
 UV 2: –
-Dimmer 2: Intensity (1, 1)
+Dimmer 2: Intensity 2
 Shutter 2: –
 Red 3: –
 Green 3: –
 Blue 3: –
 White 3: –
 Amber 3: –
 UV 3: –
-Dimmer 3: Intensity (2, 1)
+Dimmer 3: Intensity 3
 Shutter 3: –
 Red 4: –
 Green 4: –
 Blue 4: –
 White 4: –
 Amber 4: –
 UV 4: –
-Dimmer 4: Intensity (1, 2)
+Dimmer 4: Intensity 4
 Shutter 4: –
 Color Wheel: –
 FP 1: Effect
 FP 2: –
Changed outputted file lightmaxx_led-blinder-4_8ch_2_of_2.lib
--- removed
+++ added
@@ -1,1 +1,1 @@
-����������======�=============================����������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
+����������======��============================����������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
Changed outputted file lightmaxx_led-blinder-4_8ch_2_of_2.txt
--- removed
+++ added
@@ -3,10 +3,10 @@
 Blue 1: –
 White 1: –
 Amber 1: –
 UV 1: –
-Dimmer 1: Intensity (2, 2)
-Shutter 1: –
+Dimmer 1: Dimmer
+Shutter 1: Strobe
 Red 2: –
 Green 2: –
 Blue 2: –
 White 2: –
🆚 lightmaxx/led-blinder-4: colorsource
Changed outputted file userlib.jlib
--- removed
+++ added
@@ -108,9 +108,9 @@
           "fadeWithIntensity": false,
           "highlight": 65535,
           "home": 0,
           "invert": false,
-          "name": "Intensity (1, 1)",
+          "name": "Intensity 1",
           "ranges": [
             {
               "begin": 0,
               "default": 0,
@@ -127,9 +127,9 @@
           "fadeWithIntensity": false,
           "highlight": 65535,
           "home": 0,
           "invert": false,
-          "name": "Intensity (2, 1)",
+          "name": "Intensity 2",
           "ranges": [
             {
               "begin": 0,
               "default": 0,
@@ -146,9 +146,9 @@
           "fadeWithIntensity": false,
           "highlight": 65535,
           "home": 0,
           "invert": false,
-          "name": "Intensity (1, 2)",
+          "name": "Intensity 3",
           "ranges": [
             {
               "begin": 0,
               "default": 0,
@@ -165,9 +165,9 @@
           "fadeWithIntensity": false,
           "highlight": 65535,
           "home": 0,
           "invert": false,
-          "name": "Intensity (2, 2)",
+          "name": "Intensity 4",
           "ranges": [
             {
               "begin": 0,
               "default": 0,
🆚 lightmaxx/led-blinder-4: d-light
Changed outputted file lightmaxx/led-blinder-4-8ch.xml
--- removed
+++ added
@@ -19,9 +19,9 @@
       </ThisAttribute>
       <ThisAttribute id="1">
         <HOME id="0"/>
         <addressIndex id="4"/>
-        <parameterName id="INTENSITY_(1,_1)"/>
+        <parameterName id="INTENSITY_1"/>
         <minLevel id="0"/>
         <maxLevel id="255"/>
         <Definitions index="1">
           <name min="0" max="255" snap="0" timeHolder="0" dummy="0">Intensity off…bright</name>
@@ -29,9 +29,9 @@
       </ThisAttribute>
       <ThisAttribute id="2">
         <HOME id="0"/>
         <addressIndex id="5"/>
-        <parameterName id="INTENSITY_(2,_1)"/>
+        <parameterName id="INTENSITY_2"/>
         <minLevel id="0"/>
         <maxLevel id="255"/>
         <Definitions index="1">
           <name min="0" max="255" snap="0" timeHolder="0" dummy="0">Intensity off…bright</name>
@@ -39,9 +39,9 @@
       </ThisAttribute>
       <ThisAttribute id="3">
         <HOME id="0"/>
         <addressIndex id="6"/>
-        <parameterName id="INTENSITY_(1,_2)"/>
+        <parameterName id="INTENSITY_3"/>
         <minLevel id="0"/>
         <maxLevel id="255"/>
         <Definitions index="1">
           <name min="0" max="255" snap="0" timeHolder="0" dummy="0">Intensity off…bright</name>
@@ -49,9 +49,9 @@
       </ThisAttribute>
       <ThisAttribute id="4">
         <HOME id="0"/>
         <addressIndex id="7"/>
-        <parameterName id="INTENSITY_(2,_2)"/>
+        <parameterName id="INTENSITY_4"/>
         <minLevel id="0"/>
         <maxLevel id="255"/>
         <Definitions index="1">
           <name min="0" max="255" snap="0" timeHolder="0" dummy="0">Intensity off…bright</name>
🆚 lightmaxx/led-blinder-4: dmxcontrol3
Changed outputted file lightmaxx-led-blinder-4-8ch.xml
--- removed
+++ added
@@ -21,20 +21,20 @@
       <range mindmx="201" maxdmx="255" minval="1" maxval="100" caption="on-off rotated slow…fast" type="linear"/>
     </raw>
   </functions>
   <functions>
-    <!-- (1, 1) -->
-    <dimmer name="Intensity (1, 1)" dmxchannel="4"/>
+    <!-- 1 -->
+    <dimmer name="Intensity 1" dmxchannel="4"/>
   </functions>
   <functions>
-    <!-- (2, 1) -->
-    <dimmer name="Intensity (2, 1)" dmxchannel="5"/>
+    <!-- 3 -->
+    <dimmer name="Intensity 3" dmxchannel="6"/>
   </functions>
   <functions>
-    <!-- (1, 2) -->
-    <dimmer name="Intensity (1, 2)" dmxchannel="6"/>
+    <!-- 2 -->
+    <dimmer name="Intensity 2" dmxchannel="5"/>
   </functions>
   <functions>
-    <!-- (2, 2) -->
-    <dimmer name="Intensity (2, 2)" dmxchannel="7"/>
+    <!-- 4 -->
+    <dimmer name="Intensity 4" dmxchannel="7"/>
   </functions>
 </device>
\ No newline at end of file
🆚 lightmaxx/led-blinder-4: dragonframe
Changed outputted file lightmaxx/led-blinder-4.json
--- removed
+++ added
@@ -24,12 +24,19 @@
       "type": "LED"
     }
   },
   "matrix": {
-    "pixelCount": [
-      2,
-      2,
-      1
+    "pixelKeys": [
+      [
+        [
+          "1",
+          "3"
+        ],
+        [
+          "2",
+          "4"
+        ]
+      ]
     ]
   },
   "templateChannels": {
     "Intensity $pixelKey": {
@@ -106,16 +113,12 @@
         "Dimmer",
         "Strobe",
         "Effect",
         "No function",
-        {
-          "insert": "matrixChannels",
-          "repeatFor": "eachPixelXYZ",
-          "channelOrder": "perPixel",
-          "templateChannels": [
-            "Intensity $pixelKey"
-          ]
-        }
+        "Intensity 1",
+        "Intensity 2",
+        "Intensity 3",
+        "Intensity 4"
       ]
     }
   ],
   "fixtureKey": "led-blinder-4",
🆚 lightmaxx/led-blinder-4: ecue
Changed outputted file UserLibrary.xml
--- removed
+++ added
@@ -19,18 +19,18 @@
                     </ChannelBeam>
                     <ChannelBeam Name="No function" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="4" DmxByte1="0" Constant="0" Crossfade="0" Invert="0" Precedence="LTP" ClassicPos="4">
                         <Range Name="No function" Start="0" End="255" AutoMenu="1" Centre="0"/>
                     </ChannelBeam>
-                    <ChannelIntensity Name="Intensity (1, 1)" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="5" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="5">
+                    <ChannelIntensity Name="Intensity 1" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="5" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="5">
                         <Range Name="Intensity off…bright" Start="0" End="255" AutoMenu="1" Centre="0"/>
                     </ChannelIntensity>
-                    <ChannelIntensity Name="Intensity (2, 1)" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="6" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="6">
+                    <ChannelIntensity Name="Intensity 2" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="6" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="6">
                         <Range Name="Intensity off…bright" Start="0" End="255" AutoMenu="1" Centre="0"/>
                     </ChannelIntensity>
-                    <ChannelIntensity Name="Intensity (1, 2)" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="7" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="7">
+                    <ChannelIntensity Name="Intensity 3" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="7" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="7">
                         <Range Name="Intensity off…bright" Start="0" End="255" AutoMenu="1" Centre="0"/>
                     </ChannelIntensity>
-                    <ChannelIntensity Name="Intensity (2, 2)" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="8" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="8">
+                    <ChannelIntensity Name="Intensity 4" DefaultValue="0" Highlight="255" Deflection="0" DmxByte0="8" DmxByte1="0" Constant="0" Crossfade="1" Invert="0" Precedence="LTP" ClassicPos="8">
                         <Range Name="Intensity off…bright" Start="0" End="255" AutoMenu="1" Centre="0"/>
                     </ChannelIntensity>
                 </Fixture>
             </Manufacturer>
🆚 lightmaxx/led-blinder-4: millumin
Changed outputted file lightmaxx/led-blinder-4.json
--- removed
+++ added
@@ -16,12 +16,19 @@
       "type": "LED"
     }
   },
   "matrix": {
-    "pixelCount": [
-      2,
-      2,
-      1
+    "pixelKeys": [
+      [
+        [
+          "1",
+          "3"
+        ],
+        [
+          "2",
+          "4"
+        ]
+      ]
     ]
   },
   "availableChannels": {
     "Dimmer": {
@@ -80,16 +87,12 @@
         "Dimmer",
         "Strobe",
         "Effect",
         "No function",
-        {
-          "insert": "matrixChannels",
-          "repeatFor": "eachPixelXYZ",
-          "channelOrder": "perPixel",
-          "templateChannels": [
-            "Intensity $pixelKey"
-          ]
-        }
+        "Intensity 1",
+        "Intensity 2",
+        "Intensity 3",
+        "Intensity 4"
       ]
     }
   ],
   "fixtureKey": "led-blinder-4",
💤 lightmaxx/led-blinder-4: op-z Outputted files not changed.
🆚 lightmaxx/led-blinder-4: qlcplus_4.12.2
Changed outputted file fixtures/lightmaXX-LED-Blinder-4.qxf
--- removed
+++ added
@@ -22,29 +22,29 @@
   <Capability Min="141" Max="200" Preset="SlowToFast">fade rotated slow…fast</Capability>
   <Capability Min="201" Max="255" Preset="SlowToFast">on-off rotated slow…fast</Capability>
  </Channel>
  <Channel Name="No function" Preset="NoFunction"/>
- <Channel Name="Intensity (1, 1)" Preset="IntensityDimmer"/>
- <Channel Name="Intensity (1, 2)" Preset="IntensityDimmer"/>
- <Channel Name="Intensity (2, 1)" Preset="IntensityDimmer"/>
- <Channel Name="Intensity (2, 2)" Preset="IntensityDimmer"/>
+ <Channel Name="Intensity 1" Preset="IntensityDimmer"/>
+ <Channel Name="Intensity 2" Preset="IntensityDimmer"/>
+ <Channel Name="Intensity 3" Preset="IntensityDimmer"/>
+ <Channel Name="Intensity 4" Preset="IntensityDimmer"/>
  <Mode Name="8-channel">
   <Channel Number="0">Dimmer</Channel>
   <Channel Number="1">Strobe</Channel>
   <Channel Number="2">Effect</Channel>
   <Channel Number="3">No function</Channel>
-  <Channel Number="4">Intensity (1, 1)</Channel>
-  <Channel Number="5">Intensity (2, 1)</Channel>
-  <Channel Number="6">Intensity (1, 2)</Channel>
-  <Channel Number="7">Intensity (2, 2)</Channel>
+  <Channel Number="4">Intensity 1</Channel>
+  <Channel Number="5">Intensity 2</Channel>
+  <Channel Number="6">Intensity 3</Channel>
+  <Channel Number="7">Intensity 4</Channel>
   <Head>
    <Channel>4</Channel>
   </Head>
   <Head>
-   <Channel>5</Channel>
+   <Channel>6</Channel>
   </Head>
   <Head>
-   <Channel>6</Channel>
+   <Channel>5</Channel>
   </Head>
   <Head>
    <Channel>7</Channel>
   </Head>

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

Export files validity

(Output of test script tests/github/exports-valid.js.)

Test the exported files of selected fixtures against the plugins' export tests.
You can run a plugin's export tests by executing:
$ node cli/run-export-test.js -p <plugin name> <fixtures>

✔️ lightmaxx / led-blinder-4: d-light / attributes-correctness
  • ✔️ lightmaxx/led-blinder-4-8ch.xml
✔️ lightmaxx / led-blinder-4: dmxcontrol3 / channel-numbers
  • ✔️ lightmaxx-led-blinder-4-8ch.xml
✔️ lightmaxx / led-blinder-4: dragonframe / json-schema-conformity
  • ✔️ lightmaxx/led-blinder-4.json
  • ✔️ manufacturers.json
✔️ lightmaxx / led-blinder-4: millumin / json-schema-conformity
  • ✔️ lightmaxx/led-blinder-4.json
✔️ lightmaxx / led-blinder-4: qlcplus_4.12.2 / fixture-tool-validation
  • ✔️ fixtures/lightmaXX-LED-Blinder-4.qxf
✔️ lightmaxx / led-blinder-4: qlcplus_4.12.2 / xsd-schema-conformity
  • ✔️ fixtures/lightmaXX-LED-Blinder-4.qxf

@FloEdelmann FloEdelmann merged commit fa830c3 into master Feb 2, 2026
5 checks passed
@FloEdelmann FloEdelmann deleted the blinder-4 branch February 2, 2026 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component-fixture Affects one or more existing fixture definitions.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants