Follow-up to #369. #375 shipped the mesh, mute, listen-only, refusals and the command menu entries. Still to do:
- Per-peer volume: add a
GainNode per peer and a control for it in the voice row.
- Speaking indicator: compute
AnalyserNode RMS per peer and for the local mic. Mark who is speaking in the panel. Make the avatar label glow in the world while its player talks.
- Music ducking: lower
AudioSystem's music while anyone is speaking. At minimum, check that voice and music don't fight each other today.
The last two share an analyser: a peer's RMS drives both the indicator and the duck.
Later
- Spatial audio: position a
PannerNode per peer from the world's playerMoved.
- Push-to-talk on a hotkey, bound through
bindHotkey.
Follow-up to #369. #375 shipped the mesh, mute, listen-only, refusals and the command menu entries. Still to do:
GainNodeper peer and a control for it in the voice row.AnalyserNodeRMS per peer and for the local mic. Mark who is speaking in the panel. Make the avatar label glow in the world while its player talks.AudioSystem's music while anyone is speaking. At minimum, check that voice and music don't fight each other today.The last two share an analyser: a peer's RMS drives both the indicator and the duck.
Later
PannerNodeper peer from the world'splayerMoved.bindHotkey.