I posted this on android-developers and got the suggestion to post
here instead.
I'm trying to sample low frequency signals on the headset microphone
AD.
There seems like by default android uses the sound chip voice filter
which has a high pass filter around 100-200 Hz.
Looking around in the code I found the following.
The wolfson driver defines the 3 different filter options available on
the chip, eg:
static const char *adc_hpf_text[] = {"Hi-Fi","Voice 1","Voice 2",
"Voice 3",};
inhttp://
opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-aso...
In libaudio I can't really see that these are used again, does all
these options disappear inside alsa? Is it possible to change some
alsa setting to set which mode to use? Or have they changed name so
much that I can't recognise them any more?
Also in libaudio(hardware/msm7k/libaudio-qsd8k) I can find msm7k and
below that qsd8k if I have understood correctly these are qualcomm
chips but I know there is phones using wolfson, are they using the
same code due to being similar or is the wolfson related code
somewhere else?
Also in hardware/msm7k/libaudio-qsd8k/AudioHardware.cpp there seems
like system property "media.a1026.nsForVoiceRec" controls if to use
Noice Suppresion or not. This I guess could be a control for the
filtering. This seems to default to 0 and on my nexus one the flag
seems not to be set and still I get the low freq filtering. Is this
value in any way related to the filtering?
Would be very happy for any answer to these questions or explanations
around this part of android.
larlin