Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Sep 2006 07:54:01 -0700
From:      "Bill Blue" <bblue@netoldies.com>
To:        "Josh Paetzel" <josh@tcbug.org>, freebsd-stable@freebsd.org
Subject:   Re: snd_emu10k1 driver
Message-ID:  <op.tglfob1vzq5pz4@sovaio.netoldies.com>
In-Reply-To: <200609270842.03802.josh@tcbug.org>
References:  <op.tgjcp2b4zq5pz4@sovaio.netoldies.com> <200609270842.03802.josh@tcbug.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 27 Sep 2006 01:42:03 -0700, Josh Paetzel <josh@tcbug.org> wrote:=


> On Wednesday 27 September 2006 11:55, Bill Blue wrote:
>> Hi,
>>
>> Is this driver known to be 100% working?  I'm running stable 6.2 p6
>> right now and have this device driver installed (device sound and
>> device snd_emu10k1 compiled into the kernel) for use with a
>> Creative Live! card.  Audio outputs work correctly, and the various
>> players will produce audio as expected via the PCM control.  Line
>> input works as well.  'mixer' works as does KDE's kmix (they track
>> each other).  I've also installed the driver via kldload at boot,
>> but it makes no difference.
>>
>> I'm unable to successfully record audio from the line input of this
>> Creative Live! card.  Either using the generic /dev/dsp as the
>> recording source, or individual devices /dev/dsp0.0 and up, dspW0.0
>> and up, or dspr0.4/5.  There's just no audio there.
>>
>> For the recording software I've used Krec, ffmpeg, darkice and
>> streamTranscoder (the latter two feeding an icecast server).
>> 'mixer' has its recording device (=3Drec) set to line in, and I'm
>> feeding audio to line in (analog) and spdif in (digital).  There's
>> no problem monitoring the 'line in' buss on the outputs, but
>> there's no audio on the record output device.
>>
>> dmesg shows the driver being installed, and cat /dev/sndstat shows
>> it is active on pcm0.  If I cat /dev/sndstat with a higher
>> verbosity (set with sysctrl) it shows that the record devices
>> should be dsp0.4 and dsp0.5, line and mic in respectively.  The man
>> page for snd_emu10k1 says the recording devices should be dspr0.4
>> and dspr0.5 but only if they're driving a codec directly -- I'm not
>> sure what that means exactly.
>>
>> There's no sound daemons like esound or artsd running during these
>> tests.  The ports being tested as an input device seem to open
>> correctly and show up as read devices in fstat.
>>
>> I've also tried the snd_emu10kx driver to no avail.
>>
>> Has anyone had experience using the Live! sound card and these
>> drivers?  And if so, is recording correctly supported?
>>
>> I have other sound cards available, but none of them seem to have
>> driver support in FreeBSD.  One is a Delta (Midiman) 410 with an
>> ICE1712 chip, and the other is a Turtle Beach TB400 (not a Santa
>> Cruz) with Vortex AU8830A2 chip.  Both cards have analog and
>> digital ins and outs.
>>
>> Anyone with insight on any of this?
>>
>> --Bill
>
> I thought I'd try this out since I have a SB Live! 5.1, use the
> snd_emu10k1 driver and don't run artsd or esound but when I start
> krec the record button is greyed out!  Using ffmpeg and the /dev/dsp
> device I was able to record just fine from the mic port on the card.
>
> I'm running 6.1-R-p6

Here's my various outputs:

Sep 20 19:18:12 v2 kernel: pcm0: <Creative EMU10K1> port 0xd000-0xd01f i=
rq 21 at device 2.0 on pci4
Sep 20 19:18:12 v2 kernel: pcm0: <TriTech TR28023 AC97 Codec>

FreeBSD v2.netoldies.com 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #1: Sun S=
ep 17 15:37:40 PDT 2006     root@v2.netoldies.com:/usr/obj/usr/src/sys/V=
2KERNEL  i386

FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Creative EMU10K1> at io 0xd000 irq 21 kld snd_emu10k1 (4p/2r/4v c=
hannels duplex default)

pcm0@pci4:2:0:  class=3D0x040100 card=3D0x00211102 chip=3D0x00021102 rev=
=3D0x04 hdr=3D0x00
     vendor   =3D 'Creative Labs'
     device   =3D 'EMU10000 Sound Blaster Live! (Also Live! 5.1) - OEM f=
rom DELL - CT4780'
     class    =3D multimedia
     subclass =3D audio
emujoy0@pci4:2:1:       class=3D0x098000 card=3D0x00201102 chip=3D0x7002=
1102 rev=3D0x01 hdr=3D0x00
     vendor   =3D 'Creative Labs'
     device   =3D 'EMU10000 Game Port'
     class    =3D input device

I have found the problem, which turned out to be mostly that of (lack of=
 good) documentation and user interpretation.  The mixer man page doesn'=
t really talk at all about signal routing, and the kmix man page says al=
most nothing useful, with examples that address only one card type.  snd=
_emu10k1's man page says less than all the others combined.

'mixer -?' gives a list of input devices and record devices:

  devices: vol, pcm, speaker, line, mic, cd, rec, igain, line1, phin, ph=
out, video
  rec devices: vol, line, mic, cd, line1, phin, phout, video

and 'mixer' gives a list of all devices and slider settings with no rega=
rd to what they do or how they interrelate, and the default record devic=
e (=3Drec).

At least in this driver, the devices pcm, line, mic, cd, line1, phin, ph=
out, and video, seem to be strictly inputs -- a mix of internal system a=
nd external jack inputs.  pcm is an input from software media players, l=
ine and mic are external inputs, cd and possibly line1 are 4 pin connect=
ors on the card itself, but I don't know the role of phin, phout and vid=
eo.  vol is master playback volume.  The spdif input on the Live! card d=
oesn't seem to be supported.

The rec devices are mostly self explanatory, except for two issues.  Fir=
st, on this driver there's only a single device selectable for record at=
 one time (i.e. no record mixer).  That devices record level is unaffect=
ed by its playback slider level.  Second, the selected device's record l=
evel is controlled by the rec slider (only), and is independent of all o=
ther levels UNLESS the selected record device is vol.  In this case rec =
controls the record level of the signal mix being fed to the system mast=
er volume slider.

Kmix's layout really confuses the roles of the various signals, and even=
 calls the rec device RecMon which implies a different functionality.  X=
mixer lays all devices out on the same pane with no notion of routing.

So, like in the Windows drivers, I was selecting the correct device unaw=
are that whatever device I selected was being record-level-controlled by=
 rec.  Bah.

Anyway, after figuring this out everything works fine with the driver it=
self.  Hopefully, the explanation above will help out someone else about=
 to make the same stupid mistake.  Perhaps future versions of UI's can b=
e laid out in such a way that you can just look at them and understand t=
he routing.

Thanks to those who responded.

--Bill




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.tglfob1vzq5pz4>