Throng (Tuio multiplexeR that crOps and Globalizes) provides a Tuio multiplexer with added benefits written in Java.
Throng comes in three flavors:
I. Throng provides…
1.) … a Tuio proxy (or bridge) that is necessary for applications that may only access network sources on the local machine (like Adobe Flash). If other devices (like iPhones) want to access such an application via Tuio over the network, a proxy will be necessary.
2.) … multiplexing of Tuio alive messages: If Tuio messages from multiple sources access one client application (or as it is called in OSC: a server application), all sources use alive messages that only contain their alive ids. If the client application does not support different source providers (which is the case for many tuio libraries), each Tuio source will remove the alive objects and cursors of each other Tuio source causing, e.g., touches to flicker.
3.) … individualization of the session ids of each source: if different Tuio message sources use the same session id range, the results can be … awkward. Hence, Throng individualizes them.
4.) … one consistent Tuio Fseq message order for all arriving packets.
5.) … adding of a Tuio source message to each Tuio package or, if such a message already exists, modification of this message after the “@” to contain source_ip:source_port to allow for discerning of sources in the client application.
II. Throng OSCDeck
Further to Throng’s functionality, Throng OSCDeck provides an OSC recording and playback application. OSC streams can be recorded and saved to file. Vice versa, OSC streams can be loaded from file and played back. The files are saved in the following clear text format:
/tuio/2Dcur salive i9 i6 i5 i2
/tuio/2Dcur sset i9 f0.3125 f0.56666666 f0.0 f0.0 f0.0
/tuio/2Dcur sfseq i501
You can change or create the files manually. The first line is the time in milliseconds when the message has been received after starting the recording. The second line shows the source IP and the third the source port. The last three lines show a standard conform TUIO message with one difference. After the first argument `/tuio/2Dcur’, – the TUIO profile – the first letter of each further argument describes the datatype of the argument. In the listing example, an `s’ stands for string, an `i’ for integer and an `f’ for float.
III. Throng Custom provides an application in which the x and y values of Tuio set messages of different sources can be cropped, shrunk and moved in order to allow for, e.g., a two camera – two tracker system on two computers for one interactive surface.
Downloads and code available on Github