To compile this driver into the kernel, place the following lines in your
kernel configuration file:
device sounddevice snd_emu10kx
Alternatively, to load the driver as a module at boot time, place the
following line in
loader.conf5:
snd_emu10kx_load="YES"
DESCRIPTION
The
bridge driver allows the generic audio driver
sound(4)
to attach to Creative sound cards based on the EMU10K1, CA0100, CA0101, CA0102
and CA0108 DSPs.
The
sound cards have a PCM part, which is accessible through one to five
pcm(4)
devices (see
Sx MULTICHANNEL PLAYBACK
for details), and MPU401-compatible MIDI I/O controller, which is accessible
through the midi device.
Wave table synthesizer support is not available.
HARDWARE
The
driver supports the following sound cards:
Creative Sound Blaster Live! (EMU10K1 Chipset).
Both PCM and MIDI interfaces are available.
Creative Sound Blaster Audigy (CA0100 and CA0101 Chipset).
PCM and two MIDI interfaces available.
Creative Sound Blaster Audigy 2 and Creative Sound Blaster Audigy 4 (CA0102
Chipset).
PCM support is limited to 48kHz/16 bit stereo (192kHz/24 bit part
of this chipset is not supported).
Creative Sound Blaster Audigy 2 Value (CA0108 Chipset).
PCM support is limited
to 48kHz/16 bit stereo (192kHz/24 bit part of this chipset is not supported).
There is no MIDI support for this card.
The
driver does
not
support the following sound cards (although they have names
similar to some supported ones):
Creative Sound Blaster Live! 24-Bit, identified by
Fx as
Qq Li emu10k1x Soundblaster Live! 5.1 .
Creative Sound Blaster Audigy LS / ES, identified by
Fx as
Qq Li CA0106-DAT Audigy LS .
All other Creative sound cards with -DAT chipsets.
All Creative X-Fi series sound cards.
MULTICHANNEL PLAYBACK
By default the
driver is loaded with multichannel playback capabilities enabled.
If you do not set the
hint.emu10kx.0.multichannel_disabled
option in your
loader.conf5
configuration file you will get up to five DSP devices, one for each
sound card output.
You can use additional software (like
audio/pulseaudio
from
The Ports Collection
to do sound stream demultiplexing.
Only
``FRONT''
output can play and record sound from external
sources (like line or S/PDIF inputs).
MULTICHANNEL RECORDING
By default multichannel recording capabilities are not enabled when you load
the
driver.
If you enable the
hint.emu10kx.0.multichannel_recording
option in
loader.conf5
you will get one more DSP device that is rate-locked to 48kHz/16bit/mono.
This is actually 48kHz/16bit/32 channels on SB Live! cards and
48kHz/16bit/64channels on Audigy cards, but the current implementation of
the sound subsystem does not support such an amount of PCM channels.
This device can not be opened for read, thus confusing many applications.
Within a multichannel stream, the first half (0-15 or 0-31) is a copy of all DSP
outputs, the second half (15-30 or 32-63) is a copy of some DSP inputs.
On Live! cards the last substream (31) is used as a sync stream and is always
set to 0xc0de.
Audigy cards do not need such sync data, because a stream always starts with
substream 0.
SB Live! substream map (in byte offsets, each substream is 2 bytes LE)
Offset
Substream
+0x00..+0x1E
PCM streams 0..15
+0x20, +0x22
Empty
+0x24..+0x2A
PCM inputs: front left, front right, rear left, rear right, center, sub
+0x2C..+0x3C
DSP inputs 0..8:
+0x3E
sync substream (0xc0de)
Audigy substream map (in byte offsets, each substream is 2 bytes LE)
Offset
Substream
+0x00..+0x3E
PCM streams 0..31
+0x40..+0x5E
PCM inputs: front LR, rear LR, center, sub, ...
+0x60..+0x7E
DSP inputs 0..16
OSS MIXER CONTROLS
These are the controls available through the standard OSS programming interface.
You can use
mixer(8)
to change them.
On EMU10K1-based cards the OSS mixer directly controls the AC97 codec.
On newer cards the OSS mixer controls some parameters of the AC97 codec and
some DSP-based mixer controls.
Qq vol
mixer control for the overall sound volume.
Qq pcm
mixer control for the PCM playback volume.
It controls only front output
volume in multichannel mode and all output volume in single channel mode.
Qq rec
mixer control acts very differently on EMU10K1 and other cards.
On EMU10K1 cards it controls the AC97 codec recording level.
On non-EMU10K1 cards it controls the amount of AC97
``stereo mix''
entering the DSP.
AC97 recording level and AC97 recording source are fixed on CA0100, CA0101,
CA0102 and CA0108 cards.
The AC97 recording levels are always set to maximum and recording source is always
``stereo mix
''
Qq dig1
is a CD S/PDIF (on-card) volume control
Qq dig2
is an AudigyDrive S/PDIF (Audigy series) or TOSLink (SB Live! series) volume
control
Qq dig3
is an on-card S/PDIF volume control
Qq line2
is AudigyDrive "Line In 2" volume control
Qq line3
is AudigyDrive "AUX In 2" volume control
Other OSS mixer controls control the inputs of the AC97 codec.
PRIVATE DEVICE CONTROLS
You can control some of EMU10Kx's operation and configuration parameters through
dev.emu10kx. Aq X
sysctls.
These
sysctl(8)
values are temporary and should not be relied upon.
DRIVER CONFIGURATION
Loader tunables are used to set driver configuration.
Tunables can be set at the
loader(8)
prompt before booting the kernel or they can be stored in
/boot/loader.conf
These tunables cannot be changed from a machine
sysctl(8)
entry after boot, but you can change them using
kenv(1)
before loading the
driver.
hint.emu10kx. Ao X Ac .disabled
Disables loading a driver instance.
hint.emu10kx. Ao X Ac .multichannel_disabled
Disables multichannel playback support, when one card is represented as
several PCM devices.
An -nosplit
The PCM part of the driver is based on the
snd_emu10k14
SB Live! driver by
An Cameron Grant Aq cg@freebsd.org .
The MIDI interface is based on the
snd_emu10k14
MIDI interface code by
An Mathew Kanner Aq matk@freebsd.org .
The
device driver and this manual page were written by
An Yuriy Tsibizov .
BUGS
The driver does not detect lost S/PDIF signals and produces noise when
S/PDIF is not connected and S/PDIF volume is not zero.
The PCM driver cannot detect the presence of Live!Drive or AudigyDrive
breakout boxes and tries to use them (and list their connectors in the
mixer).
The MIDI driver cannot detect the presence of Live!Drive or AudigyDrive
breakout boxes and tries to enable the IR receiver on them anyway.