In the Real World, sound is not round. It doesn't even come in ellipsoidal packages. It bounces off walls, gets absorbed by carpets and walls, changes pitch as it moves and gets filtered in some way by every object in the room. Reproducing, and sometimes even exaggerating these effects can add a lot to realism of your VRML world, but to do this, you need to get creative with the VRML sound primitives.
The first step in adding realism to your soundscape is to determine what effects will offer the most bang for the byte. Listen carefully to what happens in the real world when you walk from room to room. Another good source of ideas is the movie industry, as movie sound effects are often exagerated. Try to pinpoint the effect that you want to try to achieve. Here are some ideas to get you started:
The VRML sound primitives don't provide a means for achieving any of the effects we've just mentioned, so we'll ned to resort to other means for reproducing or approximating the effect we're after. The two techniques I've used are:
Sound Editting software - There are a large number of tools on the Mac, PC's and SGI platforms which will allow you to filter and manipulate a sampled sound in a variety of ways. Many of these provide plugin interfaces so you can purchase additional filters and effects. You can think of these tools as the Photoshop of the sound world. Some of the examples that follow were processed using the SoundTrack tool that is bundled with SGI's Irix 6.3 and later.
Black-Box Effect processors - There are is a variety of black-box sound hardware which will perform real-time sound processing as well. You can find one of these in most recording studios. While these black boxes are usually a little less flexible than software tools, they are often readily available and provide (at least) reverb, equalization, and pitch effects. Some of the examples that follow were processed using an Aleisis Quadraverb 2 effect processor.
Once you have a tool which can reproduce the desired effect, you'll want to make two versions of your sound. One, version should be "dry" or un-effected. This is the original version of your sound before you started all this nonsense.
The other version should be the "wet" or processed sound. In most cases you'll probably be mixing the wet and dry sounds together, so you'll want your processed sound to contain as little of the original sound as possible. Here are some examples of wet/dry sound pairs. We'll use these sounds in the examples that follow.
Sound Source | Effect | ||
Courtyard Birds Chirping | Echo/Reverb | Dry | Wet |
Jungle Island Waterfall | Equalization | Dry | Wet |
Dance Club Music | Equalization | Dry | Wet |
If the sound is intended to loop, then the wet and the dry sounds must be the exact same length. Even a slight difference between the lenghts of the sounds can get them out of phase and ruin the effect. This part can be tricky, as the "wet" sound generally tends to be longer. The details of the sound editting technique are beyond the
Now, to get to some VRML authoring! The final step is produce an effective mix between the wet and dry sounds, so when the viewer(listener) enters the appropriate environment, the sound supports their action.
To produce the mix, place 2 Sound nodes, and 2 Audio clips in your world, carefully adjusting the sound locations and ranges (using the MinFront/Back and MaxFront/Back fields) to acheive the desired effect. See the Sound Node in the VRML 2.0 Spec for more details on how to use these fields.
The exact placement and ranges of the Sound nodes depends on the effect, but there are 2 things in common to all of the examples presented here:
Two of the examples rely only on spatial mixing to perform the wet/dry mix. The final example uses an interpolator to animate the intensity field of the "wet" sound in response to a user action.
Much of the sound and geometry has been removed from this world to ease up on download times and frame rates. In this world, the two sounds are located at the same point in space, but have different radii (see figure). The low rumbling of the waterfall can be heard all throughout the island, while the actually splashing of the water can only be hear near the waterfall itself. The parametric equalizer on a personal mixer was used to separate the two sounds.
Sounds Samples:
Fig. 1 - The two spheres represent the range
ellipses for the wet (inner ellipse) |
Again, this is a greatly reduced sample out of the Out of Box Experience. In this example, the ambience of the courtyard gets reverberated and echoed as the viewer enters either of the two caves. Great care was taken to get loops of exactly the same length for the wet and dry sounds. This provides a seamless transition of ambient sound inside and outside the cave. A small water dripping sound was added to the wet ambience for added effect.
Sound Samples:
Fig. 2 The sound ellipse for the "wet" sound inside the East cave.
This example simulates the muffled effect that occurs when sound travels through walls. Approaching the dance club, you can hear the beat thumping and the low frequencies of the music. When you open the door (click on it), the mid and high frequencies of the music are revealed.
The two sounds are located at the same point in space. The range on the high frequency sound is slightly smaller than the low frequency sound, but the intensity field is set to ZERO. This means that the high frequency sounds will be silent as the viewer approaches.
An interpolator which animates from 0.0 to 1.0 is then wired to the intensity field of this sound node. The interpolator is triggered by clicking on the door, so as the door opens, the intensity (or volume) of the high frequencies increases. This causes the mid and high frequencies to fade into the mix to reveal the full spectrum of the music.
The Equalization filter provided with the SoundTrack tool was used to create the two sound clips in this example.
Sound Samples:
|
Fig. 3 - The high frequencys of the dance beat
extend outside of the club. Animation of the intensity field prevents us from hearing them until the door is open |
Ed Allard is a demo hacker
for SGI's desktop product line. He's had his ears in VRML sound for
quite some time, and tends to like making all sorts of noise (sometimes
mistaken for music) in his free time. Ed Allard eda@sgi.com http://reality.sgi.com/employees/eda_engr/ |