just to point this out (though obviously the bottleneck is still a problem)
it’s incredibly inefficient to update a full display of LEDs with 256 OSC messages. it’s much better to use a /map message, which reduces the total payload substantially, plus reduces the negotiation of the system with individual packets vs. a couple large packets.
i’ll try to dig up some old optimization tutorials, but let me know if this makes sense at first glance. do your patches use any optimization? also, the /all OSC commands are also helpful.
but clearly we need to figure out what’s changed in the OS to create this lag.