Feature Idea: Track/channel roles
Right now, all tracks/channels in SonoBus are treated equal. But in order to allow SonoBus to grow in use patterns and various flows, I think it is essential to introduce a concept of Track Roles.
Track Roles would allow end-users to designate certain tracks or channels for certain use case which would then subsequently make SonoBus behave in a certain way towards those roles.
Of course, the first and default role would be "default" which would make a track/channel behave in the same way as it is now (v1.4.5).
Now, for other possible roles, here are the few I would suggest right away:
- Master Track - when a track/channel is set to this role, then, all other clients would not send any audio to that peer nor would the peer accept any audio incoming. In other words, Master Track is something that is sending audio to everyone but not receiving nor accepting audio from anyone.
- Talkback - when a track/channel is set to this role, then, when talkback commands are used, all other tracks are dimmed/muted, but all Talkback tracks are not. This would allow peers to have push-to-talk and open-a-channel modes of communication between themselves even when there is some loud audio coming in from other tracks. I prefer dimming to muting because that way user can always be aware that there is something else going on in the background. Right now (v1.4.5) SonoBus has a rudimentary implementation of this behaviour where it mutes all other tracks in push-to-talk mode. I would like to see this expanded with the following features:
- dimming instead of muting, with user configurable dimming level (global, in preferences)
- excluding other talkback-role tracks from dimming/muting, so participants can have a dialog if needed
- latch-to-talk button, in addition to push-to-talk. In other words: double-click to keep it in push-to-talk mode, click again to release (Mumble style)
I'm sure, in time, this concept of Track/channel roles would open up a whole new world of possibilities in SonoBus.
Your thoughts?