Environment Sounds
Environmental Sounds
There's a handful of ways to generate sound without an avatar in Second Life.
- Sound clips
- a parcel's music stream
- a web page displayed on a prim
You can change all of them using scripting. The latter two depend on the viewer being set properly to allow them to play.
Soundtrack
If your build has a soundtrack or theme music that you want heard clearly across the parcel, consider using streaming music.
You can play a series of sound clips in order, but there's no guarantee that the "song" will be heard as seamless.
Looping sounds
Looping a sound clip can add ambience. Consider it for nighttime bugs by a lake, a crowd murmuring, or the hum of electric signs.
<lsl> default {
state_entry() { llLoopSound( llGetInventoryName( INVENTORY_SOUND, 0 ), 0.5 ); }
} </lsl>
Rhythmic sounds
Ocean surf
Random sounds
Short ambient sounds played randomly can make a space feel more alive.
Some good choices for this would be frogs, underbrush rustles and snaps, a distant car horn or squealing brakes.
Try this random sounds script.
Day/Night detection
Some sounds are best played during certain times of day. Consider birdsong, or bats and owls. If your build is taking advantage of a region's natural day/night cycle, you can alter your ambient sound selection by the time of day your region shows.
<lsl> integer IsSunUp() {
sunPosition = llGetSunDirection(); return ( sunPosition.z > 0 );
}
integer IsTwilight() {
sunPosition = llGetSunDirection(); if ( sunPosition.z > 0.0 && sunPosition.z < 0.15 ) return TRUE; return FALSE;
} </lsl>
Wind activated sounds
Do your bushes rustle more or louder when the wind blows? What about wind chimes?
<lsl> float GetWindStrength() {
return llVecMag(llWind(ZERO_VECTOR));
} </lsl>
Try this wind powered sounds script.
Extremely loud sounds
Using llTriggerSound multiple times in a row can make a sound seem much louder than calling it once. This can be useful for tower bells and explosions.
<lsl> integer n; for (n = 0; n < 5; ++n) {
llTriggerSound(soundname, 1.0);
} </lsl>