Subject: port-i386/26345: recording audio produces only hiss (clct0)
To: None <gnats-bugs@gnats.NetBSD.org>
From: Brian de Alwis <bsd@cs.ubc.ca>
List: netbsd-bugs
Date: 07/16/2004 15:30:55
>Number:         26345
>Category:       port-i386
>Synopsis:       recording audio produces only hiss (clct0)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 16 22:40:01 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Brian de Alwis
>Release:        NetBSD 2.0_BETA
>Organization:
     Brian de Alwis | Graduate student | Software Practices Lab | UBC
"There is much pleasure to be gained in useless knowledge." - Bertrand Russell
>Environment:
System: NetBSD slab 2.0_BETA NetBSD 2.0_BETA (GENERIC_LAPTOP) #0: Fri Jun 25 19:01:50 UTC 2004 autobuild@tgm.netbsd.org:/autobuild/netbsd-2-0/i386/OBJ/autobuild/netbsd-2-0/src/sys/arch/i386/compile/GENERIC_LAPTOP i386
Architecture: i386
Machine: i386

    clct0 at pci0 dev 8 function 0: Cirrus Logic CS4281 CrystalClear
        Audio Interface (rev. 0x01)
    clct0: interrupting at irq 10
    clct0: ac97: Crystal CS4297A codec; headphone, 20 bit DAC, 18 bit ADC,
        Crystal Semi 3D
    clct0: ac97: ext id 200<AMAP>
    audio0 at clct0: full duplex, independent

$ mixerctl -a | sort
inputs.aux.mute=off
inputs.aux=191,191
inputs.cd.mute=off
inputs.cd=191,191
inputs.dac.mute=off
inputs.dac=191,191
inputs.line.mute=off
inputs.line=191,191
inputs.mic.mute=off
inputs.mic.preamp=off
inputs.mic.source=mic0
inputs.mic=191
inputs.phone.mute=off
inputs.phone=191
inputs.speaker.mute=off
inputs.speaker=255
inputs.video.mute=off
inputs.video=191,191
outputs.headphones.mute=off
outputs.headphones=255,255
outputs.master.mute=off
outputs.master=207,207
outputs.mono.mute=off
outputs.mono.source=mixerout
outputs.mono=255
outputs.spatial.center=0
outputs.spatial.depth=0
outputs.spatial=off
record.source=mic
record.volume.mute=off
record.volume=192,192


$ audioctl -a | sort
blocksize=16384
config=cs4281
encodings=ulinear:8,mulaw:8*,alaw:8*,slinear:8,slinear_le:16,ulinear_le:16,slinear_be:16,ulinear_be:16
full_duplex=0
fullduplex=0
hiwat=4
lowat=1
mode=
monitor_gain=0
name=CS4281
play.active=0
play.avail_ports=0x0
play.balance=32
play.buffer_size=65536
play.channels=1
play.encoding=mulaw
play.eof=0
play.error=0
play.gain=207
play.open=0
play.pause=0
play.port=0x0
play.precision=8
play.rate=8000
play.samples=0
play.seek=0
play.waiting=0
properties=full_duplex,independent
record.active=0
record.avail_ports=0x7
record.balance=32
record.buffer_size=65536
record.channels=1
record.encoding=mulaw
record.eof=0
record.error=0
record.errors=0
record.gain=192
record.open=0
record.pause=0
record.port=0x1
record.precision=8
record.rate=8000
record.samples=0
record.seek=0
record.waiting=0
version=


>Description:
    I've been trying to get audio recording working properly with my
    clct (Cirrus Logic CS4281) driver on my Inspiron 2100 laptop,
    with no success.  Looking through the mail archives, I don't
    appear to be the only one.  I have been successful recording
    input from the microphone under Windows, so the hardware works.

    I can get audiorecord to (ostensibly) record something, but
    its playback is just white noise interupted with no noise at
    rhythmic intervals.  I've tried the mic and line inputs.

    I've tried using the audio/xwave and audio/dap packages, and they
    can't get anything better.

>How-To-Repeat:
Plain old audiorecord fails:

    $ audiorecord foo.wav
    audiorecord: failed to set audio info: Invalid argument

Recording from /dev/audio seems to do something:

    $ audiorecord -d /dev/audio -t 0:05 foo.wav

But playing it back with audioplay just produces white noise -- it
has some vague pulsing pattern, but it's still just hiss.  I've tried
this with both the mic and line inputs.

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: