Hi Dominick,
Beam internally controls and mixes color as RGB. It does that so that you can control groups of fixtures that have different colorspaces. For example, you can put dim-only fixtures, RGBW pars and CMY moving heads all under the same tag, and in the patch you just work with RGB.
The dim
message acts as a shorthand for RGB. It’ll scale/multiply the luminosity of the RGB values if there’s anything to scale. If RGB is set to 0 (luminosity is 0), dim
increases all RGB values together. The [beam.snapshot]
object might help you see how the RGB values are affected by the dim
message.
When turning the Beam signal into actual DMX values, we do a conversion from RGB to the colorspace of the fixture. For RGBI fixtures, we take the luminosity of the RGB values and assign it to the dim/intensity channel. We then normalise the RGB values before assigning them to the individual color channels.
(e.g. if dim = 1, r=0.1, g=0, b=0 | DMX output dim:255, r:255, g:0, b:0)
I agree this example is a bit strange. What I think is happening is that R=0.1, G=0, B=0
is assigned before dim=1
and that the dim=1
scales this to R=1, G=0, B=0
. Like explained before, the dim
message is this special message that modifies the RGB values and I think [beam.tag]
first processes the values set through the red
, green
, blue
messages and dim
afterwards.
It would be really nice to be able to disable this strange color mixing and get 1:1 controls without having to recreate fixture profiles.
Yes, that would be nice. Right now, you do need to ‘think’ in RGB when working with color in Beam, regardless of the fixture you’re controlling. It might be nice to introduce some sort of ‘internal colorspace’ preference where you can turn this off and have these messages map directly to individual channels. This would mean that red
, green
, blue
messages won’t work for CMY moving heads, and that you’d need different messages depending on what fixture you’re controlling. It’s probably more tedious to work with, but more advanced users might prefer control over convenience.
I’ll make a ticket for that request. It’s quite a fundamental addition that touches lots of areas of the software, so it’ll take quite some time and I can’t promise when we’ll work on it and when it’ll be finished. So unfortunately for now, to get 1:1 controls to every individual colorspace channel you probably need to edit the fixture profile and control the color channels as ‘normal’ modulations.
Hope this clarifies things!