Scientific Computing and Visualization Group
Boston University
Introduction
Several sample environments are provided with the DAFFIE distribution. Each has a script (a.k.a., “run file”) for starting the viewer with the appropriate arguments. All example run files are in the directory “Viewer/run”. They are invoked on the computer which is connected to the immersive display. In these instructions, we will use the name “barbie” for this computer.
Example #1
Description:
This environment consists of a six-sided room containing a sphere.
Starting the viewer:
Log on to the computer attached to the immersive display, cd to the directory containing the sample run files, then run the script for example #1:
barbie% cd /daffie/Viewer/run barbie% runEx1
Navigating in the environment:
Use the left button on the wand to navigate in the environment. Use the middle button to reset to the starting position.
Stopping the viewer:
To stop the viewer, press ESC on the console.
Example #2
Description:
This environment consists of a six-sided room containing a sphere.
This environment consists of a six-sided room containing a sphere. When the right mouse-button is pressed, a light sword appears. If the button is released while the light sword is pointing into the sphere, the sphere changes color and a sound is triggered.
Choosing the soundserver computer:
Designate a machine to run the DAFFIE soundserver. If a separate soundserver machine is not available, it is possible to use the display computer, although graphics and/or soundserver performance may be compromised. In these instructions, we will use the name “gijoe” for the soundserver computer.
Starting the soundserver:
Log on to the soundserver computer, cd to the directory containing the run files for the soundserver, then run the appropriate script:
gijoe% cd /daffie/Sound/run gijoe% start_sound_server
Editing the viewer script:
If this is the first time you have invoked example #2, you must edit the run script (“RunEx2”) and enter the name of the soundserver machine on the appropriate line:
-initsound gijoe
Note that there must be no characters following the backslash at the end of the line. No other changes should be necessary.
Starting the viewer:
Log on to the computer attached to the immersive display, cd to the directory containing the sample run files, then run the script for example #2:
barbie% cd /daffie/Viewer/run barbie% runEx2
Stopping the viewer:
To stop the viewer, press ESC on the console.
Stopping the soundserver
To stop the soundserver, choose [File][Exit] from the menu.
Example #3
Description:
This environment consists of a six-sided room containing a sphere.
This environment consists of a sphere inside a hollow cube. When the right mouse-button is pressed, a light sword appears. If the button is released while the light sword is pointing into the sphere, the sphere grows and changes color, and a stereo sound, attached to two points on the surface of the sphere, is triggered.
Starting the soundserver:
Start the soundserver as above.
Editing the viewer script:
If this is the first time you have invoked example #3, you must edit the run script (“runExpandSphere”) and enter the name of the soundserver machine on the appropriate line:
-initsound gijoe
Note that there must be no characters following the backslash at the end of the line. No other changes should be necessary.
Starting the viewer:
Log on to the computer attached to the immersive display, cd to the directory containing the sample run files, then run the script for example #3:
barbie% cd /daffie/Viewer/run barbie% runExpandSphere
Stopping the viewer:
To stop the viewer, press ESC on the console.
Stopping the soundserver
To stop the soundserver, choose [File][Exit] from the menu.
Example #3A
Description:
This environment consists of a six-sided room containing a sphere.
The environment is the same as in Example 3. Additions are made to the startup script (“runExpandSphere.distributed”) to enable the environment to be run at multiple sites, with shared state information and localized Internet telephony.
Choosing the event server computer:
Designate a machine to run the DAFFIE event server, which is responsible for distributing information about the environment (e.g., avatar locations and audio streams) among all clients. For performance reasons, this should probably not be the same machine which is running the DAFFIE viewer or soundserver. In these instructions, we will use the name “ken” for the event server computer.
Starting the event server:
Log on to event server computer, cd to the directory containing the event server daemon, then start it:
ken% cd /daffie/Event/bin ken% eventd -log /daffie/Event/bin/run.log &
Editing the viewer script:
If this is the first time you have invoked example #3A, you must edit the run script (“runExpandSphere.distributed”) and enter the name of the event server machine on the appropriate line:
-bvdist ken
Note that there must be no characters following the backslash at the end of the line.
Choosing an avatar:
Each participant in the environment has a visual representation known as an “avatar”. It is important that each viewer use a different avatar. The startup script as supplied in the distribution uses the “avglenn” avatar:
-avhead avglenn-head -avhead avglenn-body -avhead avglenn-hand
If you are running this example with another site which is already using the avglenn avatar, you can use the supplied “avkat” avatar by making the following substitution in the startup script:
-avhead avkat-head -avhead avkat-body -avhead avkat-hand
Choosing the telephony generator computer:
Designate a machine to run the DAFFIE telephony generator. (This is the program which digitizes input from your microphone and makes it available to other participants.) If your soundserver is an O2 or an Indy running in two-channel mode, it is customary to run the telephony generator on the soundserver computer. If your soundserver is an Indy running in four-channel mode, then audio quality will be better (i.e., clipping will be less obtrusive) if you run the telephony generator on a different computer. For this example, we will assume that the telephony generator program is being run on the soundserver computer.
Editing the viewer script:
Enter the name of the soundserver and telephony hosts on the appropriate lines in the startup script:
-initsound gijoe -bvtelephony gijoe
Starting the soundserver and telephony generator:
Log on to the soundserver computer and cd to the directory containing the run files for the soundserver:
gijoe% cd /daffie/Sound/run
If you are running the soundserver and telephony generator on the same computer, use the following command, supplying the name of the event server:
gijoe% start_telephony_combo ken
If you are running the soundserver and telephony generator on different computers, use the following command to start the sound server, supplying the event server and telephony generator hostnames. (In this example, “stacy” is our dedicated telephony generator.)
gijoe% start_telephony_server ken stacy
If you are running the soundserver and telephony generator on different computers, you must also log on to the telephony generator computer, cd to the directory containing the startup files for the sound software, and start the telephony generator, supplying the name of the event server computer:
stacy% cd /daffie/Sound/run stacy% start_telephony_generator ken
Since the procedure for starting the sound software can be cumbersome, we have supplied a script called ‘startup.sh’ which starts all the sound software from a single display. This script must be customized for your site:
ESHOST="ken" TGHOST="stacy" TSHOST="gijoe" SOUNDDIR="/daffie/Sound/run" STG="start_telephony_generator" STS="start_telephony_server" WSERVER="wserver`cat /daffie/Sound/bin/server_number`"
Starting the viewer:
Log on to the computer attached to the immersive display, cd to the directory containing the sample run files, then run the script for example #3A:
barbie% cd /daffie/Viewer/run barbie% runExpandSphere.distributed
Generating telephony:
To begin broadcasting input from your microphone, click the “On” button underneath “Broadcast Local Audio” in the telephony server/generator window. To confirm that your audio level is in the right range, start the SGI audiopanel on the computer which is running the telephony generator:
stacy% apanel
Make sure the “Meter” box in the audiopanel is checked. Audio levels should stay above the mid-high green area but below the red area. If the input level is set too low, your voice will not be heard at other sites; the telephony generator will suppress it because it will regard this low-level signal as background noise. If the input level is set too high, your voice may sound distorted, and you increase the likelihood that your listeners will hear echoes (see below).
Preventing Echoes:
Sometimes you will hear your own voice, delayed by a third of a second or so, through your own speakers. This “echo” happens when your voice, playing through someone else’s speakers, is picked up by their microphone and sent back to you.
The main mechanism used by the telephony server to prevent echoes is audio level gating, whereby if an audio packet is below a certain threshold, it is suppressed. The technique is based on the assumption that when you speak into the microphone, the signal is loud enough to exceed the threshold, and when the speakers in your room are playing (and you are not talking), the signal is below the threshold.
Echoes are prevented when the amplitudes of your loudspeakers as picked up by your microphone are below the telephony threshold. (Note that most of the burden of preventing echoes is placed on listeners, not on speakers.)
Here are some things you can do if other DAFFIE users hear echoes from you:
- Stand further away from other avatars (their volume decreases somewhat with distance).
- Stand further away from your own loudspeakers.
- Turn down your loudspeaker volume (“Master volume” in the telephony server window).
- Decrease your own microphone input level using the vertical slider on the SGI audio panel. This is a little dangerous, however, because you run the risk of setting the amplitude of your own voice below the telephony threshold, in which case other sites will no longer hear you.