Howto: Happy ALSA, OSS, ESD, with Duplex - Sound Settings(摘)

Wine、Cedega、CrossOver 等配置
回复
3959512
帖子: 64
注册时间: 2008-08-21 12:25
来自: 上海
联系:

Howto: Happy ALSA, OSS, ESD, with Duplex - Sound Settings(摘)

#1

帖子 3959512 » 2008-09-26 18:34

还没有试过,自存,有机会试试, 自觉也是一个方法。

I know it's been done before, but I don't think anybody has compiled all the settings into a single happy set of instructions.

This setup should work with most sound systems, it is from my Nforce2 setup at home, it makes everything work quite nicely together, OSS, ESD, ALSA and make your Mic work while sound is playing (great for UT2004!!).

These instructions assume you know how to edit config files on your system and add/remove packages on your own.

1. Goto System->Preferences->Sound and disable "Enable Sound Server Startup"
2. Install libesd-alsa0 which will remove libesd0, but that's ok.
3. Make /etc/esound/esd.conf look like this:
Code:

[esd]
auto_spawn=1
spawn_options=-terminate -nobeeps -as 2 -d default
spawn_wait_ms=100
# default options are used in spawned and non-spawned mode
default_options=

4.Make /etc/asound.conf look like this:
Code:

# Set default sound card
# Useful so that all settings can be changed to a different card here.
pcm.snd_card {
type hw
card 0
}

# Allow mixing of multiple output streams to this device
pcm.dmixer {
type dmix
ipc_key 1024
slave.pcm "snd_card"
slave {
# This stuff provides some fixes for latency issues.
# buffer_size should be set for your audio chipset.
period_time 0
period_size 1024
buffer_size 4096
# rate 44100
}

bindings {
0 0
1 1
}
}

# Allow reading from the default device.
# Also known as record or capture.
pcm.dsnooper {
type dsnoop
ipc_key 2048
slave.pcm "snd_card"

bindings {
0 0
1 1
}
}

# This is what we want as our default device
# a fully duplex (read/write) audio device.
pcm.duplex {
type asym
playback.pcm "dmixer"
capture.pcm "dsnooper"
}

###################
# CONVERSION PLUG #
###################
# Setting the default pcm device allows the conversion
# rate to be selected on the fly.
# duplex mode allows any alsa enabled app to read/write
# to the dmix plug (Fixes a problem with wine).

pcm.!default {
type asym
playback.pcm "dmixer"
capture.pcm "dsnooper"
}

########
# AOSS #
########
# OSS dsp0 device (OSS needs only output support, duplex will break some stuff)
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}

# OSS control for dsp0 (needed?...this might not be useful)
ctl.dsp0 {
type plug
slave.pcm "snd_card"
}

# OSS control for dsp0 (default old OSS is mixer0)
ctl.mixer0 {
type plug
slave.pcm "snd_card"
}


If you look, the first setting will let you select a different sound card as your primary if you have multiple sound cards.

5.Make /etc/libao.conf look like this:
Code:
default_driver=alsa

6. Reboot to make sure all the systems startup correctly.

OSS stuff will still tie up the sound card, but they don't run all the time. Just configure most things to use ALSA and you'll be good.

Side-Effect: The Ubuntu startup sounds will go away, but i think the trade-off is worth it.

Note: If stuff plays a little static through ESD, in /etc/esound/esd.conf try changing
spawn_options=-terminate -nobeeps -as 2 -d default
to
spawn_options=-terminate -nobeeps -as 2 -d duplex
回复