Page 1 of 1

RGB Matrix with ADJ Revo 4

Posted: Mon Sep 09, 2024 11:17 pm
by Lampy101
After a recent thread where we discussed ways to use RGB Matrix with RGB+ fixtures I was looking at the ADJ Revo 4 and would need in it 256ch mode for some effects I have in mind. It's an oddball fixture with a 256 (16x16) fixed colour LEDs (R, G, B, W) repeated and they only turn ON or OFF so I've been playing with the Revo 4 fixture in a workspace and can see how the RGB Matrix uses them for 8x8 patterns no problem. I can also see the possibility of creating a White fixture group for patterns using only the White LEDs.

What confused me was trying to think how I would get a Matrix pattern such as 'One by One' to use all of the 256 LEDs in 16x16. My best guess was to make a new fixture definition (with 256 heads on/off only) or create something similar with a fixture group or panel. At this point I'd be losing any real control of RGB colours but that's ok as I'd mostly like to run the Matrix patterns in dimmer mode on all 256 LEDs. Don't worry it isn't mission critical, I got that far with the idea and wondered if anyone had a better one?

Re: RGB Matrix with ADJ Revo 4

Posted: Tue Sep 10, 2024 4:18 am
by Yestalgia
I think you need to develop an RGB matrix script. I'm not home at the moment but I think it would look something like this:

Code: Select all

// QLC+ RGB Matrix script to go red, then green, then blue for each pixel

var algo = new Object();
algo.apiVersion = 2;
algo.name = "Red-Green-Blue Cycle";
algo.author = "Your Name";

// Define the RGB channel map
algo.rgbMap = function(width, height, rgb, step) {
    var map = new Array();
    var color = 0;
    
    if (step % 3 === 0) {
        color = 0xFF0000; // Red
    }
    else if (step % 3 === 1) {
        color = 0x00FF00; // Green
    }
    else if (step % 3 === 2) {
        color = 0x0000FF; // Blue
    }

    for (var y = 0; y < height; y++) {
        for (var x = 0; x < width; x++) {
            map.push([x, y, color]);
        }
    }
    
    return map;
}

// Set the number of steps (3 steps for Red, Green, Blue)
algo.rgbMapStepCount = function(width, height) {
    return 3;
}

// Properties and configuration for the RGB Matrix (optional)
algo.properties = new Array();

return algo;