Hubs-Foundation / hubs

Duck-themed multi-user virtual spaces in WebVR. Built with A-Frame.
https://hubsfoundation.org
Mozilla Public License 2.0
2.13k stars 1.42k forks source link

Need the concept of "microphone" to let someone give a talk #3404

Open yajo opened 3 years ago

yajo commented 3 years ago

Description I expect that if I zoom into any object that has a sound feed (such as other people's avatar) I should be able to hear it loudly.

To Reproduce Steps to reproduce the behavior:

  1. Go to a room with some people.
  2. One of them wants to speech.
  3. Right-click on him.
  4. You still listen loudly to the people around you, although you don't see them. However, you don't listen so loudly to the speaker (the zoomed in object).

Expected behavior If I zoom in to something, it should get loud, automatically.

Hardware

Additional context In a meeting where there's one main person that talks, everybody gets close to him to listen to him. However, in the real world, there are microphones and speakers that allow everyone to listen to you even if they're not next to you. This produces a weird feeling and sometimes the speaker walks away, and the crowd follows him again... :runner:

┆Issue is synchronized with this Jira Task

misslivirose commented 3 years ago

This isn't a bug - it's by design given the nature of spatialized audio. Right now, the default behavior is that proximity to someone is what determines their volume, and we intentionally do not give you a way around that due to a need to signal privacy while doing so.

The underlying issue is that we need a way to designate a speaker who is louder than the others (e.g. "give them a microphone") or implement a way to signal that an individual client has boosted their audio. "Zooming in" to someone's audio is one possible solution for the problem you've described here, but it comes with the trade-off of the speaker not knowing who is amplifying their audio, for example, if the person "zooming" in on them is hidden somewhere else in the room or far away. While it is ultimately up to the individual room visitor to decide what they feel comfortable discussing given who is in the room, we've so far used the design principle of keeping audio listeners coupled to the avatar intentionally so it's clear who is "near you" and listening.

yajo commented 3 years ago

I see. What you say makes a lot of sense. I renamed the issue to better fit the problem (or the right solution) because I still think that it would be great to have the concept of a "microphone" or "stage").

Further developing this idea, maybe the room admins should be able to give it to participants. Or maybe it should be a feature of the scenario, where people standing on a given platform sound loud on a given area.

BonzoMartini commented 3 years ago

@Yajo YESSSSSSSS! great idea - im being asked to give talks in Hubs and asked about it by others everyone wants something like this. Also related - when broadcast to lobby -and I play a video, then lobby ppl can hear the video. (They can't at the moment

yajo commented 3 years ago

You still listen loudly to the people around you, although you don't see them. However, you don't listen so loudly to the speaker (the zoomed in object).

I just wanted to clarify that, after further testing, this is only true for speakers but not for other objects.

If you right-click on a video that has a proper audio stream, you indeed listen to it loudly, even if you're not near.

So, the original approach of this issue at https://github.com/mozilla/hubs/issues/3404#issue-747492281 would stop being confusing after #3405 is fixed (either webcams have an attached audio stream, or volume controls are removed), at least for the use case of someone zooming into your webcam feed.

However this issue has changed, so let's ignore this for the time being and focus in the subject of the microphone.

maybe it should be a feature of the scenario, where people standing on a given platform sound loud on a given area.

I can imagine an event where there's a interview, conducted by someone but answered by a few people. Also maybe a band playing live, or maybe a live drama. I think, then, that it would feel more natural as a scenario feature.

Also, just like in a real theater, you don't hear exactly the same in all places. Maybe someone farther away won't listen so loudly, but they actually sit there because of that: some people want to pay more attention, some others just want to sit in the back next to their friends to comment what they're seeing without disturbing others. So, maybe a good option would be to not only be able to define in a scenario what is the "platform", but also define some objects as "speakers" :speaker: and be able to adjust their volumes, so anybody on the platform doesn't just get louder. Instead, the sound produced by anybody/anything on the platform gets replicated/amplificated from the speaker objects.

This would feel just like a real theater.

tyskevdb commented 3 years ago

Dear Mozilla Hubs community members, I am an assistant professor at the VU university in Amsterdam. Tired of Zoom and inspired by your work, we are experimenting with Mozilla Hubs for educational purposes. So far, it is really promising and we are grateful for the work done by the community!

Still, we indeed think that a broadcast functionality (receiving the stage/mic as host/teacher/student and automatically muting all others) similar to the broadcast function in wonder.me would be a pivotal improvement for educational purposes. This allows to combine plenary sessions with break-out sessions. Of course, such a functionality could be combined with screen sharing/webcam sharing on a large virtual screen/whiteboard.

Let me know how we can help realizing such a function.

Best, Tijs

anandragav commented 3 years ago

Fully agree with Tijs and others, this is such an important feature for hosts, presenters, teachers to broadcast their voice across the room/hall so everyone can be where they are and hear the presenter loud and clear. Make it an admin control and should be a fair thing as the choice will then be for the admin to make themselves heard loud. Great if Hubs team can prioritize this enhancement!