Hello,
My issue is similar to this question. I’m currently using v0.13.1, and as discussed @ here, “multi-segment UDP sync” should work as of v0.13.
When the following is set in cfg.json
"if":{"recv":{...,"seg":true,"sb":true}
(i.e. receiveSegmentOptions
and receiveSegmentBounds
, resp.) things such as multi-segment colors and smooth palette transitions to work on the receiver side – but only for playlists. Attempts to UDP sync individual presets fail! For example, if a sync’d playlist is in progress, and an attempt to sync to a new individual preset is made, the receiver does not change to this new preset command – regardless of whether the preset is single- or multi-segment. Rather, the receiver will just stop the playlist at its active preset, and render it indefinitely until another playlist sync command is sent.
I suspect this has something to do with the length of the presets vs. playlist JSON? Maybe something to do with packetSize
in
void handleNotifications()
{
...
// API over UDP
udpIn[packetSize] = '\0';
...
in udp.cpp
?
Here is a typical single-segment preset JSON (I probably could get rid of the unused {"stop":0}
segment objects, but this has sometimes caused problems):
{"n":"SingleSegPreset","on":true,"bri":255,"transition":7,"mainseg":0,"seg":[{"id":0,"start":0,"stop":600,"grp":1,"spc":0,"of":0,"on":true,"frz":false,"bri":250,"cct":127,"col":[[255,0,255],[0,0,0],[0,0,0]],"fx":49,"sx":210,"ix":30,"pal":47,"sel":true,"rev":false,"mi":false},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0}]}
… a two-segment preset JSON:
{"n":"TwoSegPreset","on":true,"bri":255,"transition":7,"mainseg":0,"seg":[{"id":0,"start":0,"stop":300,"grp":1,"spc":0,"of":0,"on":true,"frz":false,"bri":250,"cct":127,"col":[[255,0,255],[0,0,0],[0,0,0]],"fx":4,"sx":150,"ix":20,"pal":2,"sel":true,"rev":false,"mi":false},{"id":1,"start":300,"stop":600,"grp":1,"spc":0,"of":0,"on":true,"frz":false,"bri":250,"cct":127,"col":[[8,255,0],[0,0,0],[0,0,0]],"fx":4,"sx":6,"ix":55,"pal":2,"sel":true,"rev":true,"mi":false},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0},{"stop":0}]}
… and here is a typical playlist JSON:
{"playlist":{"ps":[5,6,7,8],"dur":[200,100,100,100],"transition":[7,7,7,7],"repeat":0,"r":true},"on":true,"n":"Playlist0"}"
Any ideas?