Forum

Results 1 to 7 of 7
  1. #1
    Join Date
    January 2013
    Location
    Germany
    Posts
    2

    Noise awareness plugin

    I hope I did not miss a thread for this feature. I skimmed about 30 pages forums and threads so far and could not find a program that fits my needs.

    Often when I game I tend to get a bit too loud. Living with other people that can turn out to be quite a problem. For a while I am looking for a program or plugin that gives me either visual or sound feedback when the input in my mic gets too loud.
    I guess there might be more people with the same issue as closed headsets really make you loose the sense for your own loudness.

    So please consider implementing this feature. I am trying to develop one by myself but I'm fairly new to coding so that might take ages.

    Regards
    Simon

    tl;dr:
    I am looking for a plugin or stand alone program that warns me when the mic input is too high.

  2. #2
    Join Date
    October 2012
    Location
    Germany
    Posts
    553
    Most common if not all programs with clip indication don't actually analyze the signal in a way that proves (analog) clipping, but do an early alarm for digital clipping.
    The thing is, when the signal reaches us as sample values, analog clipping will already have occured and simply be a signal looking different to what it should. But one cannot just go like this value is out of range, too high or something. So, to determine actual analog clipping one would've to do some Fast Fourier Transform (FFT) magic and analyze the frequency spectrum and compare that to what voice should look like. That's neither really inexpensive (although one could argue nowadays it is) to compute or reliably determinable afterwards.
    Therefor, peak determination afaik usually works by analyzing how often or if a threshold near the/a value range is reached, and when that happens, alert a peak. Since professional audio uses a 32bit+ value range for internal processing, there's easily enough headroom for such stuff, since it will have come in as 16 or 24 and be taken down to 16 or 24 later on again anyways.
    I would asume the widget for setting the mic volume works like that, too. So, technically, even the red area is still not necessarily clipping in any way, but alarming early for digital clipping.
    Even worse, the analog amplified overdriven signal might have passed a digital volume fader already (windows sound mixer etc.), which would probably reduce the (digital) volume again. Then, the digital peak detection fails since we have a quiet overdriven signal...

    Long story short, one can do a lot inside the digital domain in audio, but once a damage is done, it's quite a journey to fix or even reliably alert it. It'd probably be easier to really make sure one leaves enough headroom for when things get loud and possibly add some compression (downside: increased background noise) to the signal to pump it up a little to reduce dynamics in addition to the gain normalization method used by the client if that option is enabled.
    Last edited by Philosound; January 21st, 2013 at 04:42 AM.

  3. #3
    Join Date
    September 2012
    Posts
    6,080
    This won't be implemented.
    Last edited by Chris; January 21st, 2013 at 01:37 PM.

  4. #4
    Join Date
    October 2003
    Location
    Germany
    Posts
    2,528
    Actually, I like the idea of having such a feature... but I don't think it should be added to the client UI. Instead, the plugin SDK could provide a function to indicate you're talking "loud" so a plugin (e.g. an overlay plugin) could display a warning in his own way.

  5. #5
    Join Date
    January 2010
    Location
    El Prat de Llobregat (Barcelona, Spain)
    Posts
    2,698
    Quote Originally Posted by ScP View Post
    Actually, I like the idea of having such a feature... but I don't think it should be added to the client UI.
    What about an acoustic warning instead of a visual one? Maybe this option in the client could help to "self-educating" the talking.

  6. #6
    Join Date
    January 2013
    Location
    Germany
    Posts
    2
    @Philosound

    I am not sure if I got you right...
    I don't know the technical or code basis of the voice activation. Would it be possible to insert a second bar that makes a sound when breached? I don't know if it is possible to fetch the information of the voice activation or just if someone is speaking or not. That would be my way to a solution.

  7. #7
    Join Date
    October 2012
    Location
    Germany
    Posts
    553
    Let's say, audio comes in as array packets with single sample values between -1 and +1 (float style).
    As it is with waves, the nearer to +1/-1 a value, the farer away from 0, the more loud.
    Voice activation usually works the same way as digital peak metering, just with another threshold value:

    Cycle through the packet and look if there's a sample above the threshold and if so, do something.
    To avoid switching too often if the signal is "around" the threshold and to make up for very short peaks, it is common practice to, instead of using a single value overstepping, count the occurrences in a certain time frame, for example all the samples in the array of a packet if it isn't very small, and decide by the amount.

    So, yes, one could do that the same way as voice activation.
    However, there are flaws to it, most notably an improper setup (analog boost all the way up and digital volume down) could sabotage detection, or, generate false positives on a hot signal, for example pre-modulated via an analog compressor/limiter. Admittedly, the later should be rather rare

    The simple fact is, one needs to alert on a likelyhood since all values are in rage, which is technically not exactly ideal, but done so.
    To use our example range again, one would need to search for let's say values higher than 0.8 and lower -0.8 and use the amount as indicator for likely clipping, since we just cannot search for values higher than 1 or lower than -1 since in this context, those just won't occur because earlier algorithms involved in the whole process will have done something like if (val>1) val = 1 way before we gain access. One could check for several occurrences in a row of +1/-1, but it's possible that the ADC part might clip earlier than the digital min/max, let's say 0.99999, 0.99999, 0,99999 would somewhat likely be a clipped signal in a voice recording.

    Edith: Oh and since you mention closed headphones, maybe try correcting the problem at the source: Locally loop back the mic to the headset (when using them), so that you hear yourself in a comfortable way to not start talking louder to begin with.
    Last edited by Philosound; January 22nd, 2013 at 12:59 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Where are the newest plugin.c and plugin.h files?
    By PatPeter in forum General Questions
    Replies: 5
    Last Post: July 24th, 2015, 12:43 PM
  2. TS3 IPC Plugin - Use the plugin sdk in your external apps
    By Thomas in forum Client Plugins / Lua Scripts
    Replies: 31
    Last Post: June 14th, 2011, 11:02 AM
  3. ts3 overlay plugin (Failed to open plugin)
    By netmario in forum Windows
    Replies: 0
    Last Post: September 22nd, 2010, 09:29 AM
  4. Replies: 0
    Last Post: April 9th, 2010, 01:21 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •