ID:2839944
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
Basically, tell a client to change the var of an active sound channel's sound over time.

I primarily want this so i can fade in/out given sound channels without spamming client << sound(..., volume = num, SOUND_UPDATE) several times
This is actually something that's been on my wishlist for a while. I haven't come up with a good setup syntax-wise yet but I'd very much like to.
In response to Lummox JR
Lummox JR wrote:
This is actually something that's been on my wishlist for a while. I haven't come up with a good setup syntax-wise yet but I'd very much like to.

What's wrong with the animate syntax of (var2change = desired_value, time = duration), etc?
Hell, what's wrong with using animate() itself? Just make passing a /sound to the first argument in animate() work. (Even if it's just a shortcut to a less stupidly named proc for this)
To "animate" a sound, you'd need a /client to do the animating, a starting sound, a finishing sound, a duration, and common animation things like looping, easing, flags, delayed start. Keep in mind that /sound objects don't exist on the client, which is why re-outputting sounds with SOUND_UPDATE is necessary to "apply" changes to them.

Those requirements could translate to a straightforward client.AnimateSound(sound/start, sound/finish, loop, easing, flags, delay), or it could be stacked onto the existing animate() as all new parameters (client, start_sound, finish_sound).

For physical sounds (positional and heard by nearby clients), you'd still need custom-per-client starting/finishing sounds, but the finishing sound's relative position will be incorrect as the client moves during the animation.

I still think we need a type of sound with an absolute position. Maybe clients nearby hear it automatically. Most importantly, listeners should know where the sound is and adjust the audio's relative positional values accordingly in real-time, client-side.