Hi.
I have some problems with configuring ALSA and the available
documentation could not help me,.. at leas I didn't understand it well
enough... ;-)
First of all my current situation:
I'm using Debian unstable on the amd64 port. My kernel is 2.6.17 (from
the Debian package) which includes ALSA 1.0.11rc4. The version of
libasound2 is 1.0.11.
I have the following ALSA devices:
0: onboard soundchip via snd-intel-8x0
1: TerraTec Aureon 7.1 Universe via snd-ice1724
2: Logitech Webcam via usb-audio
All the device drivers are compiled static into the kernel (not as
module), and I'd prefer not to change that.
Currently I do not have any /etc/asound.conf or ~/.asound.rc. As far as
possible I'd like to avoid using it but rather prefer as much
autodetection of my settings as possible ;-) .
In general I'd like to use all of these devices (ok the Webcam only
contains a microphone which is not so important)... .
I use sound at about the following things: all GNOME stuff (thus esd and
gstreamer) and xine, mplayer and some other applications which I want
to use alsa directly and not (if even available) their plugins for esd.
Per default every of those applications should use the Aureon 7.1 as its
default card but when I want to use the onboard stuff I'd like to have
to specify this.
What I did was adding the following options to my kernel command line:
snd-ice1724.index=0 snd-intel8x0.index=1
Thus the order of my devices change to
0: TerraTec Aureon 7.1 Universe via snd-ice1724
1: onboard soundchip via snd-intel-8x0
2: Logitech Webcam via usb-audio
(I) Is this the default or best-style way to change the default-card or
is there some other way, e.g. via asound.conf or something else which I
should prefer?
(II) /proc/asound/cards shows me the following:
0 [default ]: Aureon71Universe -
at 0x3880, irq 74
1 [CK804 ]: NFORCE - NVidia CK804
NVidia CK804 with AD1981B at 0xb0002000, irq 217
2 [U0x46d0x8b2 ]: USB-Audio - USB Device 0x46d:0x8b2
USB Device 0x46d:0x8b2 at usb-0000:00:02.0-3, full
speed
I do not use any snd-ice1724.model=universal option but even if I set it
(as far as I could see universal is for the Aureon 7.1 Universal?!) I
get the same output with the difference that dmesg shows me a line a la
"ice-1724: Aureon7.1 Universe used as model".
Does this now mean that the card is not correctly identified? As no
names are found (see ***) and the string is set to "default":
0 [default ]: Aureon71Universe - ***
*** at 0x3880, irq 74
I also don't get a name in mixers like alsamixer or gnome-volume-control
which seem to depend on this problem (II).
(III) Ok, as far as I understand (and please correct me if I'm wrong)
when an application plays sound via ALSA and thus via libasound2 it
looks in the following way for configuration:
1) some stuff in /usr/share/alsa/alsa.conf (but I don't understand how
this works)
2) if existing a /etc/asound.conf
3) if existing a ~/.asound.rc
Right?
Each of this files should corretly configure my 2 cards so that I can
use both of them and e.g. nice features like mmap or the surround sound
of the Aureon 7,1.
(IV) In /usr/share/alsa/alsa.conf are a lot of other config files (also
one named aureon71). Is it correct that ALSA/libasound2 should
automatically use those files and get the settings for my 2 cards from
them without the need for a asound.conf or .asound.rc? (As told before
I'd prefer to avoid setting up complex config files myself ;) )
With all settings I need for the different levels of surrond sound (4.0
5.1 7.1 and so on) and settings like format s32LE as required by the
Aureon 7.1?
And does it configure dmix on both cards corretcly so that I can play
sounds through esd and concurrently through alsa? And would it enable
mmap if the card is able to do this?
(V) With my current kernel command line GNOME/esd already
(automatically) uses the Aureon 7.1 but how do I specify the card in
other applications?
As far as I understood there are a kind of profiles that I can use to do
so. like hw=0.0 or so... but also things like surround71 and so... right?
An aplay -L shows this:
PCM list:
hw {
@args.0 CARD
@args.1 DEV
@args.2 SUBDEV
@args.CARD {
type string
default {
@func getenv
vars {
0 ALSA_PCM_CARD
1 ALSA_CARD
}
default {
@func refer
name 'defaults.pcm.card'
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars {
0 ALSA_PCM_DEVICE
}
default {
@func refer
name 'defaults.pcm.device'
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name 'defaults.pcm.subdevice'
}
}
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
plughw {
@args.0 CARD
@args.1 DEV
@args.2 SUBDEV
@args.CARD {
type string
default {
@func getenv
vars {
0 ALSA_PCM_CARD
1 ALSA_CARD
}
default {
@func refer
name 'defaults.pcm.card'
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars {
0 ALSA_PCM_DEVICE
}
default {
@func refer
name 'defaults.pcm.device'
}
}
}
@args.SUBDEV {
type integer
default {
@func refer
name 'defaults.pcm.subdevice'
}
}
type plug
slave.pcm {
type hw
card $CARD
device $DEV
subdevice $SUBDEV
}
}
plug {
@args.0 SLAVE
@args.SLAVE {
type string
}
type plug
slave.pcm $SLAVE
}
shm {
@args.0 SOCKET
@args.1 PCM
@args.SOCKET {
type string
}
@args.PCM {
type string
}
type shm
server $SOCKET
pcm $PCM
}
tee {
@args.0 SLAVE
@args.1 FILE
@args.2 FORMAT
@args.SLAVE {
type string
}
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm $SLAVE
file $FILE
format $FORMAT
}
file {
@args.0 FILE
@args.1 FORMAT
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm null
file $FILE
format $FORMAT
}
null {
type null
}
cards 'cards.pcm'
front 'cards.pcm.front'
rear 'cards.pcm.rear'
center_lfe 'cards.pcm.center_lfe'
side 'cards.pcm.side'
surround40 'cards.pcm.surround40'
surround41 'cards.pcm.surround41'
surround50 'cards.pcm.surround50'
surround51 'cards.pcm.surround51'
surround71 'cards.pcm.surround71'
iec958 'cards.pcm.iec958'
spdif 'cards.pcm.iec958'
modem 'cards.pcm.modem'
phoneline 'cards.pcm.phoneline'
default 'cards.pcm.default'
dmix 'cards.pcm.dmix'
dsnoop 'cards.pcm.dsnoop'
As far as I understood I could use all the profiles like spdif, side,
sourround40 or cards.pcm.surround40... right?
But how do I specify for which card the profile is? Or are all of those
listed only for the Aureon 7.1? And are all of them correctly configured
for my cards?
Ok,.. I think GNOME/esd uses per default hw=0 as device,.. right? How do
I tell them to use surrond sound e.g. surround71?
Same question for xine and mplayer,... I tried to specify it in the
config file but it never worked.
It also didn't work with something like
$ aplay -D surround50 test.wav
ALSA lib confmisc.c:1105:(snd_func_refer) Unable to find definition
'cards.Aureon71Univers.pcm.surround51.0:CARD=0'
ALSA lib conf.c:3479:(_snd_config_evaluate) function snd_func_refer
returned error: No such file or directory
ALSA lib conf.c:3947:(snd_config_expand) Evaluate error: No such file or
directory
ALSA lib pcm.c:2146:(snd_pcm_open_noupdate) Unknown PCM surround50
aplay: main:547: audio open error: No such file or directory
$
or
$ aplay -D surround71 receive.wav
ALSA lib pcm.c:2017:(snd_pcm_open_conf) Invalid type for PCM surround71
definition (id: surround71, value: cards.pcm.surround71)
aplay: main:547: audio open error: Invalid argument
$
(VI) Ok,.. in xine I have seen that I can specify different of these
profiles for different sound types e.g. for stereo sound use default or
for AC3 use surround51 or so (however I have not yet managed to bring
this to work).
What I would like to have is the following:
In both myplayer/xine surround sound should use the correct surround
profile (probably some kind of surround71 or so) and stero sound should
use a profile (is this possible at all and if so how?) that simply plays
the two stereo channels on all boxes (front left, front right, side
left, side right, back left, back right,.. perhaps not center and lfe?!)
But when GNOME plays sounds (like somebody calls me with VoIP or an
eMail arrives) only the front boxes should be used for playback =)
(VII) The onboard soundchip using snd-intel-8x0 still has the problem
that when I move the slider Master in the mixer that nothing happens,..
but the Headphones silder behave like master.
Ok,.. so much for now ;) .... in advance... lots of thanks :D
Best wishes,
Chris.
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user