LaserBoy creates waves with RGB+I and I can be caculated as a simple average, a color weighted average or a bitwise OR. Bitwise OR actually makes the most sense because when any one color channel is full on I is full on.
LaserBoy also supports color re-scaling tables. You can make an ASCII text table of 256 positive, even, 16 bit (14 bit) numbers, (first one must be zero, no repeats) for any one or all of the color channels including I, and LaserBoy will save that in the header of the wave and use it as a lookup table to translate the 0 to 255 values that come from the computer's RGB+I values. Since the numbers are all unique per channel, the process can be reversed when loading the wave back into LaserBoy.
The reason the numbers must be even is to leave the least significant bit open for marking ends of frames and re-scanned frames.
LaserBoy is also Open Source!
James.![]()