-
Notifications
You must be signed in to change notification settings - Fork 6
Independent Animation Channels
Each channel (H,S,V,CT, R,G,V,WW,CW) is split up into completely independent entities having their own animation queues. So while an animation is running on one channel the queues of the other channels can be altered without affecting the running animation. So for example you can issue a hue fade which is running for some time. While it is running you can decide to turn down the brightness (also with a fade if you wish) without affecting the hue animation.
The downside is that the controller now is always in a color mode which is either HSW or RAW. Only the queues of the active color mode will be processed at a time. So in HSV mode only H, S, V and CT is processed, when in RAW then only R, G, B, CW and WW is processed. So the currently visible color will either be calculated from the HSV channels or from the RAW channels. But is not possible to mix animations based on different modes. When issuing a color command the controller will immediately switch to the respective color mode. The queues of the inactive mode will not be affected.
In all color commands (HSV and RGB) it is allowed to omit channels that should not be affected by the command. Those channels will be ignored and they will just continue processing their current animation queue.
There are some new commands available to control processing of animation channels. These commands are available:
-
pause
: Freezes the current animation immediately by stopping the processing of the current animation. The content of the animation queue is not affected and will continue to run on the next color command which uses a queue policy different fromback
. Also commandcontinue
can be used to continue processing. -
continue
: This will continue the processing of a paused animation -
stop
: Stops the current animation immediately and also wipes the queue completely -
skip
: The currently running animation will be skipped by removing it from the queue. The next animation in the queue will immediately start to process.
All these commands can be parameterized by a parameter channel
which is a JSON array of one or more channel abbreviations (h
, s
, v
, r
, g
, b
, cw
and ww
). If this parameter is passed then the command is only executed for individual channels. If no channel parameters are passed (or the array is empty) then the command is executed for all channels:
{
"channels":["s", "v"]
}
The channel command will only be executed on the hue and the brightness channel. Saturation channel will not be affected.
{channels:[]}
Despite there is a channel parameter this command will affect all channels.