element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
Apache License 2.0
10.99k stars 1.95k forks source link

Audio source filters, modulators, etc, 1:1 & group voice #13980

Open BloodyIron opened 4 years ago

BloodyIron commented 4 years ago

First, this request is scoped for riot, and not specifically jitsi or matrix, so that the UX is consistent whether this is 1:1 or group calls.

Second, this request is also scoped for all riot clients, desktop/android/ios/web/etc, so again, consistent UX.

I've been using Open Broadcast Studio (OBS) more and more recently, and they have the ability to add filters to audio sources. Namely, microphones, but you can apply it to other audio sources too, such as loop-backs, etc. And these filters are very useful for cutting out background noises, having compressors to limit audio peaks, and all sorts of really handy-dandy stuff.

Furthermore, it is commonplace for people to apply modulation to their voice (unsure if this is possible in OBS) for a variety of reasons. Some do it for fun, and some do it to mask their identity. For example, if they are being interviewed by a reporter and do not want their voice to be identifiable.

--- The Request ---

So the feature request is this. I would like to see the ability to apply filters and modulation per audio device (at a minimum to the microphone) on whatever device you use riot on. In such a way that the same effects are applied to 1:1 and/or group calls, consistently. This way I can improve the quality of my mic, or modulate if I need/want to, without having to fuss between where and how I'm doing that.

While I know this is a rather complicated ask, and I'm not entirely sure how this could technically be achieved, there is already a good amount of code in OBS that could be borrowed from (potentially) to do this.

I think this feature alone would give Riot a very competitive edge in regards to the communications market. Firstly, for quality's sake. Secondly, this would tangibly help with those concerned around privacy.

Can we please start looking into making this a reality?

t3chguy commented 4 years ago

UX is consistent whether this is 1:1 or group calls.

Wouldn't it be most consistent at an OS level so its consistent between all your apps.

There's no way for Riot to implement some Audio modulation which affects Jitsi as browsers don't support virtual audio devices. So both Jitsi and Riot would need to have the same feature, so you should open a feature req with them too.

BloodyIron commented 4 years ago

UX is consistent whether this is 1:1 or group calls.

Wouldn't it be most consistent at an OS level so its consistent between all your apps.

There's no way for Riot to implement some Audio modulation which affects Jitsi as browsers don't support virtual audio devices. So both Jitsi and Riot would need to have the same feature, so you should open a feature req with them too.

  1. Riot would span multiple OS, be it windows, linux, macos, android, ios, browser, etc. So hypothetically having it in the riot app/account as a setting would be the more consistent place, at least in what I am seeing (theoretical of course).

  2. Which jitsi repo do you think is best for me to open the req in?

  3. Argh about the no virtual audio devices, that's a doosie right there. hmmmm

t3chguy commented 4 years ago

https://github.com/jitsi/jitsi-meet/ is the frontend which is both web and react native to mobile

t3chguy commented 4 years ago

I wonder if it is possible in iOS either when using Apple CallKit

t3chguy commented 4 years ago

Second, this request is also scoped for all riot clients, desktop/android/ios/web/etc, so again, consistent UX.

This repo is for web and desktop only, if you want input from the mobile devs you'd have to make an issue on their repos.

BloodyIron commented 4 years ago

Hopefully this works, even requested API/integration ability : https://github.com/jitsi/jitsi-meet/issues/7003

BloodyIron commented 4 years ago

Second, this request is also scoped for all riot clients, desktop/android/ios/web/etc, so again, consistent UX.

This repo is for web and desktop only, if you want input from the mobile devs you'd have to make an issue on their repos.

An issue for each of the platforms? that seems rather inefficient :/ I was hoping to have one github ticket/issue to "rule them all" not... 3 or 4?

t3chguy commented 4 years ago

Without an issue on those other trackers we won't get any input re the feasibility of doing such in those clients so any discussion here may later be rendered moot.

MadLittleMods commented 1 year ago

This is probably best closed in favor of the speech enhancement issues in Element Call

t3chguy commented 1 year ago

@MadLittleMods EC won't be replacing the 1:1 call stack to my knowledge

BloodyIron commented 1 year ago

@MadLittleMods those listed speech enhancements are not the same as modulation or filters, per-se, as I was originally trying to describe.