From 400b1c8f6f5084033a10317d4437ca62d6cbe79f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 31 Mar 2010 08:51:41 +0000 Subject: features sheet svn path=/trunk/externals/iem/iemnet/; revision=13320 --- FEATURES.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 FEATURES.txt (limited to 'FEATURES.txt') diff --git a/FEATURES.txt b/FEATURES.txt new file mode 100644 index 0000000..5203936 --- /dev/null +++ b/FEATURES.txt @@ -0,0 +1,54 @@ +iemnet - networking for Pd +========================== + +A general: +iemnet objects provide a low-level interface (OSI-5 transport layer) to +networking from within Pd. +iemnet tries to do only one thing (transmitting data over the internet), but it +tries to do it good. + + +A1 data +data passed over the network has to be given as "list of bytes". +in Pd-speak these are "list"s, containing only floating point numbers whoses +values must be integer and in the range 0..255. +you have to take care of that yourself. if you don't (e.g. trying to send +symbols, fractional numbers, out of range numbers), you are to blame. +in order to send more complex data, you have to wrap them into an application +layer protocol, such as Open Sound Control (OSC). +you can find objects to convert OSC messages to/from messages understood by +iemnet objects in Martin Peaches great "osc" library. + + +A2 threading +iemnet makes heavy use of threading. +this means that sending data (to the internet), receiving data (from the +internet) and processing datat (within Pd) can run in parallel. +this means that you won't get audio dropouts if the network is slow because your +your neighbour is downloading videos. +if you have a multi-core (SMP) system, threads can utitlize this. +if you don't have a multi-core (SMP) system, you still benefit from the +threading approach. + + +B TCP/IP objects + +B1 [tcpserver] +listens on a port for incoming messages + +if the port is already occupied, you are provided feedback so you can react + +the port can be changed at runtime + +you can let the system chose an available port for you (and you can query it) + +passing only a list (without the "send ", "client " or +"broadcast" prefix) specifies only the payload (data). +the target can be set with the "target" message ("target 0" means "broadcast", +"target " will send to "client " if id>0 and to all but "client " if +id<0 + + + + + -- cgit v1.2.1