More Precise Audio Timing Ability (and Other Sound Engine Feature Requests)

Hello,

As a Roblox developer, it is currently too hard to create an immersive experience with audio. As I am currently working with a dev team on a project, I will focus on one part of the issues with the Roblox sound system. Our sound designer will add more specific requests to this topic.

In our current project, sounds need to be precise to the millisecond. Any time gaps or deviations from this level of precision will kill the immersion.

There is a few ms delay from when a looped sound ends to when it restarts its loop. This creates a subtle yet noticeable gap in, for example, character movement sound loops. This gap becomes even more detrimental to the experience when the sound loop corresponds to an animation loop, as the sound and animation tracks fall out of sync with time.

It is technically possible to resolve this by manually controlling the loop via code. However, there is no reason why this should be necessary. Unity and Unreal Engine seamlessly loop audio tracks (using Wwise), and Roblox’s sound system would be significantly improved by doing the same.

71 Likes

This is a HUGE issue with sounds. Implementing this would be a major leap in sound design for this platform, allowing games to have professional grade audio. This should be placed on the priority list because it’s currently making loopable sounds unbearable if code was not written to fix the gaps between the loops.

16 Likes

It turns out that my sound designer doesn’t have permissions to reply to this post, so I will post his specific feature requests for him.

"Some other feature requests would be:
-Zero lag when sound effects are played
-Accurate audio convolution based on the surroundings (for 3d audio)
-Add visualizer for EQ for more precise frequency manipulation
-Peak Limiter to prevent audio clipping
-Audio normalization option to prevent audio mixing issues
-Different time stretch/pitch shifting algorithms to allow for more granular control over audio warping
-Add more reverb properties to ReverbSoundEffect (replace dry and wet signal with Mix -100%-, predelay, stereo separation -essentially haas effect-)

Thanks,
Sid"

12 Likes

“More Advanced Sound System” – title is really vague, can you make it more explicit? Looks like your feature request is to have more precise timing on when sound is playing. Clear titles help other developers and Roblox engineers find the issue much easier.

4 Likes

I’d like to add in some thoughts here. I currently find it impossible to do any musically interesting kind of dynamic soundtrack on Roblox - for example, you can’t seamlessly move between different sections of a song as you move through a boss battle.

While something ready-made like FMOD Studio would be nice for that kind of thing, it wouldn’t solve all use cases that would benefit from high-precision audio control.

Perhaps a more generally useful solution might be something like a ‘scriptable timeline’ for audio:

  • Scripts (or perhaps the user in Studio) can add and remove events at high-precision timestamps.
  • Events could range from sound playback controls (e.g. play this sound), automation (e.g. increase this sound’s volume to 0.8 over 5 seconds), or even controls for the timeline itself (e.g. go to 500 milliseconds).
  • These events don’t have to include conditional logic - scripts would be able to achieve that by evaluating the conditions themselves, and adding/removing events accordingly. (perhaps there could be some sense of events being enabled/disabled)?
  • The timeline can then be played, paused, stopped, sped up, slowed down, or even have it’s TimePosition moved from scripts.

This is a very rough idea I came up with in my head thinking about this problem, but it could provide solutions for much more than just dynamic soundtrack creation - you could even use this for sound design, to compose and arrange together a bunch of separate sounds to be played as if they were one sound.

16 Likes