max = self.params.channels
values = self.conn:lrange(self.params.skey, 0, max - 1) or {}
-- check for new values for each channel
val = tonumber(values[ chan ]) or 0
-- target value differs, set transcation
if val ~= channels[ chan ].target then
channels[ chan ].target = val
channels[ chan ].delta = (channels[ chan ].target - channels[ chan
].current) / ticks
channels[ chan ].ticks = ticks
for i = 1, self.params.resolution do
-- single transition step
-- transition for each channel
for chan = 1, self.params.channels do
t = channels[ chan ].ticks
channels[ chan ].current = channels[ chan ].target - channels[ chan
].delta * t
channels[ chan ].ticks = t
self.dm:setchannel(chan, channels[ chan ].current)