Smooth steps values (2)

hi all…
i m continuing in my exploration and i would like really now HOW you will handle the incoming of DMX …

i have a long crossfade ( lets say 30 seconds) sended in artnet from my schwartzpeter and received by vvvv.
On the channel that is piloting position of my quad, I can see steps from value 0.876 to 0.7566 and so on… wich are corresponding to the 255 dmx steps.

I m still very puzzled by how to use Morph Input, if its the right option, to kill this step effect and have complete feeling of decreasing increasing. I feel that time should be also handled on incoming of new data to do the morph between old and new data.

but how to count time on a specific channel ( thruth getslice) ?

you could use something like a Damper (Animation) to smooth out these steps, and have another dmx channel send out the damper time. whether Damper (Animation) , LinearFilter (Animation) , Decay (Animation) or Oscillator (Animation Advanced) would suit you more is a matter of style (you will need to invent the details at the receiving side, if its lost on the sending side)

the cleaner approach would be using two dmx channel to send a 16bit value though.

karistouf as an old DMX expert of course knows about 16bit ( and even more advanced) encoding.

i am very sure that he doesn’t have influence on the quality of the received DMXdata when he’s asking sth like this…

so you want to do a real interpolation, he?

what about measuring the time between Value changes using a StopWatch to calculate settings for a LinearFilter (Animation) ?

I did that once, what Kalle Said, hope it helps. (just a bit buggy when it comes near to 0 and 1, perhaps a map can help there?)

FilteringDMX.v4p (15.6 kB)

hi you ! ;-)

( he kalle ! i m not that old ! ( 36 )… )

thanks oschatz for this reply.
and thanks kalle for this great suggestion and to west to send this patch !

learned 2 things today :
-linear filter works with receiving spreads ( no need of imput morph), thanks Kalle !
-stop/watch should be easier used thinking inversed ( West that is elegant !).

now what is funny is that:

doing a long crossfade is ok.
but when i have reached the end point, counter is of course continuing to count…
and the next modification will be done from this counter…

chan 1 in mem 1-> artnet from 25 to 255 in 90 seconds

the included patch here works fine.

it arrives good.

chan 1 arrived at 255. people on stage doing blabla. next cue will be after 10 minutes.

so channel 1 will be modified of state after 10 minutes…

Next moves will be taken with 10 minutes cross ! damned !

should i implement a special dmx channel (the 512 one for example) to say on off for the stopwatch function ?

how would you treat this problematic ?
I precise I m using schwartzpeter for its memories capacity, piloting vvvv patchs in art-net.

smooth_dmxIN.v4p (6.6 kB)

hey schwarzcristoph,

thought you were younger…

Next moves will be taken with 10 minutes cross ! damned !

perhaps delay the input (of the leftmost pin) by one frame to be sure that the filter time is set before the new input value arrives.


beautiful one ! ;-)

thought you were younger…

damned… am i a dinosaurus here ? :-(

ok, most seriously, i have a serious trouble to pilote smooth animation.
i m intending to use vvvv with a video projector and use quad as gobos or like automated spotlights…

on this example here if you put the renderer in full screen and use my black cat on channel 1, on a crossfade of 5 seconds, we still find little steps delay ? effect… from one value to the other…

and i have of course enormous delays, when doing this on many channels ( move / size / rotate / colors and value )

what is your advice ?

smooth_dmxIN.v4p (8.0 kB)

I thought I was old with my 30 :D Sounds like a cool project.

If you only do crossfades, how do you keep track off your current CUE (on vvvv side?) Just reset patch at start and start counting the fades? Perhaps dedicate 1 channel/CUE to tell the world what CUE it is at (so you can also jump cues, or go back)

If you are only doing WHOLE crossfades, perhaps you can stop/reset the stopwatch if the DMX is 1 or 0.

In my patch that would be:

DMX=0 OR DMX=1 -> OR (between Stopwatch Reset pin and framedelay)

Otherwise you could make something that will reset the stopwatch after 1 second no value change.

For high speeds like 1 second, I see that this method lags a bit, but should that mather? You doing beat synced stuff? (than it does mather!!)

What do you mean with enormous delay when using many channels? Shouldn’t make a difference if you use 1 or 512 channels…

age contest:
me 41.
somebody older around here?

damned… papy contest begins !

here is my project file, wich is just a gig for a little play with nice fellows.
nothing than doing trichromy with a video projector , putting a slide on a wall, and doing one or two animation.

but quite interresting to try the following technique:

-using schwartzpeter for its memory, crossfades, chasers, and artnet abilities.
Crossfades are done inside schwartzpeter, to avoid complex patch ( and well, i comitted too much hours to set good memory / crossfades and chasers systems in C, why to recreate everything on multiples patchs ?)
so the dmx is sended in artnet from schwartzpeter and i m intending to use ita as a direct control of vvvv.

-vvvv receives this artnet dmx signal, and certain channels are affected to certain things ( see patch there fore. it has to be unzipped under C:\ ), like if they were moving heads.

there is subpatch named schwz-artnet.
its making 2 output . one direct from artnet, the second with the smoothing effect.

If you have some time, your opinion will be VERY interresting for me ( time to test and perhaps to say to me " he guy thats is not the good way, you owe us a beer !"):

dowlnoad here schwartzpeter.
-unzip it under C/ or anything without any special carcaters in the path ( umlaut, french accents, etc…)
-go inside the folder of schwartzpeter
-edit manually /user/artnet_conf.txt and set it to 2.255.255.
no space no enter after. save it.
-go back to schwartzpeter folder
-launch config_my_dmx_card and set it to artnet and click ok
-launch schwartzpeter 0.7.4

you are now sending data in artnet.

setting a channel:
left click select it, right click unselect it
mouse wheel for quick level or arrows.
or type a level the SLACH on normal keyboard, and on laptop the ! key
all levels modifications will be done on selected channels.
ESCAPE unselect everybody

To record a mem:
type a number you want to record as your memory
the F1
say ok

to affect a time:
on stage the memory with a blue background
on preset with orange background
6 F1 this gives a 6 seconds Fade ( same in same out)

SPACE makes a GO ( and pause when pressed a snd time)
G is a goback
W and X and allows you to navigate in playlist without any crossfading

I think that __I really need your opinion on this way to do.
and inside /doc you will find a complete documentation, bilingual, simple to use ( english part is in blue)
__ (2.2 MB)