Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Needs a way to set a user's voice mode. (In flux or components) #2017

Open
AmasterAmaster opened this issue May 9, 2024 · 19 comments
Open
Labels
enhancement Suggested addition of a new feature. protoflux

Comments

@AmasterAmaster
Copy link

Is your feature request related to a problem? Please describe.

Currently there is only a way to get a user's voice mode, but no easy way of setting it directly.

My use case for this is that I am currently creating a classroom world, and the instructor (whoever it may be) should be able to press a button to change their current voice mode to Broadcast (and when pressed again should be able to return to the previous stored voice mode). This at first sounds trivial, as the instructor would normally just use the dash facet to change it, but the following example is truly why I would like this feature...

For the students sitting in the seats in this classroom, there is a button provided in front of them that will act the same way, pressing it should set their voice mode to broadcast so their questions and concerns can be heard for the instructor/students in the room. Now, the instructor can't really enter the other user's dashes to turn on broadcast mode for them, so a flux node would be best here to let the button change the local user's voice mode for them (making it easy for everyone in this scenario).

Describe the solution you'd like

I would like to see a flux node or component that can allow for setting a user's voice mode.

Describe alternatives you've considered

I have considered the following:

  • Having the instructor ask the other users to kindly change their voice mode to broadcast (but that is inconvenient and slow, and new users may not know how to do this), and also having to ask them to change it back, having this happen every time a person has a question can make the whole experience slow down to a crawl, which is definitely not ideal.
  • Having the instructor open a User Inspector and changing it manually, however this is more invasive and not really a clean way of changing a voice mode.
  • Using ref hacking to access the user's voice mode from a button press, this would be a hacky way of doing it and it would be better if there was a node that could set it directly instead of trying to find the reference that holds it.

Additional Context

This can be used for other contexts as well, for some examples:

  • What if a world creator wanted to make a game show and have a button press to make the user's voice turn into broadcast mode for everyone to hear the answer to something.
  • What if a world creator wanted to make a presentation world and the people on stage holding microphones need to be in broadcast mode for everyone to hear them (letting the grabbed prop set the voice mode, and reverting it back when it is no longer grabbed).

Requesters

AmasterAmaster

@AmasterAmaster AmasterAmaster added the enhancement Suggested addition of a new feature. label May 9, 2024
@epicEaston197
Copy link

I know this issue is made with the best of intentions but this could easily be abused

@AmasterAmaster
Copy link
Author

@epicEaston197 Like with anything that is user created content, anything can be abused. and following from the advise I heard, if someone is abusing something, file a ticket on it. I also follow the mantra of "A tool is a tool, it can be used for good or bad, but at the end of the day, it is just a tool".

@epicEaston197
Copy link

epicEaston197 commented May 9, 2024

@epicEaston197 Like with anything that is user created content, anything can be abused. and following from the advise I heard, if someone is abusing something, file a ticket on it. I also follow the mantra of "A tool is a tool, it can be used for good or bad, but at the end of the day, it is just a tool".

Yeah but I still don't particularly feel comfortable with someone being able to unmute me without my consent
maybe an additional privacy setting could be added to prevent this from working

@ohzee00
Copy link

ohzee00 commented May 9, 2024

Does GrabbableUserVoiceModifier not follow your usecases Amaster? I haven't tested it in a long time but it should work on grabbable objects to change a user's voice to say, broadcast when grabbing a certain object.

@epicEaston197
Copy link

Does GrabbableUserVoiceModifier not follow your usecases Amaster? I haven't tested it in a long time but it should work on grabbable objects to change a user's voice to say, broadcast when grabbing a certain object.

That component doesn't appear to function

@AmasterAmaster
Copy link
Author

@epicEaston197 True, that could be a thing the devs could do, like a stronger mute option that prevents force unmuting, also the world creator should take into account of that, but I understand that people may not know nor have the foresight to this, thus the setting would override this node/component. Also, if privacy is that much of a concern, I would think that users would rather just open a clean grid world (with no background flux of any kind) and talk privately there as well, there are options.

@epicEaston197
Copy link

epicEaston197 commented May 9, 2024

@epicEaston197 True, that could be a thing the devs could do, like a stronger mute option that prevents force unmuting, also the world creator should take into account of that, but I understand that people may not know nor have the foresight to this, thus the setting would override this node/component. Also, if privacy is that much of a concern, I would think that users would rather just open a clean grid world (with no background flux of any kind) and talk privately there as well, there are options.

Muting my microphone should not be treated like the whisper bubbles muting my microphone is a privacy feature and it should be respected

@AmasterAmaster
Copy link
Author

@epicEaston197 Yes, hence why I mentioned that being a setting they could setup, which would block this from being a feature, but once that is setup, then world creators can finally have a way to structure their classes in different ways (say for example, if people are to take a test, then make all users mute until the exam is done). Then the instructor should have that control, plus it is implied that if your in a classroom, then you would at least be communicating to the teacher/students in some capacity (muted or not). But that is its own moral dilemma (And I am thinking in more of a grander scale of separate Resonite universes that may need that type of control for their students).

