02-09-2006 23:37
I've got a few ideas related to playing sounds:
  1. Sometimes we just want to play a sound once, but over a larger area than the current sound attenuation allows. For instance a friend is trying to make a bell tower and would like to set up llPlaySoundSlave to play just once in concert with just one llPlaySound rather than having to use llLoopSoundMaster. This would let him chime off exactly a certain number of bell tones for the hour, and it would improve the sound sync (because over a couple of gongs the slaves seem to lose sync with the master). In short, we need an llPlaySoundMaster.
  2. Streaming audio to a single person, rather than to the whole sim. This would make it possible for people to script HUD radios for their favourite net stations where a particular sim would not be theirs to control. Besides, not everyone wants to listen to metal. This also allows users to not use an external program (like winamp or soon xmms) for playing their music and instead devote more resources to SL, improving responsiveness.
  3. I'd like a non-attenuated, non-Doppler effected method of playing sounds so everyone in a particular area can hear the sound as if they were next to the speaker without the distortion of movement. Possible applications would be PA systems (like recorded and uploaded announcements of events, particularily in games) or simulating all-encompassing effects like gigantic explosions (like volcanic eruption simulations), earthquake simulations, or so on.
  4. Either an llPlaySoundQueue, which will add a sound to the sound queue (one large) to immediately play after the current sound played by that script is done (this would help make seamless playback from jukeboxes possible), or a "sound_finished(integer idNum)" event function which would trigger when a sound stops playing and passes in a number for the handle of the sound that has finished (changes to the current sound functions to return an integer for a sound handle would be necessary, or make an llTrackSound and llStopTrackingSound in a similar vein to llTarget and llTargetRemove).