The PIOS Patching is the part of my PIOS system that cuts off the actual I/O from the PIOS shell that does the "desk".
I/O handles following :
#1 : Input receives all 256 universes that can come in on ArtNet.
The senders can be for example the grandMA desk, ArtNet Nodes from Artistic Licence, ADB and others. Also USBDMX devices connected to the Mac are recognized as ArtNet Input Nodes. Each Receiver handles one DMX512 Universe with 512 Channels at full speed. There are 256 Receivers.
First of all a required receiving IP for each universe can be set. This locks out wrong configured ArtNet In Nodes from disturbing the data flow from the wanted input node in the way of checking if the sending IP is the accepted one.
When used without a required sending IP, there are four merge situations detected and handled : LoTP - Lowest takes precedence HTP - Highest takes precedence PTP - Paste takes precedence (which is use the full frame anyway) LaTP - Latest takes precedence (with a free choosable value to be the no change value)
Note that here multiple senders can broadcast ! So unlike a 19" merger where are two fixed lines merged 1:1 here are different senders merged 1:n ! 1:n means that even if you do not require the sending IP you need to fill it out for a merge cause in a 1:n merge someone has to be the one while all the others are the others. For convinience this is the same like the required IP.
Then the single channel of an incoming universe is boundary checked if they are in the given min/max range. Hits at the boundary and the correcting are drawn colored in the display to easily recognize out of range values.
Now the data is available by an API for application use.
The outputs work in a similar way :
First there are output buffers for all 256 universes available on ArtNet. Without anything you can send out one ArtNet Universe. Each connected USBDMX device is also recognized as ArtNet Output Nodes and increments the the total sum of Buffers by two. (1 always + 2 first USBDMX + 2 second USBDMX = 5 Universes on Ethernet, 2 of these also simultanenous on USBDMX.)
There is an API for applications to write to these buffers.
For each universe there can be set the IP where the data is sent to. So it's possible to send to a unique device or use a broadcast(126.96.36.199). Set to 0 for no send.
The universe information for ArtNet can be set to any desired value. So you can send from one buffer to a single IP with the same universe information while another buffer broadcasts with the same universe information to a different IP subnet. Of course it's the users' care to set up this correctly and not to produce unwanted collisions. Upto 2 Round sends from one Output to a Receiver on the same machine (127.0.0.1) do not really bill a delay. Before sending this to the desired IP there are coming in again two things.
First a lookup if the value of the programmatic API buffer has to be used or if the value shall be taken from any Input buffer.
So, this is a 256 In to 256 Out universe patching on per channel basis.
Taking in account above IP settings you can send data to two different nodes where some channels are taken from the same input channel while others are different.
Also all the 16*16*512 == 300K Output channels have again censors to limit any channel to a set range. Also these boundary hits are colour indicated for easily recognizing. Blue is too cold and min. hit, red is too hot and max. hit.
It's the users thrill to set up an output with a senseful result.
Per Output Channel park
Per Output Channel linear conversion (e.g. in 0-255 to out 10-50)
Per Output Channel invert
DMX Triggers on input channels (Value 01 plays a mp3; Value 0 stops playing, ...)
AppleEvents UPCOMING FEATURES
Load / save single conf files, reload while running
New setup HI with contextual menus or whatever (it's damned a lot of work to set up cause of the huge amount of possibilites, easiest is still launching without a conf file to force a clean launch)
A/D input ports for remote control (National Semiconducter and others).
If you really understand what all this about and want more : Contact me cause I have other stuff for sale. Also, if you're on tour and do a show in Berlin I can come around and show you the stuff.