@Zyzyl
Copy link

Zyzyl commented May 9, 2024

This would be useful. I can imagine situations in game worlds or Metamovies where this functionality would be great (e.g. simulating switching to radio comms by setting people to Broadcast).

It's worth noting that there it's already possible to 'Mute' or 'Silence' users at a session/world level which doesn't override their own voice level set in the Dash. I generally agree that there should be protections against being able to fully unmute another user without their consent. This is how it works in Zoom for example, the call Host can mute people, but can only invite them to unmute themselves.

@JackTheFoxOtter
Copy link

Does GrabbableUserVoiceModifier not follow your usecases Amaster? I haven't tested it in a long time but it should work on grabbable objects to change a user's voice to say, broadcast when grabbing a certain object.

That thing has been broken for ages, but yeah it would be awesome to see that fixed.

@JackTheFoxOtter
Copy link

JackTheFoxOtter commented May 9, 2024

You can also already change a user's voice mode through the user inspector. Which I use to put people that have fallen asleep to whisper so they don't wake up from me talking, and I don't get annoyed by them snoring :D

@ohzee00
Copy link

ohzee00 commented May 9, 2024

That thing has been broken for ages, but yeah it would be awesome to see that fixed.

Not trying to steal this issue but doin' a separate GitHub issue on that would be good, I didn't realize it was broken honestly. (And I'm gonna sleep so I'm totally going to forget to make one)

@shiftyscales shiftyscales removed their assignment May 9, 2024
@shadowpanther
Copy link

Couldn't cloud vars and a Dash facet (on each consenting user) be used to do this?

I.e., make a facet that has a voice mode switcher in it, and has flux on it that changes voice mode when the cloud var is changed. Then the objects in the world would be set to write users' cloudvars.

@Chundelac
Copy link

@epicEaston197 Like with anything that is user created content, anything can be abused. and following from the advise I heard, if someone is abusing something, file a ticket on it. I also follow the mantra of "A tool is a tool, it can be used for good or bad, but at the end of the day, it is just a tool".

Yeah but I still don't particularly feel comfortable with someone being able to unmute me without my consent maybe an additional privacy setting could be added to prevent this from working

I believe it is already possible to force unmute someone.

@Dusty-Sprinkles
Copy link

Couldn't cloud vars and a Dash facet (on each consenting user) be used to do this?

I.e., make a facet that has a voice mode switcher in it, and has flux on it that changes voice mode when the cloud var is changed. Then the objects in the world would be set to write users' cloudvars.

If this is targeting newer users who have a hard time figuring out broadcast imagine how hard teaching each of them individually to install a facet would be.

Also yea I'm for this or fixing the component, or both, it would be nice to have for a lot of applications and maybe just some settings if you don't want to be force unmuted/unwhispered/muted should be enough imo

@Psychpsyo
Copy link

Psychpsyo commented May 18, 2024

I agree that this would be a nice thing but there definitely should not be a way to force-unmute somebody else.

Oftentimes the fact that someone is muted means that they're having some form of private conversation with someone IRL or on a call.
As for the "anything can be abused because it's user-created content":
Certain forms of abuse are unavoidable, temporary, 'not that bad' or easily moderated.
Like crashing someone, lagging their game, loud noises, flashing lights, etc.

Random mic access is not one of those.
It is avoidable, not a temporary problem if someone makes you leak private data, quite bad depending on what's leaked and you can't moderate the problem away after it's been abused and someone get the info they wanted.

My suggestion would be that a voice mode can only be requested, not set directly.
It'd give the user something like a host access popup telling them

Something wants to change your voice mode to <whatever>.
Reason:
<provided to the requesting node>

@AmasterAmaster
Copy link
Author

@Psychpsyo That is why there should be the exception to the node to either not force unmute (limiting it to a few voice modes) OR have a setting that prevents force unmuting for users, especially if a world creator wanted to have access to all voice modes. (I am in favor of the setting option).

As for your second point, I still say having a node like this would be considered a tool anyone can use, and yea someone would probably use it maliciously, but I feel it has a greater good, like accessibility for example (new users that are just starting would not know how to use voice mode controls or maybe have not noticed them, but also would want to learn something in a classroom setting and would happily take advantage of a button/toggle near them to help them speak up and to be heard from a long distance).

I really like your suggestion of a requesting feature though, it could act similarly to what we already have for opening hyperlinks and webpages, just having a popup saying the reason why would be perfect!

@shiftyscales
Copy link
Collaborator

Does GrabbableUserVoiceModifier not follow your usecases Amaster? I haven't tested it in a long time but it should work on grabbable objects to change a user's voice to say, broadcast when grabbing a certain object.

That component doesn't appear to function

Can you please report this as its own issue, @epicEaston197 @ohzee00?

@epicEaston197
Copy link

Can you please report this as its own issue, @epicEaston197 @ohzee00?

I've made #2087

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Suggested addition of a new feature. protoflux
Projects
None yet
Development

No branches or pull requests

10 participants