Alix Ollivier
Alix Ollivier4w ago

How to make my voice travel further for all players?

1. "How does Normcore's voice distance falloff work? When I modify the AudioSource component on my local avatar (like changing maxDistance or rolloffMode), does this affect how other players hear my voice, or only how I capture my own voice?" This is the core issue - you need to understand whether modifying your local AudioSource affects voice transmission or just local capture. 2. "Does RealtimeAvatarVoice have built-in properties or methods for controlling voice distance/range? Can I use this component to implement global voice modes instead of modifying AudioSource components directly?" This explores if there's a proper Normcore API for voice control rather than hacking Unity AudioSource settings. 3. "What's the recommended way to implement global voice for moderators in Normcore? Should I modify settings on the sending client, receiving clients, or use a different approach entirely?" This gets the official guidance on the correct architectural approach for your specific use case.
3 Replies
kapa.ai
kapa.ai4w ago
Hi @Alix Ollivier. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Great questions! Here’s what the Normcore documentation says about voice distance, AudioSource, and best practices for global voice: --- 1. How does Normcore's voice distance falloff work? Does modifying the AudioSource on my local avatar (e.g., maxDistance, rolloffMode) affect how others hear my voice, or just my own capture? Modifying the AudioSource component on your local avatar only affects how you hear remote players’ voices, not how your own voice is transmitted to others. The AudioSource is used for playback of incoming audio streams, not for capturing or transmitting your own voice. Each client receives your audio stream and plays it back using their own AudioSource settings. Therefore, changing AudioSource properties on your local avatar will not affect how far your voice travels for other players—it only affects how you hear others locally.
“RealtimeAvatarVoice plays audio back using Unity’s audio engine so all of the Unity audio APIs work correctly. At runtime, RealtimeAvatarVoice will create an AudioSource if one is not present, but if you’d like to configure it in the editor, add your own AudioSource component and RealtimeAvatarVoice will detect and use that instance.”
Voice chat – Realtime Common Questions --- 2. Does RealtimeAvatarVoice have built-in properties or methods for controlling voice distance/range? Can I use this component to implement global voice modes instead of modifying AudioSource components directly? There are no built-in properties or methods in RealtimeAvatarVoice specifically for controlling voice distance or range. Voice transmission is not spatialized or distance-limited by Normcore itself; instead, spatialization and distance falloff are handled by the AudioSource component on the receiving client. If you want to implement global voice (e.g., a moderator whose voice is heard everywhere), you would need to adjust the AudioSource settings (like maxDistance and rolloffMode) on the receiving clients’ avatars, not on the sender.
“If you would like to set custom spatialization settings, create an AudioSource manually. RealtimeAvatarVoice will detect and use this instance instead.”
Voice Chat – XR --- 3. What's the recommended way to implement global voice for moderators in Normcore? Should I modify settings on the sending client, receiving clients, or use a different approach entirely? The recommended approach is to modify the AudioSource settings on the receiving clients. Since each client is responsible for playing back incoming audio, you can programmatically adjust the AudioSource (e.g., set rolloffMode to Linear or set maxDistance to a very high value) for the moderator’s avatar on all clients. This ensures the moderator’s voice is heard at full volume everywhere, regardless of distance. There is no built-in “global voice” mode in Normcore, so this is the standard Unity approach. You may need to identify moderator avatars and update their AudioSource settings accordingly on each client.
“RealtimeAvatarVoice plays audio back using Unity’s audio engine so all of the Unity audio APIs work correctly... add your own AudioSource component and RealtimeAvatarVoice will detect and use that instance.”
Voice chat – Realtime Common Questions --- Summary:
- AudioSource settings only affect playback on the local client, not transmission. - There’s no built-in Normcore API for global voice; use Unity’s AudioSource settings on receiving clients. - For global voice, update the AudioSource for the moderator’s avatar on all clients to remove distance falloff. If you need more advanced control, you’ll need to implement logic to identify and update AudioSource settings for specific avatars (like moderators) on each client. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai4w ago
<@185325614775926784> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
maxweisel
maxweisel4w ago
RealtimeAvatarVoice plays all audio through the AudioSource component. All of the values you'd use there for audio spatialization work for voice too. By default RealtimeAvatarVoice creates an AudioSource for remote players, but if you add one to the same game object yourself it will pick that one up and use it directly.

Did you find this page helpful?