llSetSoundQueueing

From Second Life Wiki
Revision as of 23:44, 14 February 2013 by Nelson Jenkins (talk | contribs)
Jump to navigation Jump to search

Summary

Function: llSetSoundQueueing( integer queue );
0.0 Forced Delay
10.0 Energy

Set whether attached sounds wait for the current sound to finish. If queue is TRUE, queuing is enabled, if FALSE queuing is disabled. Sound queuing is disabled by default.

• integer queue boolean, sound queuing: TRUE enables, FALSE disables (default)

Caveats

  • It appears that only two sounds can be queued per prim. SVC-4260
  • Sound queuing is a property of the prim, not the script. It can be activated and deactivated by any script in the prim and survives script reset, rerez and script removal.
  • If used to make smooth transitions using slave/master sounds the sounds tend to go out of sync.
  • There is a very small (but clearly audible) gap of silence between sounds which causes a clicking noise if used with sounds designed to be perfectly sequential (e.g. music). In these cases, you may have to use a timer/sleep set to ~0.05 seconds less than the sound's length, and just interrupt it with another llPlaySound. This lessens clicking noises, but sometimes "jumps" a bit - this is still audibly cleaner, however.
    • If you are using sounds that won't be seriously affected by a gap of silence, e.g. sounds that fade in/out to 0dB at the start/end, then this function is definitely better than a timer.

Examples

<lsl> default {

   state_entry()
   {
       llPreloadSound("SoundName1");//This loads the sounds into all in range viewers and cuts delay between sounds.
       llPreloadSound("SoundName2");//All sound parameters can be the name of a sound in the prim's inventory or a UUID of a sound");
   }
   touch_start(integer detected)
   {
       llSetSoundQueueing(TRUE);//Set to TRUE for queueing and SoundName2 plays after the SoundName1 has ended.
       //Set to FALSE only the second will be played since the prim has only one sound emmiter and the second was called last.
       //Can be set anywhere withing the script (if within an event it will activate when the event is triggered.
       llPlaySound("SoundName1", 1.0);
       llPlaySound("SoundName2", 1.0);
   }

}

</lsl>

See Also

Functions

•  llLoopSound
•  llLoopSoundSlave Plays a sound attached.

Deep Notes

Signature

function void llSetSoundQueueing( integer queue );