HI,
We are using wm8960 codec in our custom board with i.MX6DL in solo mode. When I record from command line using alsa_arecord, the quality is fine. But when I use android voice recording for recording, the recorded file contains too much noise. This app generates a .3gpp file. I tested with another recording app that saves recorded sound in WAV format, it was fine with no noise.
The same behaviour is observed on i.MX6DL sabresd board.
Does anyone know what the problem is? Is there a patch or something for this?
Thanks
已解决! 转到解答。
Hi
I received feedback from the R&D guys. They said we can modify this file: hardware/imx/alsa/config_wm8962.h,
within your myandroid directory for changing the default volume values.
You can give a louder value to speaker volume like 110 or 120 instead of the default 96. Also you can modify the capture volume too.
/* These are values that never change */
static struct route_setting defaults_wm8962[] = {
/* general */
{
.ctl_name = MIXER_WM8962_DIGITAL_PLAYBACK_VOLUME,
.intval = 96,
},
{
.ctl_name = NULL,
},
};
static struct route_setting bt_output_wm8962[] = {
{
.ctl_name = NULL,
},
};
static struct route_setting speaker_output_wm8962[] = {
{
.ctl_name = MIXER_WM8962_SPEAKER_SWITCH,
.intval = 1,
},
{
.ctl_name = MIXER_WM8962_SPEAKER_VOLUME,
.intval = 121,
},
{
.ctl_name = NULL,
},
};
Hi,
I am working with wm8960 codec on the platform of imx6。
Now using the command "tinyplay", i can playback the voice。
But “tinycap” does not work。
Can you give me some help? Maybe give me your imx-wm8960.c file, so i can reference。
My email is jizaoxiang@163.com。
Best wishes!
I have the same problem with you。
Can you give me some help? My email is jizaoxiang@163.com。
Thanks so much!
I have been trying to reproduce the issue. But Im not able to get the iMx6DL SabreSD board workig in solo mode :smileysad:
What did you change to run in solo mode?
Also Im not able to see the alsa_arecord function, where did you get it?
Hi Juan,
All you have to do is apply the solo patch to sabre sd's boot loader. I think you can find the patch on freescale's product page for i.MX6DL/SOLO. Thats all we did as I remember.
You will have alsa_arecord as a part of android. You wont have to do anything explicitely. If you are running linux, then you may have to build and deploy alsa_utils package.
Regards,
Kishan
Thanks
Which android release are you using for sabresd?
Are you booting from SD or eMMC?
I'm still not able to boot in solo mode. Not sure what I'm missing :( Would you share your uboot.bin file for sabresd, please?
Hi,
We are using R13.41.
I am booting from SD card.
Actually, we had taken sabre sd's bootloader and modified it for our need. We had altered mux settings and other things including DDR configuration in the boot loader. So, I don't think our bootloader is going to be of any help to you.
In DL mode also you can observe the noise. Actually I am using sabre sd in DL mode only.
By the way, did you try applying the solo patches?
Thanks
Thanks Kishan
I see, I thought the issue was only in solo mode even in the SabreSD board.
I think I already tried with SabreSD DL (regular mode) and not heard the noise, but I will double-check. I guess I used JB release instead of r13.41. I will try this release too.
Any special steps to reproduce the noisy recording or just record?
I tried recording using default android app for recording "Voice Recorder". And I observed constant background noise.
I have not tried recording from command line using arecord. That is fine on our board which uses wm8960.
Hi,
Yes, I'm using the SabreSD DL. I'm using a headset (mic + headphones).
I'm recording with Sound Recorder and then playing back with Music App.
Can you share your SoundRecorder.apk file so I can try it at my side?
Actually I was recording using headset with mic only. For me it was noisy when I played it back. I am using the apk that comes with android. Its the default app. (I am sorry I could not attach it, I found control for that on this editor.) I will check it once again and let you know.
Hey, now I tried with a different headset, and the noise was considerably less. But recording volume was very less. I could hear the recorded sound only on headphone. On speakers it was not audible at all. In codec I have set capture volumes to max.
Hi
I received feedback from the R&D guys. They said we can modify this file: hardware/imx/alsa/config_wm8962.h,
within your myandroid directory for changing the default volume values.
You can give a louder value to speaker volume like 110 or 120 instead of the default 96. Also you can modify the capture volume too.
/* These are values that never change */
static struct route_setting defaults_wm8962[] = {
/* general */
{
.ctl_name = MIXER_WM8962_DIGITAL_PLAYBACK_VOLUME,
.intval = 96,
},
{
.ctl_name = NULL,
},
};
static struct route_setting bt_output_wm8962[] = {
{
.ctl_name = NULL,
},
};
static struct route_setting speaker_output_wm8962[] = {
{
.ctl_name = MIXER_WM8962_SPEAKER_SWITCH,
.intval = 1,
},
{
.ctl_name = MIXER_WM8962_SPEAKER_VOLUME,
.intval = 121,
},
{
.ctl_name = NULL,
},
};
Yes, I can see audio output in speakers is very low
I change it the audio volume to a louder value using amixer
#Digital Playback Volume (max 127)
alsa_amixer cset numid=18 120,120
I also noticed the capture volume is at maximum which can lead to saturation or capture environment noise
# Digital Capture Volume (max 127)
alsa_amixer cset numid=8 110,110
However i noticed that the Playback volume is kept all the way after you set it with amixer.
However the Capture Volume is changed by the SoudRecored app each time the record button is pressed. so I needed to change the capture volume on the fly (after the recording was started)
I will try to check if there is a way to configure this values other that write directly using the amixer controls.