FORUMS
Remove All Ads from XDA

[Q] App that turns off microphone AGC (Auto-Gain Control)?

109 posts
Thanks Meter: 1
 
By Pierrot Lunaire, Senior Member on 19th April 2011, 07:25 PM
Post Reply Email Thread
While playing around with some recording apps I noticed that most recordings I got were too loud and distorted. I figured it had to do with some sort of an Auto Gain Control. I was right when I tried one app called "TapeMachine" which has an option to disable AGC and also has a mic gain control which is great. Once it disabled AGC the recording sound was much better. Clear and undistorted.

I understand that AGC is important for phone calls but it's terrible for recording audio and video. It would be nice to record videos with AGC off and I can't find an option to disable it in the system settings. Can't find an app that controls it either.

Does anyone know of an app that turns AGC on/off and have manual gain control?

Thanks!
20th April 2011, 10:44 AM |#2  
OP Senior Member
Thanks Meter: 1
 
More
Anyone reading these questions?
22nd April 2011, 11:00 AM |#3  
OP Senior Member
Thanks Meter: 1
 
More
argh...

I will pay for an app that can disable the microphone auto-gain control!

Come on people, haven't you noticed recording stuff sound like crap?
The sound on recorded videos is just bad. And it's not because the microphone is bad, it's because the AGC is always enabled.

Try "TapeMachine" and hear for yourself. I'm not joking.

I think I'm not the only one who would be happy about a feature like that.
22nd April 2011, 08:29 PM |#4  
huggs's Avatar
Senior Member
Flag the internet
Thanks Meter: 221
 
More
I searched around the mkt, and couldn't find anything other than recording apps, paid or free, that even mention the AGC either. Kinda surprising.

Sent from my HTC HD2 using XDA App
22nd April 2011, 11:29 PM |#5  
OP Senior Member
Thanks Meter: 1
 
More
Quote:
Originally Posted by huggs

I searched around the mkt, and couldn't find anything other than recording apps, paid or free, that even mention the AGC either. Kinda surprising.

Sent from my HTC HD2 using XDA App

First of all I'm glad I was able to wake someone up around here. It seems like no one knows there is an AGC in Android, but "TapeMachine" definitely revealed that to me.

I did find someone mentioning the same issue on the Samsung Galaxy forum:
http://forum.xda-developers.com/showthread.php?t=896826

You can even see the difference in the waveforms pictures he attached to the post.
The Following User Says Thank You to Pierrot Lunaire For This Useful Post: [ View ] Gift Pierrot Lunaire Ad-Free
24th April 2011, 03:56 PM |#6  
OP Senior Member
Thanks Meter: 1
 
More
Well, I have some technical information, but I can't do much with it because I'm not a programmer.
The programmer of an app called "Break Speed" uses a code in his app to disable AGC and he wrote me what the code he uses is.
Maybe someone can use this information to create an app that can disable AGC. This is what he wrote me:

Quote:

I found that in Android 2.2 (and higher), they introduced an undocumented flag in the AudioRecord() class, called “VoiceRecogntionQuality”. In the code, there is a note to expose and document that flag (it just hasn’t been done yet.) So I expect that it is supported (and will continue to be.) My guess is that AGC was added to 2.2 and this is the flag that disables it.

Here’s the code I used to adjust my recordings for it:

// We use our version to attempt "VoiceRecogntionQuality" recordings (to disable AGC)
int version = Integer.parseInt(android.os.Build.VERSION.SDK);

// Try to get the audio record for Android 2.2 and greater using 'voice recognition quality'
if (version >= 7)
{
recordInstance = new AudioRecord(6, m_frequency, m_channelConfiguration, m_audioEncoding, bufferSizeBytes * m_bufferCount);
}

// For older versions of Android (or failed attempts of the voice recognition quality recordings)
if (version < 7 || recordInstance.getState() == AudioRecord.STATE_UNINITIALIZED)
{
recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, m_frequency, m_channelConfiguration, m_audioEncoding, bufferSizeBytes * m_bufferCount);
}

4th May 2011, 09:15 AM |#7  
Member
Thanks Meter: 3
 
More
Quote:
Originally Posted by Pierrot Lunaire

Well, I have some technical information, but I can't do much with it because I'm not a programmer.
The programmer of an app called "Break Speed" uses a code in his app to disable AGC and he wrote me what the code he uses is.
Maybe someone can use this information to create an app that can disable AGC. This is what he wrote me:

can we request the programmer you'd contacted to write a small app for us to just enable/disable AGC? We can assure him of buying some beer/coffee :)
7th May 2011, 03:32 PM |#8  
OP Senior Member
Thanks Meter: 1
 
More
Quote:
Originally Posted by santu71182

can we request the programmer you'd contacted to write a small app for us to just enable/disable AGC? We can assure him of buying some beer/coffee :)

heh, I already implied that in the email I wrote him, but didn't really get a response.
I posted here, because there are programmers around here also, but it seems people are ignoring this issue. If I knew how, I would make an app myself.
12th April 2012, 05:29 PM |#9  
Junior Member
Thanks Meter: 1
 
More
just use Voice_recognition as source and that's all
13th December 2012, 12:15 PM |#10  
Junior Member
Thanks Meter: 0
 
More
same problem here, I tried with your friend's solution (using 6 instead of AudioSource.MIC) but nothing changes... the waveform becomes even worse when the source produces powerful sounds.
Have you solved you problem?
ty
2nd November 2013, 08:09 PM |#11  
Member
Thanks Meter: 14
 
More
video, audio, mic input: solution!
DSP manager in CM10, no problem to control: the mic input - 4 levels. I can shoot videos with nice audio, for example a Rock Concert.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes