Voice: "hear everyone equally, everywhere" option (sim-wide voice at equal volume) #178

Closed
opened 2026-09-29 19:59:15 +00:00 by sky_line · 1 comment
Owner

Bring back the option Firestorm used to have (since removed) to hear every voice speaker across the sim at the same volume, regardless of distance or position. It's useful for events, meetings and teaching, where people are spread out.

Current state

  • VoiceEarLocation exists and the WebRTC client honours it (llvoicewebrtc.cpp setEarLocation / updatePosition ~931-970): camera, avatar, or the mixed position. There's no "everywhere, equal volume" mode.
  • Vivox (llvoicevivox.cpp) has the same three modes.

To investigate first (this decides whether it's feasible)

  1. Where spatialisation happens with WebRTC voice.
    • If the SL voice server mixes and attenuates per listener from the positions we send, the client may not be able to un-attenuate distant speakers.
    • Speakers beyond the server's audible range may not be sent to us at all.
    • Find out how Firestorm implemented it: its commit history and the reason it was removed, e.g. whether it was Vivox-only and dropped with the WebRTC switch.
  2. If audio arrives per participant (separate tracks or per-peer volume control in the WebRTC client, llwebrtc), equal volume could mean disabling our own distance rolloff and panning for those peers. Setting each participant's gain to unity is another route.
  3. If the server only sends a pre-mixed spatial stream, the option can't truly equalise. Document that, and at most offer the best approximation. For example, moving the ear to the region centre helps small sims but isn't equal volume.

If feasible

  • Add a fourth VoiceEarLocation value (or a separate checkbox) "Hear everyone equally, everywhere" in Preferences > Sound & Media > Voice. Label it clearly as a local listening option; it doesn't change what others hear.
  • Parcel/estate voice rules (private parcel voice, voice disabled) must still apply.
Bring back the option Firestorm used to have (since removed) to hear every voice speaker across the sim at the same volume, regardless of distance or position. It's useful for events, meetings and teaching, where people are spread out. ## Current state - `VoiceEarLocation` exists and the WebRTC client honours it (`llvoicewebrtc.cpp` `setEarLocation` / `updatePosition` ~931-970): camera, avatar, or the mixed position. There's no "everywhere, equal volume" mode. - Vivox (`llvoicevivox.cpp`) has the same three modes. ## To investigate first (this decides whether it's feasible) 1. **Where spatialisation happens with WebRTC voice.** - If the SL voice server mixes and attenuates per listener from the positions we send, the client may not be able to un-attenuate distant speakers. - Speakers beyond the server's audible range may not be sent to us at all. - Find out how Firestorm implemented it: its commit history and the reason it was removed, e.g. whether it was Vivox-only and dropped with the WebRTC switch. 2. **If audio arrives per participant** (separate tracks or per-peer volume control in the WebRTC client, `llwebrtc`), equal volume could mean disabling our own distance rolloff and panning for those peers. Setting each participant's gain to unity is another route. 3. **If the server only sends a pre-mixed spatial stream**, the option can't truly equalise. Document that, and at most offer the best approximation. For example, moving the ear to the region centre helps small sims but isn't equal volume. ## If feasible - Add a fourth `VoiceEarLocation` value (or a separate checkbox) "Hear everyone equally, everywhere" in Preferences > Sound & Media > Voice. Label it clearly as a local listening option; it doesn't change what others hear. - Parcel/estate voice rules (private parcel voice, voice disabled) must still apply.
sky_line added this to the Slipstream project 2026-10-06 15:04:15 +00:00
Author
Owner

Shipped in 1.3.0 Beta 2 as a best-effort option: distant voices are brought closer to equal volume with a per-peer gain ramp. True equal volume is not possible on the client because the server mixes the voices spatially.

Shipped in 1.3.0 Beta 2 as a best-effort option: distant voices are brought closer to equal volume with a per-peer gain ramp. True equal volume is not possible on the client because the server mixes the voices spatially.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#178
No description provided.