My background and training is primarily in classical music performance and composition. I have recently began studying networking in order to develop a career that would help supplement my artistic passions. When I was doctoral candidate I had the opportunity to be a part of a laptop orchestra. That experience peaked my interest in networking especially in conjunction with Pure Data (an open source visual programming language).
Since I began studying for CCENT/CCNA examinations I have been thinking of ways to combine PD's networking capabilities to compose or create an extension of my instrument. Because Pure Data is probably almost limitless in its capabilities, I thought it would be smart to start with the basics of what can be done.
PD has tcp/udp objects that allows one to send or receive data to a network endpoint. It does this by designating an IP address and port in the PD patch. Before we delve in to creating a patch I thought it would be good to understand how ports work as well as the basics of transmission control (TCP) and user datagram (UDP) protocols.
TCP allows two hosts to establish a connection in order to send or receive data. The big difference between TCP and UDP is that UDP does not segment data or provide sequencing of packets. This means that if some data is lost that it will not be recovered. I have not tested it out, but I am imagining that UDP would be a better protocol for the purposes of live performance. If part of the data is lost in TCP we would possibly have more lag time in the performance because it would attempt to recover lost data.
When data is sent through these protocols the IPv4 header has certain fields that will point the data to a designated port. The data is processed by the host and eventually manifests itself in a designated program.
In the next post I will begin discussing hardware and begin to conceptualize what this extension or composition will eventually become.