Difference between revisions of "LlPlaySound"

From Second Life Wiki
Jump to navigation Jump to search
(23 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{LSL_Function/inventory|sound|uuid=true|type=sound|volume=volume}}{{LSL_Function
{{LSL_Function
|inject-2={{Issues/SVC-4897}}{{Issues/BUG-4130}}
{{LSL_Function/inventory|sound|uuid=true|type=sound|volume=volume}}
|func_id=86|func_sleep=0.0|func_energy=10.0
|func_id=86|func_sleep=0.0|func_energy=10.0
|func=llPlaySound|sort=PlaySound
|func=llPlaySound|sort=PlaySound
Line 5: Line 7:
|p2_type=float|p2_name=volume
|p2_type=float|p2_name=volume
|func_footnote
|func_footnote
|func_desc=Plays {{HoverText|attached|The sound moves with the prim}} '''sound''' once at '''volume'''
|func_desc=Plays {{HoverText|attached|The sound moves with the prim}} {{LSLPT|sound}} once at {{LSLPT|volume}}
|return_text
|return_text
|spec
|spec
|caveats
|caveats=*A call to llPlaySound replaces any other sound (so that only one sound can be played at the same time from the same prim), except sounds started with the deprecated [[llSound]] which always plays sound files till the end.
*Sound files must be 30 seconds or shorter.
*Sounds are always sampled at 44.1KHz, 16-bit, mono (stereo files will have one channel dropped--merged (as in combined)--when uploading).
*If the object playing the sound is a {{HoverLink|HUD|Heads Up Display}}, the sound is only heard by the user the HUD is attached to.
**To play a sound inworld from a HUD use [[llTriggerSound]].
*It is impossible to play two (or more) sounds at the same time and have them start playing at exactly the same time ~ {{JIRA|VWR-15663}}
**If multiple sound emitters play the same exact sound within range of the viewer at the same time, they are usually not in sync due to latency between the server/client and script execution & communication delays. This can produce echos, odd resonance, and other strange effects that you (probably) do not want.
*When used in conjunction with [[llSetSoundQueueing]], sounds may incorrectly [https://community.secondlife.com/forums/topic/443645-llplaysound-plays-the-sound-twice-or-more/ play more than once.] This can be fixed by disabling the sound queue if only a single sound sample is to be played.
|constants
|constants
|examples
|examples=<syntaxhighlight lang="lsl2">
default
{
    state_entry()
    {
          llPlaySound("some_sound",1.0);
    }
}
</syntaxhighlight>
|helpers
|helpers
|also_functions
|also_functions={{LSL DefineRow||[[llTriggerSound]]|3=Plays a sound {{HoverText|unattached|The sound does not moves with the prim}}.}}
{{LSL DefineRow||[[llTriggerSoundLimited]]}}
{{LSL DefineRow||[[llLoopSound]]|3=Plays a sound {{HoverText|attached|The sound moves with the prim}}.}}
{{LSL DefineRow||[[llLoopSoundMaster]]}}
{{LSL DefineRow||[[llLoopSoundSlave]]}}
{{LSL DefineRow||[[llPlaySoundSlave]]}}
{{LSL DefineRow||[[llSetSoundQueueing]]|3=Sets a prim property which allows sounds to be queued, instead of overwriting eachother.}}
{{LSL DefineRow||[[llStopSound]]}}
|also_events
|also_events
|also_tests
|also_tests

Revision as of 16:32, 9 January 2023

Summary

Function: llPlaySound( string sound, float volume );

Plays attached sound once at volume

• string sound a sound in the inventory of the prim this script is in or a UUID of a sound
• float volume between 0.0 (silent) and 1.0 (loud) (0.0 <= volume <= 1.0)

Caveats

  • If sound is missing from the prim's inventory and it is not a UUID or it is not a sound then an error is shouted on DEBUG_CHANNEL.
  • If sound is a UUID then there are no new asset permissions consequences for the object.
    • The resulting object develops no new usage restrictions that might have occurred if the asset had been placed in the prims inventory.
  • A call to llPlaySound replaces any other sound (so that only one sound can be played at the same time from the same prim), except sounds started with the deprecated llSound which always plays sound files till the end.
  • Sound files must be 30 seconds or shorter.
  • Sounds are always sampled at 44.1KHz, 16-bit, mono (stereo files will have one channel dropped--merged (as in combined)--when uploading).
  • If the object playing the sound is a HUD, the sound is only heard by the user the HUD is attached to.
  • It is impossible to play two (or more) sounds at the same time and have them start playing at exactly the same time ~ VWR-15663
    • If multiple sound emitters play the same exact sound within range of the viewer at the same time, they are usually not in sync due to latency between the server/client and script execution & communication delays. This can produce echos, odd resonance, and other strange effects that you (probably) do not want.
  • When used in conjunction with llSetSoundQueueing, sounds may incorrectly play more than once. This can be fixed by disabling the sound queue if only a single sound sample is to be played.

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llTriggerSoundLimited generates an improper script error when avatar sounds are disabled, llPlaySound disregards parcel settings

Examples

default
 {
     state_entry()
     {
          llPlaySound("some_sound",1.0);
     }
 }

See Also

Functions

•  llTriggerSound Plays a sound unattached.
•  llTriggerSoundLimited
•  llLoopSound Plays a sound attached.
•  llLoopSoundMaster
•  llLoopSoundSlave
•  llPlaySoundSlave
•  llSetSoundQueueing Sets a prim property which allows sounds to be queued, instead of overwriting eachother.
•  llStopSound

Deep Notes

All Issues

~ Search JIRA for related Issues
   llSetSyncTime() - a function for synchronising client side effects
   llTriggerSoundLimited generates an improper script error when avatar sounds are disabled, llPlaySound disregards parcel settings

Signature

function void llPlaySound( string sound, float volume );