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 Messages - Hold and send mode #3009

Closed
5 tasks
giomfo opened this issue Mar 16, 2021 · 13 comments
Closed
5 tasks

Voice Messages - Hold and send mode #3009

giomfo opened this issue Mar 16, 2021 · 13 comments

Comments

@giomfo
Copy link
Member

giomfo commented Mar 16, 2021

We consider here the first steps to support the voice messages in element-android.

MSC2516 is under review to add a new message type for voice messages. We will have to use org.matrix.msc2516.voice as the msgtype for now, but once it's in the spec properly then we can switch to m.voice.
What will probably end up happening is in code there will be a if (msgtype === "org.matrix.msc2516.voice" || msgtype === "m.voice") statement for several releases, once m.voice is allowed.

The first supported mode will be the "hold and send" mode defined by the following points:

  • Voice messages Hold and send
    • Add a voice message button to the composer
    • OnLongPress on the MIC, it gets activated and the recording start. If the user releases the finger, the message gets sent
    • Voice messages last up to 2min. On the last 10s a toast notification is displayed warning users of time left. In this mode, if the user goes over the limit, the message gets sent.
  • Cancel Swipe Left interaction
    • The user has just activated the Voice recording mode. This opens the locking system.
    • If the MIC button is moved towards the left, the Cancelling mode is activated.
    • The chevron, Slide to cancel string and Mic button are attached which means that they all move together
    • Once the chevron and the begining of the string reaches the recording area, the recording is cancelled. A vibration is triggered as soon as it is cancelled.
    • Once cancelled, it returns to the default mode
  • Sending a voice message
    • While sending the voice message, the message is showing the audio bar and a progress
    • Once sent, the sent tick is shown
  • Playing back a sent voice message
    • sent voice messages will be displayed with an audio visualiser bar and a play button
    • Part of the audio file that has been played is darker
  • As soon as the user is typing, the Mic is replaced with the Send button
@faaaaabi
Copy link

faaaaabi commented Apr 1, 2021

Sounds very promising.
One question about the 2 minute limit. Is there a technical reason for this hard limit?
The expectation on the user side is very likely to be able to send voice messages with nearly no hard length limit (e.g Signal).

@giomfo
Copy link
Member Author

giomfo commented Apr 1, 2021

Is there a technical reason for this hard limit?

No, this is a design reason

@efelon
Copy link

efelon commented Apr 7, 2021

Speaking from experience with my wife and her circle of voice messengers ;) , 2 Minutes only covers about 60-80% of their regular messages. Having all those kind of users on board without a negative first expression of that feature would boost popularity a lot in my opinion. Please consider those options in that order:

  1. No time/size limit
  2. If a fixed limit is necessary, go higher (5 min. - 10 min)
  3. Have a setting for the time limit

For my case having voice messages is the last big resort which prevents me from switching and maybe even "forcing" everyone around me to matrix.

@fockr
Copy link

fockr commented Apr 12, 2021

One question about the 2 minute limit. Is there a technical reason for this hard limit? The expectation on the user side is very likely to be able to send voice messages with nearly no hard length limit (e.g Signal).

I suppose a limitation makes sense - the 2 min as well - but a possibility to customize it in the settings would be good for "power users".

@dipeve
Copy link
Contributor

dipeve commented May 14, 2021

I agree that the limit must be higher (5-10min) at least in WhatsApp heavy countries voice messages are highly used to carry a whole conversation, and a necessity for a messaging app.
For a good first impression and to keep the new users engaged this very important function must be at least comparable, if not best, than other apps.

@greenpark-code
Copy link

Now that Whatsapp is again pushing users into accepting privacy conditions allowing for more intense cross-referencing of metadata (conditions rejected by authorities in Germany), it would really be a great time to bring more users to Element and this feature would be a very important one (*).

[...] voice messages are highly used to carry a whole conversation, and a necessity for a messaging app [...]
For a good first impression and to keep the new users engaged this very important function must be at least comparable, if not best, than other apps.

The time limit could be configurable, but I'd really say that by default it should be the longest possible, 10 min is a good default value IMHO.

(*) Actually I've just realized that the Android app lacks this feature, which means I can't right now insist that a few Whatsapp groups I'm in turn to Element, what a pity.

@Beiri22
Copy link

Beiri22 commented May 23, 2021

Is there any information on the used audio codec - do you use opus for that?

@ghjardim
Copy link

I agree with increasing the time limit up to ~10 min. I have some friends that usually send audios up to 5, 7 minutes. I also agree that this feature is very important to bring more people over to Matrix. Personally, I have friends that I cannot invite to Matrix protocol because of the voice messages.
Please remind that voice messages may be important also to people with vision impairments.

@dylanmorroll
Copy link

dylanmorroll commented Jun 2, 2021

+1 for this, with voice messages Element could be used for almost all communication, rather than having to switch to yet another app for this feature. This and location are the two things holding me back from shifting away reliance on other messaging apps!

I have to say I do sometimes appreciate the shorter messages for being able to navigate easily through long voice notes. But configuration sounds nice. Perhaps even an optional per room configuration of some sort that could be agreed upon if it's decided to be used/ enforced by creators of a public room.

@G2G2G2G
Copy link

G2G2G2G commented Aug 7, 2021

@Beiri22

Is there any information on the used audio codec - do you use opus for that?

Yes looks like it is using opus, Stream #0:0: Audio: opus, 48000 Hz, mono, fltp
though the container is wrong as per https://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
should be .opus or .oga
firefox changes it to .oga if you save the file via the browser, chromium will keep it as .ogg

Stream #0:0(eng): Audio: vorbis, 48000 Hz, mono, fltp, 80 kb/s
Actually desktop is using opus, phones use vorbis? wtf, inconsistencies already lmao

All of them should be using OPUS or speex, not vorbis, which is for music.
Tagging @onurays whom seems to be relevant in fixing the voice message bugs

@Beiri22
Copy link

Beiri22 commented Aug 8, 2021

I agree that the audio settings should be consistent across clients and vote for opus over speex 😉

@RayBB
Copy link

RayBB commented Nov 29, 2022

As far as I can tell, this issue seems to be done. Maybe we can close it? @giomfo

@giomfo
Copy link
Member Author

giomfo commented Nov 29, 2022

yes I confirm - done 👍

@giomfo giomfo closed this as completed Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests