Does anyone have any idea how to generate/read the artnet timecode in TD?
At first glance, it seems simple:
tcpip DAT…?
udp out DAT…?
My experiments so far have come to nothing…
Does anyone have any idea how to generate/read the artnet timecode in TD?
At first glance, it seems simple:
tcpip DAT…?
udp out DAT…?
My experiments so far have come to nothing…
DM me if you still need this. I just put it together for using the Visual Productions TimeCore box.
The DMX In CHOP can parse ArtTimeCode packets - they’ll come through in the Info CHOP as arttimecode_* channels.
And new in the latest experimental build, 2023.10130, we have expanded Timecode functionality with a new Timecode python class. The DMX In CHOP has a new timecode python member that represents the last ArtTimeCode packet received.
LOL I could have saved some byte parsing time!
Thanks!
(Side note but interesting that this bypasses universes and subnets etc)
Great! I just made sure that the experimental build reads the timecode, but does not send it yet. Here is a part of my code that I developed to send a timecode, maybe it will be useful to someone… It’s probably not very optimized, but it works.
header = bytearray()
header.append(0x41) #65
header.append(0x72) #114
header.append(0x74) #116
header.append(0x2d) #45
header.append(0x4e) #78
header.append(0x65) #101
header.append(0x74) #116
header.append(0x0) #0
# OpCodeLo''
header.append(0x0) #0
# OpCodeHi
header.append(0x97) #151
# ProtVerHi
header.append(0x0) #0
# ProtVerLo
header.append(0xE) #14
# Filler1
header.append(0x0)
# Filler2
header.append(0x0)
# Frames
header.append(frame)
# Seconds
header.append(second)
# Minutes
header.append(minute)
# Hours
header.append(hour)
# Type
fps = # looking for fps...
if fps == 24:
rate = 0x0
elif fps == 25:
rate = 0x1
elif fps == 29:
rate = 0x2
elif fps == 30:
rate = 0x3
header.append(rate)
full = header
s = op('udpout1')
s.sendBytes(full)