FUDI (Fast Universal Digital Interface
) is a networking protocol used by the
Pure Data
Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source project with a large d ...
patching language invented by
Miller Puckette
Miller Smith Puckette (born 1959) is the associate director of the Center for Research in Computing and the Arts as well as a professor of music at the University of California, San Diego, where he has been since 1994.
Puckette is known for auth ...
. It is a string based protocol in which messages are separated by semicolons. Messages are made up of tokens separated by whitespaces, and numerical tokens are represented as strings.
Format
FUDI is a packet oriented protocol.
Each message consists of one or more atoms, separated by one or more whitespace characters, and it's terminated by a semicolon character.
An atom is a sequence of one or more characters; whitespaces inside atoms can be escaped by the backslash (ascii 92) character (see Examples below).
A whitespace is either a space (ascii 32), a tab (ascii 9) or a newline (ascii 10).
A semicolon (ascii 59) is mandatory to terminate (and send) a message.
A newline is just treated as whitespace and not needed for message termination.
Implementations
pdsend / pdreceive
Those command-line tools are distributed with the software
Pure Data
Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source project with a large d ...
. They are meant to be used with their counterparts, the classes
etsend/
etreceiveof Pd.
etsend/ etreceive
Those classes can be used to transport Pd-messages over a TCP or UDP socket. Both are part of Pd-vanilla.
etserver/ etclient
Those are part of
maxlib and allow bidirectional connections of multiple clients with one server.
Example messages
test/blah 123.45314;
my-slider 12;
hello this is a message;
this message continues
in the following
line;
you; can; send; multiple messages; in a line;
this\ is\ one\ whole\ atom;
this_atom_contains_a\
newline_character_in_it;
References
External links
* https://archive.today/20100704034430/http://wiki.puredata.info/en/FUDI
Network protocols
{{compu-network-stub