Multi-head laser fixture: independent pixel color per head in Custom fixture (6 heads, 42ch, pan/tilt + RGB)
Posted: Wed Mar 11, 2026 1:06 pm
Hi,
I'm working with laser bars with PAN/TILT and 6 heads each, controlled by 42 DMX channels. I already have the fixture created in MadMapper and it works fine: I can control global PAN/TILT, per-head PAN, and per-head RGB using the DMX sliders.
DMX layout (summary):
Ch1 Dimmer (global), Ch2 Strobe, Ch3 Macro, Ch4 Macro Speed, Ch5 Color Wheel, Ch6 Color Speed
Ch7–8 Tilt / Tilt Fine
Ch9–10 Pan Master / Pan Fine
Ch11 PT Speed
For each of the 6 heads: PanX, PanFineX, rX, gX, bX
Last channel: Reset
My goal is to use MadMapper as if this was a pixel-mapped LED bar: each head receives the color of a different pixel from the video input (head 1 = pixel 0, head 2 = pixel 1 … head 6 = pixel 5). At the same time I need to keep PAN/TILT and DIMMER channels working normally as sliders — I work with 32 to 100 bars, so splitting into 6 fixtures per bar is not viable.
What I have tried:
I've read the RGBW expression thread (viewtopic.php?f=21&t=35795) and I know expressions like R+G, R-W, (R-W), R*0.5, sin(time) work correctly in uppercase with the pixel patched.
I tried pixel(0).r, pixel(0,0).r, getPixel(...) etc. to map each input pixel to r1/g1/b1, r2/g2/b2 and so on — but the editor marks them red (error) and does not accept them.
If I switch Pixel Type to pure RGB, pixel mapping works but I can no longer add the extra channels (dimmer, pan, tilt) without MadMapper forcing the fixture back to Custom.
My question:
Is there any expression syntax in the Fixture Editor to access multiple input pixels by index from a Custom fixture? Something like PIXEL[index].r or similar? If yes, what is the exact syntax to write: r1 = ???(0).r, g1 = ???(0).g, b1 = ???(0).b, r2 = ???(1).r … up to head 6, while keeping PAN/TILT and DIMMER as normal sliders?
If this is not possible, what is the recommended workflow for a multi-head fixture (6 heads, independent PAN + RGB each) with per-head pixel mapping, without creating 6 separate fixtures per bar?
Thanks in advance!
I'm working with laser bars with PAN/TILT and 6 heads each, controlled by 42 DMX channels. I already have the fixture created in MadMapper and it works fine: I can control global PAN/TILT, per-head PAN, and per-head RGB using the DMX sliders.
DMX layout (summary):
Ch1 Dimmer (global), Ch2 Strobe, Ch3 Macro, Ch4 Macro Speed, Ch5 Color Wheel, Ch6 Color Speed
Ch7–8 Tilt / Tilt Fine
Ch9–10 Pan Master / Pan Fine
Ch11 PT Speed
For each of the 6 heads: PanX, PanFineX, rX, gX, bX
Last channel: Reset
My goal is to use MadMapper as if this was a pixel-mapped LED bar: each head receives the color of a different pixel from the video input (head 1 = pixel 0, head 2 = pixel 1 … head 6 = pixel 5). At the same time I need to keep PAN/TILT and DIMMER channels working normally as sliders — I work with 32 to 100 bars, so splitting into 6 fixtures per bar is not viable.
What I have tried:
I've read the RGBW expression thread (viewtopic.php?f=21&t=35795) and I know expressions like R+G, R-W, (R-W), R*0.5, sin(time) work correctly in uppercase with the pixel patched.
I tried pixel(0).r, pixel(0,0).r, getPixel(...) etc. to map each input pixel to r1/g1/b1, r2/g2/b2 and so on — but the editor marks them red (error) and does not accept them.
If I switch Pixel Type to pure RGB, pixel mapping works but I can no longer add the extra channels (dimmer, pan, tilt) without MadMapper forcing the fixture back to Custom.
My question:
Is there any expression syntax in the Fixture Editor to access multiple input pixels by index from a Custom fixture? Something like PIXEL[index].r or similar? If yes, what is the exact syntax to write: r1 = ???(0).r, g1 = ???(0).g, b1 = ???(0).b, r2 = ???(1).r … up to head 6, while keeping PAN/TILT and DIMMER as normal sliders?
If this is not possible, what is the recommended workflow for a multi-head fixture (6 heads, independent PAN + RGB each) with per-head pixel mapping, without creating 6 separate fixtures per bar?
Thanks in advance!