Hello,
So I made the switch a few days ago to the new ArtNet 2.*.*
nodes, and it does show a maaaassive perfs improvement when sending out a lot of universes (approx 4 times faster in my stress-test patch!).
Bravo and thanks!
One comment though: what I think remains a bit of a pain is that, when dealing with multiple universes, (at least in my personal workflow) I usually end up with my ArtNet data as one big concatenated MutableArray or SpreadBuilder, and grouping it back to chunks of 512, while pretty straighforward, adds up pretty decently heavy when you hit hundreds of universes or more.
(See my test patch below with the comparison of different methods in search for efficiency, the best so far being using (System.Array) Copy
from mscorlib, thanks to the suggestion from @tonfilm)
xp-ArtNet-send_20240424.vl (68.6 KB)
Wouldn’t it be more efficient to have an alternative Send (Multiple)
node that would accept a Spread<String>
for hosts, Spread<Integer32>
for universe indices, and keep the existing Sequence<Float>
input but that would be expected as a concatenated sequence, of length = universe count * 512?
That would dodge the need to nest individual Send nodes inside a ForEach loop, and above all the 512-slicing step, as I guess it could internally just offset/sample the appropriate 512 chunk inside the big concatenated input sequence without other intermediary copy.
What do you think?
T