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

Voice chat support #48

Open
h1nk opened this issue Oct 17, 2019 · 4 comments
Open

Voice chat support #48

h1nk opened this issue Oct 17, 2019 · 4 comments

Comments

@h1nk
Copy link

h1nk commented Oct 17, 2019

Depending on how hackable the ncurses interface is would it be possible to have actual voice chat support?

@Noskcaj19
Copy link
Member

I actually (very briefly) experimented with this in discord-voice-cli. It would certainly be possible to incorporate it into weechat with commands and probably a custom buffer. In fact incorporating it would probably be quite simple.

Unfortunately sound is quite difficult and I would need to implement Voice Activity Detection and implement proper bitrate conversions, and I have no experience with either of those. It is however something I would like to do.

@Noskcaj19
Copy link
Member

Opus (or SILK?) should perform the Voice Activity Detection, however I have not had much luck figuring out how to access it from the decoder api.
Bitrate conversions should be fairly straightforward, as it should be a fairly common procedure.

@h1nk
Copy link
Author

h1nk commented Oct 21, 2019

Personally I've always used push-to-talk, maybe it'd be easier to start off with just a global push to talk system (then again global Xorg PTT might actually be even more work than a voice activity detection system)? Also I wanted to ask if it'd be possible to nest clients in the buflist itself without creating a custom buffer (which would probably have to be awkwardly placed in addition to the other default buffers) like:

┌─────────────────────────────────────────────────────────────────────────────────────┐
│weechat      │                                                               │person1|
│discord      │                                                               |person2│
│  #general   │                                                               │person3|
│  #blah      │                                                               │person4|
│  @voice1    │                                                               │       │
│    ○ person1│                                                               │       │
│    ● person2|                                                               │       │
│    ○ person3│                                                               │       │
│    ○ person4│                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │                                                               │       │
│             │_______________________________________________________________|       │
│             │[person1]█                                                     |       │
└─────────────────────────────────────────────────────────────────────────────────────┘

I'm going to guess it's not possible unless some seriously severe hacking is done to weechat-curses/libncurses itself.

@Noskcaj19
Copy link
Member

A global push to talk might actually be a viable option. (I only know the macOS way of doing this, but it looks like there may be some crates to do it.)

As far as more nesting in the buflist, it would appear it might be quite easy. It think it's possible for the config strings to access hdata and maybe localvars, which would mean it should be fairly easy to support Discord specific formats.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants