[ANSWERED] How to Have More Than 4 ArtNet Universes
Here at the university at our theatre we use 1 universe for each rigg, we have 6 of them. Then we use more universes for the side of the stages etc. We are using around 10 universes for our lights.
For small shows/talks where we only have about 4 lighting cues I normally use Isadora, and the last time in 2019 they put everything together so I can use DMX over USB. That did work fine. During the pandemic the talks where canceled and I never used Isadora for lighting since 2019.
Now for a show I wanted to convert everything to ArtNet because with all our LED lights DMX would not have enough addresses to control the lights. That is were I realised that Isadora only supports 4 Universes. So I had to get the large lighting board down to my table for 4 cues. Is there a reason why Isadora only supports 4?
mark last edited by DusX
Good to hear from you; it's been a while. I'll try to explain.
It is true that there is a four node limit on Art Net 3 (which is what the Isadora Art Net actors use), but not a four universe limit. In fact, each node can support 16 DMX universes, and that means Isadora can support at 64 universes.
Each ArtNet Send and ArtNet Receive actor has a universe input. In the Art Net documentation, this is referred called "port-address", a 16 bit value that is made up of four parts. To fully understand the four node limit of ArtNet 3, let's take a look at the Art Net documentation:
The Port-Address of each DMX512 Universe is encoded as a 15-bit number as shown in the following table.
| Bit 15 | Bits 14-8 | Bits 7-4 | Bits 3-0 | 0 | Net | Sub-Net | Universe
The high byte is called the 'Net'. This was introduced at Art-Net 3 and was previously zero. The Net has a single value for each node.
The high nibble of the low byte is referred to as the Sub-Net address and is set to a single value for each Node.
The low nibble of the low byte is used to define the individual DMX512 Universe within the Node.
This means that any Node will have:
• One “Net” switch.
• One “Sub-Net” switch.
• One “Universe” switch for each implemented DMX512 input or output.
• Assuming the the “Net” switch value is 0, the “Sub-Net” switch will be the port-address divided by 16; the “Universe” switch will be the remainder of the port-address divided by 16. For example, a port-address of 19 gives a “Sub-Net” value of 1 (19÷16) while the "Universe" will be (remainder of 19÷16).
The key line here is as follows: "The high nibble of the low byte is referred to as the Sub-Net address and is set to a single value for each Node." -- in other words, you can have a maximum of four nodes, but you each one can only use a single subnet value.
[EDIT] So in digging in to this, we discovered that there is a flaw in the ArtNet Send and Receive actors: it uses the AN Universe to determine which node to use. So while technically it should be the AN Subnet value that does this (as indicated in the struck-through sentence above), the end result is the same: you can transmit to as many as 64 distinct DMX universes using the Art Net Send/Art Net Receive v1.0.2 or earlier. We are discussing what it would mean to fix this. In the mean time, I've edited the content below to take this into account.
Take a look at the following four Art Net Send actors, paying attention to the universe input and the AN subnet and the AN universe outputs.
As you go across this row, you'll see each universe input go up by one, as does the AN universe output, while the AN subnet output is always zero. Because there are four different AN Universe values, these actors take up all the four available ArtNet 3 nodes.
If you try to add a new ArtNet Send actor with a universe input of 5, you'll see that the 'ready' output says 'off'.
Why? Because the AN universe output says 5. The four available ArtNet 3 nodes are taken up by AN Universe used by the four actors above -- 1, 2, 3 and 4. This fifth actor wants to occupy a firth node because the AN universe is 5, which isn't supported by the protocol. If you see an ArtNet Send actor with a 'ready' input of 'off', then you've used up all your nodes and you need to rethink your universe inputs.
Now take a look at a second set of Art Net Send actors. Here the first universe is 16, the second 17, the third 18, and the fourth 19.
As you can see, the AN universe values are the the same as the ones shown above, which is good: we haven't added any additional nodes beyond the four node limit. But, the AN universe on on these is always 1 as opposed to 0 for the four actors above. That means we're broadcasting to four totally different DMX universes than the ArtNet Send actors shown above.
I made a pair of example patches that demonstrates sending 16 distinct DMX universes. The sending patch is called art-net-16-universe-send.izz and looks like this:
Pressing the keys '1' through '8' broadcast to AN Subnets 0 through 7 with AN Universe set to 0.
Pressing the keys 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k' broadcast to AN Subnets 0 through 7 with an AN Universe of 1.
That means that in the 16 actors above, there is no combination of AN Subnet and AN Universe that is the same. That's why we're broadcasting to 16 distinct DMX universes.
There receiving patch is called art-net-16-universe-receive.izz. To try them:
- Open both the sending and receiving examples
- Bring the receive example to the front so you can watch the Art Net Receive actors
- Press the keys described above, you can see that 16 distinct universes are being sent and received.
Expanding this, you should be able to program your the devices that are receiving DMX in the same way that the ArtNet Receive actors above are programmed, and then you should be able to send 64 universes of DMX.
Does this explanation make it clear how you can send more universes?
P.S. Here is a handy table that gives a list of universe values that will only require four nodes. If you only use these universe addresses, then you can be sure that you'll be able to transmit and receive all 64 DMX universes.
| universe | AN subnet | AN universe | node | | 0 | 0 | 0 | 0 | | 1 | 0 | 1 | 1 | | 2 | 0 | 2 | 2 | | 3 | 0 | 3 | 3 | | 16 | 1 | 0 | 0 | | 17 | 1 | 1 | 1 | | 18 | 1 | 2 | 2 | | 19 | 1 | 3 | 3 | | 32 | 2 | 0 | 0 | | 33 | 2 | 1 | 1 | | 34 | 2 | 2 | 2 | | 35 | 2 | 3 | 3 | | 48 | 3 | 0 | 0 | | 49 | 3 | 1 | 1 | | 50 | 3 | 2 | 2 | | 51 | 3 | 3 | 3 | | 64 | 4 | 0 | 0 | | 65 | 4 | 1 | 1 | | 66 | 4 | 2 | 2 | | 67 | 4 | 3 | 3 | | 80 | 5 | 0 | 0 | | 81 | 5 | 1 | 1 | | 82 | 5 | 2 | 2 | | 83 | 5 | 3 | 3 | | 96 | 6 | 0 | 0 | | 97 | 6 | 1 | 1 | | 98 | 6 | 2 | 2 | | 99 | 6 | 3 | 3 | | 112 | 7 | 0 | 0 | | 113 | 7 | 1 | 1 | | 114 | 7 | 2 | 2 | | 115 | 7 | 3 | 3 | | 128 | 8 | 0 | 0 | | 129 | 8 | 1 | 1 | | 130 | 8 | 2 | 2 | | 131 | 8 | 3 | 3 | | 144 | 9 | 0 | 0 | | 145 | 9 | 1 | 1 | | 146 | 9 | 2 | 2 | | 147 | 9 | 3 | 3 | | 160 | 10 | 0 | 0 | | 161 | 10 | 1 | 1 | | 162 | 10 | 2 | 2 | | 163 | 10 | 3 | 3 | | 176 | 11 | 0 | 0 | | 177 | 11 | 1 | 1 | | 178 | 11 | 2 | 2 | | 179 | 11 | 3 | 3 | | 192 | 12 | 0 | 0 | | 193 | 12 | 1 | 1 | | 194 | 12 | 2 | 2 | | 195 | 12 | 3 | 3 | | 208 | 13 | 0 | 0 | | 209 | 13 | 1 | 1 | | 210 | 13 | 2 | 2 | | 211 | 13 | 3 | 3 | | 224 | 14 | 0 | 0 | | 225 | 14 | 1 | 1 | | 226 | 14 | 2 | 2 | | 227 | 14 | 3 | 3 | | 240 | 15 | 0 | 0 | | 241 | 15 | 1 | 1 | | 242 | 15 | 2 | 2 | | 243 | 15 | 3 | 3 |
mark last edited by
P.S. What would have helped make this more clear? If a power user such as yourself was confused by this, then it means we need to do something to improve the help text, etc.
Let me know.
Thank you very much for the explanation, it is clear now for me. I did not find a description anywhere what ArtNet version you are using for the Actor. And even if I would have known, I also did not find any information how many universes Isadora covers.
I have put together a pdf to explain visually how ArtNet in general and Isadora specifically handles the addresses. I have attached it. If I did not make any mistake you are free to use it on the help page of the website.
mark last edited by DusX
Well, @DusX experimented with this and found a flaw in the actors: you can still transmit and receive 64 universes, but it is the AN universe that can have only four values, not the AN subnet as it should be. Please read my post again, as I've updated everything so that it correctly reflects what the actors actually do. I wouldn't update your nice chart yet... we need to have a discussion of what it would mean to fix this.
To make this at least a little bit simpler, I've also added a table that gives you a list of universe values that will ensure you to use all of the 64 possible DMX universes.
I've also updated the examples to show how to transmit 16 distinct DMX universes, breaking it up into a Send patch and a Receive patch.
Finally, Michel, I have one question for you: should we rename the 'universe' input on to 'port-address'? What terminology do they use on your hardware for this value?