Clemens,
I respect your options and appreciate your time, but from what I have read, for a U8 format, silence is represented by a x'7F'. Do you have a source for your option?
In pcm_misc.c seems to support your statement:
static struct pcm_format_data pcm_formats[SNDRV_PCM_FORMAT_LAST+1] = {
. .
[SNDRV_PCM_FORMAT_U8] = { .width = 8, .phys = 8, .le = -1, .signd = 0, .silence = { 0x80 },
So I guess I need to make my filter flexible to match the current hardware device driver?
How would you filter out noise? I am new to these interfaces and would like to find a good place to get more information about filters, noise, etc. Any URLs that you could recommend?
Thanks again for your time.
William Estrada MrUmunhum@popdial.com Mt-Umunhum-Wireless.net ( http://Mt-Umunhum-Wireless.net ) Ymessenger: MrUmunhum
Clemens Ladisch wrote:
william estrada wrote:
I think I have found a problem with the USB sound driver? It appears that the current drive returns a x'81' for silence but it should be a x'7f'.
The USB audio driver returns whatever data is sent by the device
When I use my laptop's sound device and record without a mic, I get a file full of x'7f's. If I do the same with my cheap-o USB device I get a file full of x'81's.
For unsigned 8-bit samples, silence is x'80'.
Apparently, both devices have some DC offset and are quite noisy.
I have written a recording program that I have a 'silence' filter that filters out segments of dead air. It works with the laptop's sound device but not the USB device. The filter works by remove x'7f's after allowing a selectable amount.
Your filter should be able to detect silence even when noise is present.
Sorry for the multiple posting, not sure where is should have gone.
The the linux-audio-dev list, of course. ;-)
Regards, Clemens