1*3b7b7de0SSascha Wildner.\" 2*3b7b7de0SSascha Wildner.\" Copyright (c) 2003-2007 Yuriy Tsibizov 3*3b7b7de0SSascha Wildner.\" All rights reserved. 4*3b7b7de0SSascha Wildner.\" 5*3b7b7de0SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 6*3b7b7de0SSascha Wildner.\" modification, are permitted provided that the following conditions 7*3b7b7de0SSascha Wildner.\" are met: 8*3b7b7de0SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 9*3b7b7de0SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 10*3b7b7de0SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 11*3b7b7de0SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 12*3b7b7de0SSascha Wildner.\" documentation and/or other materials provided with the distribution. 13*3b7b7de0SSascha Wildner.\" 14*3b7b7de0SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*3b7b7de0SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*3b7b7de0SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*3b7b7de0SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*3b7b7de0SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*3b7b7de0SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*3b7b7de0SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*3b7b7de0SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*3b7b7de0SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*3b7b7de0SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*3b7b7de0SSascha Wildner.\" SUCH DAMAGE. 25*3b7b7de0SSascha Wildner.\" 26*3b7b7de0SSascha Wildner.\" $FreeBSD: head/share/man/man4/snd_emu10kx.4 267938 2014-06-26 21:46:14Z bapt $ 27*3b7b7de0SSascha Wildner.\" 28*3b7b7de0SSascha Wildner.Dd January 8, 2015 29*3b7b7de0SSascha Wildner.Dt SND_EMU10KX 4 30*3b7b7de0SSascha Wildner.Os 31*3b7b7de0SSascha Wildner.Sh NAME 32*3b7b7de0SSascha Wildner.Nm snd_emu10kx 33*3b7b7de0SSascha Wildner.Nd Creative SoundBlaster Live! and Audigy sound cards device driver 34*3b7b7de0SSascha Wildner.Sh SYNOPSIS 35*3b7b7de0SSascha WildnerTo compile this driver into the kernel, place the following lines in your 36*3b7b7de0SSascha Wildnerkernel configuration file: 37*3b7b7de0SSascha Wildner.Bd -ragged -offset indent 38*3b7b7de0SSascha Wildner.Cd "device sound" 39*3b7b7de0SSascha Wildner.Cd "device snd_emu10kx" 40*3b7b7de0SSascha Wildner.Ed 41*3b7b7de0SSascha Wildner.Pp 42*3b7b7de0SSascha WildnerAlternatively, to load the driver as a module at boot time, place the 43*3b7b7de0SSascha Wildnerfollowing line in 44*3b7b7de0SSascha Wildner.Xr loader.conf 5 : 45*3b7b7de0SSascha Wildner.Bd -literal -offset indent 46*3b7b7de0SSascha Wildnersnd_emu10kx_load="YES" 47*3b7b7de0SSascha Wildner.Ed 48*3b7b7de0SSascha Wildner.Sh DESCRIPTION 49*3b7b7de0SSascha WildnerThe 50*3b7b7de0SSascha Wildner.Nm 51*3b7b7de0SSascha Wildnerbridge driver allows the generic audio driver 52*3b7b7de0SSascha Wildner.Xr sound 4 53*3b7b7de0SSascha Wildnerto attach to Creative sound cards based on the EMU10K1, CA0100, CA0101, CA0102 54*3b7b7de0SSascha Wildnerand CA0108 DSPs. 55*3b7b7de0SSascha Wildner.Pp 56*3b7b7de0SSascha WildnerThe 57*3b7b7de0SSascha Wildner.Nm 58*3b7b7de0SSascha Wildnersound cards have a PCM part, which is accessible through one to five 59*3b7b7de0SSascha Wildner.Xr pcm 4 60*3b7b7de0SSascha Wildnerdevices (see 61*3b7b7de0SSascha Wildner.Sx MULTICHANNEL PLAYBACK 62*3b7b7de0SSascha Wildnerfor details), and MPU401-compatible MIDI I/O controller, which is accessible 63*3b7b7de0SSascha Wildnerthrough the midi device. 64*3b7b7de0SSascha WildnerWave table synthesizer support is not available. 65*3b7b7de0SSascha Wildner.Sh HARDWARE 66*3b7b7de0SSascha WildnerThe 67*3b7b7de0SSascha Wildner.Nm 68*3b7b7de0SSascha Wildnerdriver supports the following sound cards: 69*3b7b7de0SSascha Wildner.Pp 70*3b7b7de0SSascha Wildner.Bl -bullet -compact 71*3b7b7de0SSascha Wildner.It 72*3b7b7de0SSascha WildnerCreative Sound Blaster Live!\& (EMU10K1 Chipset). 73*3b7b7de0SSascha WildnerBoth PCM and MIDI interfaces are available. 74*3b7b7de0SSascha Wildner.It 75*3b7b7de0SSascha WildnerCreative Sound Blaster Audigy (CA0100 and CA0101 Chipset). 76*3b7b7de0SSascha WildnerPCM and two MIDI interfaces available. 77*3b7b7de0SSascha Wildner.It 78*3b7b7de0SSascha WildnerCreative Sound Blaster Audigy 2 and Creative Sound Blaster Audigy 4 (CA0102 79*3b7b7de0SSascha WildnerChipset). 80*3b7b7de0SSascha WildnerPCM support is limited to 48kHz/16 bit stereo (192kHz/24 bit part 81*3b7b7de0SSascha Wildnerof this chipset is not supported). 82*3b7b7de0SSascha Wildner.It 83*3b7b7de0SSascha WildnerCreative Sound Blaster Audigy 2 Value (CA0108 Chipset). 84*3b7b7de0SSascha WildnerPCM support is limited 85*3b7b7de0SSascha Wildnerto 48kHz/16 bit stereo (192kHz/24 bit part of this chipset is not supported). 86*3b7b7de0SSascha WildnerThere is no MIDI support for this card. 87*3b7b7de0SSascha Wildner.El 88*3b7b7de0SSascha Wildner.Pp 89*3b7b7de0SSascha WildnerThe 90*3b7b7de0SSascha Wildner.Nm 91*3b7b7de0SSascha Wildnerdriver does 92*3b7b7de0SSascha Wildner.Em not 93*3b7b7de0SSascha Wildnersupport the following sound cards (although they have names 94*3b7b7de0SSascha Wildnersimilar to some supported ones): 95*3b7b7de0SSascha Wildner.Pp 96*3b7b7de0SSascha Wildner.Bl -bullet -compact 97*3b7b7de0SSascha Wildner.It 98*3b7b7de0SSascha WildnerCreative Sound Blaster Live!\& 24-Bit, identified by 99*3b7b7de0SSascha Wildner.Fx 100*3b7b7de0SSascha Wildneras 101*3b7b7de0SSascha Wildner.Qq Li "emu10k1x Soundblaster Live! 5.1" . 102*3b7b7de0SSascha Wildner.It 103*3b7b7de0SSascha WildnerCreative Sound Blaster Audigy LS / ES, identified by 104*3b7b7de0SSascha Wildner.Fx 105*3b7b7de0SSascha Wildneras 106*3b7b7de0SSascha Wildner.Qq Li "CA0106-DAT Audigy LS" . 107*3b7b7de0SSascha Wildner.It 108*3b7b7de0SSascha WildnerAll other Creative sound cards with -DAT chipsets. 109*3b7b7de0SSascha Wildner.It 110*3b7b7de0SSascha WildnerAll Creative X-Fi series sound cards. 111*3b7b7de0SSascha Wildner.El 112*3b7b7de0SSascha Wildner.Sh MULTICHANNEL PLAYBACK 113*3b7b7de0SSascha WildnerBy default the 114*3b7b7de0SSascha Wildner.Nm 115*3b7b7de0SSascha Wildnerdriver is loaded with multichannel playback capabilities enabled. 116*3b7b7de0SSascha WildnerIf you do not set the 117*3b7b7de0SSascha Wildner.Dv hint.emu10kx.0.multichannel_disabled 118*3b7b7de0SSascha Wildneroption in your 119*3b7b7de0SSascha Wildner.Xr loader.conf 5 120*3b7b7de0SSascha Wildnerconfiguration file you will get up to five DSP devices, one for each 121*3b7b7de0SSascha Wildnersound card output. 122*3b7b7de0SSascha WildnerYou can use additional software (like 123*3b7b7de0SSascha Wildner.Em audio/pulseaudio 124*3b7b7de0SSascha Wildnerfrom 125*3b7b7de0SSascha Wildner.Em The Ports Collection ) 126*3b7b7de0SSascha Wildnerto do sound stream demultiplexing. 127*3b7b7de0SSascha WildnerOnly 128*3b7b7de0SSascha Wildner.Dq FRONT 129*3b7b7de0SSascha Wildneroutput can play and record sound from external 130*3b7b7de0SSascha Wildnersources (like line or S/PDIF inputs). 131*3b7b7de0SSascha Wildner.Sh MULTICHANNEL RECORDING 132*3b7b7de0SSascha WildnerBy default multichannel recording capabilities are not enabled when you load 133*3b7b7de0SSascha Wildnerthe 134*3b7b7de0SSascha Wildner.Nm 135*3b7b7de0SSascha Wildnerdriver. 136*3b7b7de0SSascha WildnerIf you enable the 137*3b7b7de0SSascha Wildner.Dv hint.emu10kx.0.multichannel_recording 138*3b7b7de0SSascha Wildneroption in 139*3b7b7de0SSascha Wildner.Xr loader.conf 5 140*3b7b7de0SSascha Wildneryou will get one more DSP device that is rate-locked to 48kHz/16bit/mono. 141*3b7b7de0SSascha WildnerThis is actually 48kHz/16bit/32 channels on SB Live! cards and 142*3b7b7de0SSascha Wildner48kHz/16bit/64channels on Audigy cards, but the current implementation of 143*3b7b7de0SSascha Wildnerthe sound subsystem does not support such an amount of PCM channels. 144*3b7b7de0SSascha WildnerThis device can not be opened for read, thus confusing many applications. 145*3b7b7de0SSascha Wildner.Pp 146*3b7b7de0SSascha WildnerWithin a multichannel stream, the first half (0-15 or 0-31) is a copy of all DSP 147*3b7b7de0SSascha Wildneroutputs, the second half (15-30 or 32-63) is a copy of some DSP inputs. 148*3b7b7de0SSascha WildnerOn Live! cards the last substream (31) is used as a sync stream and is always 149*3b7b7de0SSascha Wildnerset to 0xc0de. 150*3b7b7de0SSascha WildnerAudigy cards do not need such sync data, because a stream always starts with 151*3b7b7de0SSascha Wildnersubstream 0. 152*3b7b7de0SSascha Wildner.Ss SB Live! substream map (in byte offsets, each substream is 2 bytes LE) 153*3b7b7de0SSascha Wildner.Bl -tag -width ".Dv +0x00..+0x1E" 154*3b7b7de0SSascha Wildner.It Dv Offset 155*3b7b7de0SSascha WildnerSubstream 156*3b7b7de0SSascha Wildner.It +0x00..+0x1E 157*3b7b7de0SSascha WildnerPCM streams 0..15 158*3b7b7de0SSascha Wildner.It +0x20, +0x22 159*3b7b7de0SSascha WildnerEmpty 160*3b7b7de0SSascha Wildner.It +0x24..+0x2A 161*3b7b7de0SSascha WildnerPCM inputs: front left, front right, rear left, rear right, center, sub 162*3b7b7de0SSascha Wildner.It +0x2C..+0x3C 163*3b7b7de0SSascha WildnerDSP inputs 0..8: 164*3b7b7de0SSascha Wildner.It +0x3E 165*3b7b7de0SSascha Wildnersync substream (0xc0de) 166*3b7b7de0SSascha Wildner.El 167*3b7b7de0SSascha Wildner.Ss Audigy substream map (in byte offsets, each substream is 2 bytes LE) 168*3b7b7de0SSascha Wildner.Bl -tag -width ".Dv +0x00..+0x3E" 169*3b7b7de0SSascha Wildner.It Dv Offset 170*3b7b7de0SSascha WildnerSubstream 171*3b7b7de0SSascha Wildner.It +0x00..+0x3E 172*3b7b7de0SSascha WildnerPCM streams 0..31 173*3b7b7de0SSascha Wildner.It +0x40..+0x5E 174*3b7b7de0SSascha WildnerPCM inputs: front LR, rear LR, center, sub, ... 175*3b7b7de0SSascha Wildner.It +0x60..+0x7E 176*3b7b7de0SSascha WildnerDSP inputs 0..16 177*3b7b7de0SSascha Wildner.El 178*3b7b7de0SSascha Wildner.Sh OSS MIXER CONTROLS 179*3b7b7de0SSascha WildnerThese are the controls available through the standard OSS programming interface. 180*3b7b7de0SSascha WildnerYou can use 181*3b7b7de0SSascha Wildner.Xr mixer 8 182*3b7b7de0SSascha Wildnerto change them. 183*3b7b7de0SSascha Wildner.Pp 184*3b7b7de0SSascha WildnerOn EMU10K1-based cards the OSS mixer directly controls the AC97 codec. 185*3b7b7de0SSascha WildnerOn newer cards the OSS mixer controls some parameters of the AC97 codec and 186*3b7b7de0SSascha Wildnersome DSP-based mixer controls. 187*3b7b7de0SSascha Wildner.Bl -inset 188*3b7b7de0SSascha Wildner.It Qq vol 189*3b7b7de0SSascha Wildnermixer control for the overall sound volume. 190*3b7b7de0SSascha Wildner.It Qq pcm 191*3b7b7de0SSascha Wildnermixer control for the PCM playback volume. 192*3b7b7de0SSascha WildnerIt controls only front output 193*3b7b7de0SSascha Wildnervolume in multichannel mode and all output volume in single channel mode. 194*3b7b7de0SSascha Wildner.It Qq rec 195*3b7b7de0SSascha Wildnermixer control acts very differently on EMU10K1 and other cards. 196*3b7b7de0SSascha WildnerOn EMU10K1 cards it controls the AC97 codec recording level. 197*3b7b7de0SSascha WildnerOn non-EMU10K1 cards it controls the amount of AC97 198*3b7b7de0SSascha Wildner.Dq stereo mix 199*3b7b7de0SSascha Wildner entering the DSP. 200*3b7b7de0SSascha WildnerAC97 recording level and AC97 recording source are fixed on CA0100, CA0101, 201*3b7b7de0SSascha WildnerCA0102 and CA0108 cards. 202*3b7b7de0SSascha WildnerThe AC97 recording levels are always set to maximum and recording source is always 203*3b7b7de0SSascha Wildner.Dq Li "stereo mix" . 204*3b7b7de0SSascha Wildner.It Qq dig1 205*3b7b7de0SSascha Wildneris a CD S/PDIF (on-card) volume control 206*3b7b7de0SSascha Wildner.It Qq dig2 207*3b7b7de0SSascha Wildneris an AudigyDrive S/PDIF (Audigy series) or TOSLink (SB Live! series) volume 208*3b7b7de0SSascha Wildnercontrol 209*3b7b7de0SSascha Wildner.It Qq dig3 210*3b7b7de0SSascha Wildneris an on-card S/PDIF volume control 211*3b7b7de0SSascha Wildner.It Qq line2 212*3b7b7de0SSascha Wildneris AudigyDrive "Line In 2" volume control 213*3b7b7de0SSascha Wildner.It Qq line3 214*3b7b7de0SSascha Wildneris AudigyDrive "AUX In 2" volume control 215*3b7b7de0SSascha Wildner.El 216*3b7b7de0SSascha Wildner.Pp 217*3b7b7de0SSascha WildnerOther OSS mixer controls control the inputs of the AC97 codec. 218*3b7b7de0SSascha Wildner.Sh PRIVATE DEVICE CONTROLS 219*3b7b7de0SSascha WildnerYou can control some of EMU10Kx's operation and configuration parameters through 220*3b7b7de0SSascha Wildner.Va dev.emu10kx. Ns Aq Ar X 221*3b7b7de0SSascha Wildnersysctls. 222*3b7b7de0SSascha WildnerThese 223*3b7b7de0SSascha Wildner.Xr sysctl 8 224*3b7b7de0SSascha Wildnervalues are temporary and should not be relied upon. 225*3b7b7de0SSascha Wildner.Sh DRIVER CONFIGURATION 226*3b7b7de0SSascha WildnerLoader tunables are used to set driver configuration. 227*3b7b7de0SSascha WildnerTunables can be set at the 228*3b7b7de0SSascha Wildner.Xr loader 8 229*3b7b7de0SSascha Wildnerprompt before booting the kernel or they can be stored in 230*3b7b7de0SSascha Wildner.Pa /boot/loader.conf . 231*3b7b7de0SSascha WildnerThese tunables cannot be changed from a machine 232*3b7b7de0SSascha Wildner.Xr sysctl 8 233*3b7b7de0SSascha Wildnerentry after boot, but you can change them using 234*3b7b7de0SSascha Wildner.Xr kenv 1 235*3b7b7de0SSascha Wildnerbefore loading the 236*3b7b7de0SSascha Wildner.Nm 237*3b7b7de0SSascha Wildnerdriver. 238*3b7b7de0SSascha Wildner.Bl -tag -width indent 239*3b7b7de0SSascha Wildner.It Va hint.emu10kx. Ns Ao Ar X Ac Ns Va .disabled 240*3b7b7de0SSascha WildnerDisables loading a driver instance. 241*3b7b7de0SSascha Wildner.It Va hint.emu10kx. Ns Ao Ar X Ac Ns Va .multichannel_disabled 242*3b7b7de0SSascha WildnerDisables multichannel playback support, when one card is represented as 243*3b7b7de0SSascha Wildnerseveral PCM devices. 244*3b7b7de0SSascha Wildner.It Va hint.emu10kx. Ns Ao Ar X Ac Ns Va .multichannel_recording 245*3b7b7de0SSascha WildnerEnables experimental multichannel recording support. 246*3b7b7de0SSascha Wildner.It Va hint.emu10kx. Ns Ao Ar X Ac Ns Va .debug 247*3b7b7de0SSascha WildnerSet debug output level. 248*3b7b7de0SSascha Wildner.Bl -tag -width 2n 249*3b7b7de0SSascha Wildner.It 0 250*3b7b7de0SSascha WildnerNo additional debug options enabled 251*3b7b7de0SSascha Wildner.It 1 252*3b7b7de0SSascha WildnerEnables all DSP outputs to be connected, even those 253*3b7b7de0SSascha Wildnerthat are known to be unused on a particular card. 254*3b7b7de0SSascha Wildner.It 2 255*3b7b7de0SSascha WildnerAdditional debug messages about in-driver events will be printed. 256*3b7b7de0SSascha Wildner.It 2 257*3b7b7de0SSascha WildnerAdditional debug messages will be printed when memory allocation fails. 258*3b7b7de0SSascha Wildner.El 259*3b7b7de0SSascha Wildner.El 260*3b7b7de0SSascha Wildner.Sh FILES 261*3b7b7de0SSascha Wildner.Bl -tag -width ".Pa /dev/emu10kx?" -compact 262*3b7b7de0SSascha Wildner.It Pa /dev/emu10kx? 263*3b7b7de0SSascha Wildner.Nm 264*3b7b7de0SSascha Wildnermanagement interface 265*3b7b7de0SSascha Wildner.El 266*3b7b7de0SSascha Wildner.Sh SEE ALSO 267*3b7b7de0SSascha Wildner.Xr sound 4 268*3b7b7de0SSascha Wildner.Sh HISTORY 269*3b7b7de0SSascha WildnerThe 270*3b7b7de0SSascha Wildner.Nm 271*3b7b7de0SSascha Wildnerdevice driver first appeared in 272*3b7b7de0SSascha Wildner.Fx 7.0 . 273*3b7b7de0SSascha Wildner.Sh AUTHORS 274*3b7b7de0SSascha Wildner.An -nosplit 275*3b7b7de0SSascha WildnerThe PCM part of the driver is based on the 276*3b7b7de0SSascha Wildner.Xr snd_emu10k1 4 277*3b7b7de0SSascha WildnerSB Live!\& driver by 278*3b7b7de0SSascha Wildner.An Cameron Grant Aq Mt cg@FreeBSD.org . 279*3b7b7de0SSascha WildnerThe MIDI interface is based on the 280*3b7b7de0SSascha Wildner.Xr snd_emu10k1 4 281*3b7b7de0SSascha WildnerMIDI interface code by 282*3b7b7de0SSascha Wildner.An Mathew Kanner Aq Mt matk@FreeBSD.org . 283*3b7b7de0SSascha WildnerThe 284*3b7b7de0SSascha Wildner.Nm 285*3b7b7de0SSascha Wildnerdevice driver and this manual page were written by 286*3b7b7de0SSascha Wildner.An Yuriy Tsibizov . 287*3b7b7de0SSascha Wildner.Sh BUGS 288*3b7b7de0SSascha WildnerThe driver does not detect lost S/PDIF signals and produces noise when 289*3b7b7de0SSascha WildnerS/PDIF is not connected and S/PDIF volume is not zero. 290*3b7b7de0SSascha Wildner.Pp 291*3b7b7de0SSascha WildnerThe PCM driver cannot detect the presence of Live!Drive or AudigyDrive 292*3b7b7de0SSascha Wildnerbreakout boxes and tries to use them (and list their connectors in the 293*3b7b7de0SSascha Wildnermixer). 294*3b7b7de0SSascha Wildner.Pp 295*3b7b7de0SSascha WildnerThe MIDI driver cannot detect the presence of Live!Drive or AudigyDrive 296*3b7b7de0SSascha Wildnerbreakout boxes and tries to enable the IR receiver on them anyway. 297