Networking (Rob Laddish)
The machine performing the rendering is a reality engine named wavelet. This
machine has no sound capability, so we are forced to use another. We picked
the machine glim because it supports sound and it's close to the responsive
workbench.
The sound samples must be sent with the lowest latency possible. Also, error-free
transmission is not needed, because we do not want to play sounds long after the
event has occured. For these reasons, we use IP UDP packets. The executable called
sound_server must be running on the remote machine, and the pool program will send
it packets directly. Another executable called send_sound may be used to communicate
with the sound server independant of the pool program. When the pool program starts,
it attempt to remsh to the sound_server host and start the sound_server program.
When the pool program ends, it send a packet to the sound_server telling it to
quit.
The user can turn sound on & off and modify the master volume with the virtual
buttons.
Related config file parameters:
- use_sound boolean Set boolean to 1 to turn sound on, or set it
to 0 to turn sound off. If the use_sound directive is not found, sound
will be active by default.
- sound_server machine. This directive defines the machine that
packets are sent to and where we should attempt to remsh to start the
sound server. The machine name is passed to gethostbyname, so it can
be either a name or in numeric format.
- sound_port port. If pool is found in the services file, then
the port specified there will be used. If it is not found, and error
will be printed and the port specified by this directive will be used
instead.
- sound_cmd cmd. This defines the command that should be run to
start the sound server. The command should have a %s in it followed by
a %d, which will be replaced by the sound_server and sound_port as
they must be determined at run.
If you get a permission
denied error, create a ~/.rhosts file and add the fully qualified
source machine name to this file. (e.g. wavelet.stanford.edu) Note
that there can be problems with rsh and csh. See rsh(1) for details.
- sound_dir dir. (obsolete) If not specified, it defaults to the current
working directory. This is used to tell the sound_server what directory
to start up in.
See Also: