Replies: 15 comments 26 replies
-
It would be difficult for a simple algorithm to detect feedback. Jamulus already indicates (latches) a clipping condition. @gilgongo We can do more analysis on "abnormal" traffic if the packets are numbered. Then we can do things like (1) detect out of order packets, (2) detect erratic interpacket times, (3) detect a long delay and then see all the late packets causing xxxx, etc. This is interesting for understanding when bad Internet transport is affecting our sound. This could also be a rabbit-hole. I think numbering the packets and collecting interarrival rates in a log could be really helpful with minimal processing. This still does not help in creating code to detect feedback. Is it possible some people on this thread are using the term feedback to mean some other audio defect? Originally posted by @gene96817 in #797 (comment) |
Beta Was this translation helpful? Give feedback.
-
Detecting feedback would be great. But Jamulus should not automatically mute or lower the volume of this user (this could become really annoying in my opinion). We could add a red warning like the "you are muted" warning which says: "Your signal has been very loud for quite some time! Do you hear feedback? Try to mute yourself and check if you‘ve set up your in/outputs correctly!" [Don‘t show this message again] [Mute myself] |
Beta Was this translation helpful? Give feedback.
-
Originally posted by @gene96817 in #797 (comment) |
Beta Was this translation helpful? Give feedback.
-
If we really want feedback detection, perhaps we should build echo cancellation into the client. What is good about this approach is the client computer should have plenty of compute cycles for this. All the telephony and video conferencing apps have built-in echo cancellation. Most if this is in the codec. Does the codec we use have echo cancellation? |
Beta Was this translation helpful? Give feedback.
-
Echo cancellation would probably result in the typical audio quality issues of video conferencing tools. If we can use it to detect problems that‘s good. We should find ways to show the user what he‘s done wrong. |
Beta Was this translation helpful? Give feedback.
-
I was referring to echo cancellation as a class of well-known algorithms that can automatically detect an echo. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the clarification! |
Beta Was this translation helpful? Give feedback.
-
Do we need to open a ticket for packet numbering or is that already being worked on?
By "interesting" do you mean that it would allow a user to be able to know whether (for example) to adjust their client's jitter buffer and not the server one? Or to reduce their audio quality setting rather than their buffer delay setting? Otherwise (as I keep asking), what's the point in having information if you can't reliably act on it? And more to the point - would such adjustments be able to be done automatically without user intervention? That would be cool if so... |
Beta Was this translation helpful? Give feedback.
-
No. I don't think someone is working on it. Feel free to open one |
Beta Was this translation helpful? Give feedback.
-
@ann0see I think an engineer needs to open that ticket really as I'm not qualified to do so. |
Beta Was this translation helpful? Give feedback.
-
Could someone show me what the payload of the UDP packets looks like? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Will convert this to a discussion since I think it's not yet ready. |
Beta Was this translation helpful? Give feedback.
-
What about the following idea, which should catch the majority of audio feedback cases: After the user has connected or unmuted his microphone during a connection, we monitor the microphone input level for about 3 seconds. If the level is too high during this time or even clipping occurs, we mute the microphone and show the user a short information dialog. When the user unmutes the channel again we would not check the level again because we know that it is intentional. In my opinion the most cases of audio feedback occur when the user connects to the server and has wrong settings. On the other hand, it is quite unlikely that the user joins a server and directly starts with full microphone volume levels. Checking the microphone level (instead of output level) has the advantage that it does not cause a false alarm when a band is jamming at a high overall output level or the mixer settings are simply wrong. The monitoring lasts for only 3 seconds after connecting/unmuting because high microphone levels might also occur during jamming and we do not want to cause false alarms. I think the implementation of this strategy would be rather straightforward and avoid many annoying situations in Jamulus. |
Beta Was this translation helpful? Give feedback.
-
One would use convolution in the design an adaptive filter to suppress echo, or feedback, or background noise (some may call this deep-learning) ... Jamulus already accomplishes this without an idiot-proof method, as RTFM. |
Beta Was this translation helpful? Give feedback.
-
Continuing #797
In short:
How can we improve the following situation:
I hope that’s right?
Possible solution: automatic feedback detection/suppression?
Beta Was this translation helpful? Give feedback.
All reactions