Increase Limit on Active Avatar Audio Sources (to 4+)
Taggynn
TL;DR:
If we could have even just 4-6 active 3D audio sources on avatars, it would open a giant world of possibilities in creation.
The details for those who are curious:
I understand the potential reasons behind having a limit of 3 audio sources. Audio crashers were a real problem way back when; but that's just it, way back when. VRChat has a lot of adjustments and safety features for audio sources currently, and when it comes to avatar creation, 3 sources is very limiting for complicated audio setups.
Here's an example from my personal experience:
For the creation of avatars for combat roleplay, I use UdonVoiceUtils in my worlds to increase the maximum avatar audio distance. The weapons on my avatars compliment this by having close, near and far audio. This helps convey information very well for the people roleplaying, as if there's a gunshot, they can hear it from across the map and it will sound correctly spatialized. However, this causes an issue as without the ability to have audio effects on avatars or advanced curves, the only way I can do this is by spawning 2-3 sources at a time. This means that firing a weapon will cut out other audio, such as foley when operating the weapon (reloading and such.) This also means avatars with contact based footsteps will very frequently have their audio culled in favor of either the weapon or the footsteps.
Now, these are not HUGE issues as the gunfire gets priority generally, and that's what's most important to communicate to the players in combat. However, with the new VRC Raycast system, the concept of having audio feedback on hitting the environment and players has been in my mind, however the only way I can do that is by reducing the amount of active audio sources on the weapon... however that means I'll have to sacrifice one of the layers of the firing audio, which consequentially may make the feeling of combat less enjoyable and / or reduce the amount of information available to the players in a given moment.
Granted, I know my specific case is a niche utility, but I feel like for many other creators, having even a marginal increase to the amount of allowed active audio sources could open a world of possibility. I've seen discussion on this canny for things like DJ avatars and complex animations, and I fully agree with that.
If we had, say, 4-6 allowed active 3D audio sources, it would really open up a huge range of possibilities without going too far and risking audio crashers / unoptimized audio setups. Especially considering the relatively recent implementation of a new audio engine, I feel like it should be well within the realm of possibility to give creators more breathing room with audio. I know that for me personally, it would make creating roleplay avatars significantly easier and allow me to improve the fidelity of them significantly.
This doesn't have to impact performance much either, especially if there is a hard limit placed on the amount of audio sources on an avatar. You really don't need more than 32 if your project is contained and you know how to use them effectively, and that's being incredibly generous to be honest.
If there is a deeper technical limitation behind this, or it doesn't operate the way I say, please let me know. I want this for the benefit of the community and as such if there is a reason this isn't possible then I want to be able to at least educate people on that reason.
Please bring attention to this as well, I don't expect this to get a ton of traction or even for this change to come ever, but it would be awesome if it saw a little focus.
Log In
octalmage
I would really love additional allowed audio sources as well. To me it feels like there should be different restrictions applied to a performer who's putting on a show in a small instance versus a bunch of people at a party.
The issue I'm running into is background sound like rumble and screams, then stomps that are triggered. If two stomps trigger we are already at the limit and cancelling some of the background sounds.
octalmage
To follow up to this, for the situation where you only need the sounds on stream, but still want to be able to trigger them from your avatar I made a little app: https://github.com/octalmage/oscsound
Whaddageek
You can do this with a single audio source and a max-size (6m diameter) contact receiver to determine if it should play near or far audio locally for other players, and adjust the audio source's radius, via animation. There's zero need for separate near/far audio sources.
_Pulsar
Whaddageek So guns are louder than that and you can hear them at the same volume up to at least 20m. And as someone who does rp on this game having gun shots that can be heard at least semi realistically really does help. Also having extra sound effects is still good for more than just distant audio, it'd be really good for reloading audio, footstep sounds, grenades, and all other kinds of things that would be nice to have for the roleplay side of the community
Whaddageek
_Pulsar Except my point was you can drive distance audio FX on a shared audio source via animation, and use the contact receiver to tell if the recipient should be receiving the near/medium SFX clip and respective audio settings, so there's no reason to have two of those playing simultaneously when at least one won't be heard anyway (and specifically isn't designed to be).
Taggynn
I also want to quickly clarify as discussion with some people around the community has made me realize a potential confusion:
This is NOT trying to increase the max amount of audio sources in the performance rating; this is requesting we have a marginal increase in the amount of actively playing audio sources to allow more dynamic use of them
VexaMoonlight
Taggynn Honestly there is only need for a single source if VRChat could make a custom audio source component powered by bass.dll which PopCap Games themselves used by default for years in their games even after they got bought out by EA. It even has a a "plugin" to it where basically one can even play other audios on top of others and simulate having 2+ audio sources with audios unrelated to each other playing at the same time on an avatar even when one of the audios is looped. The downside is that this part dives into native code (c/c++) and the bass library despite being closed source can be used in iOS, Android (possibly in VR headsets), and Windows. The "mix" plugin however is unknown if it works for Android and iOS however.
And yes I looked into it as I was tempted to implement something myself like that as a Proof of Concept to it being possible.
Problems with using bass:
- For freeware programs it is free to use, but for products/services run by a company (say VRC) they will most likely need to pay a license fee to use it . Not to mention that the creator also made sure to price them in euros (since they live in the UK).
Benefits to this though:
- VRCAnimatorPlayAudio could remove its AudioSource field in favor of implicitly locating the custom VRC audio source component powered by bass using Unity to search for its component type, this means that these components in the animator could be grouped together resulting in further optimizations.