суббота, 19 июня 2010 г.

Есть ли жизнь без Рulse...

Последние версии Ubuntu (9.10, 10.04) явно каким то своим хитрым курсом пошли. Я очень не люблю, когда мне навязывают, то что мне не нравиться, и не оставляют свободы выбора. Меня всем устраивает ALSA, а от Pulseaudio одни неприятности выходят.Если вы являетесь пользователем Ubuntu и вас устраивает Pulseaudio, то ни в коем случае ни читайте дальше=)
Снести Рulseaudio не трудно, но вот беда, вместе с ним пропадает из системы какой либо контроль звука.

1. прибиваем и удаляем

sudo apt-get remove pulseaudio gstreamer0.10-pulseaudio
killall pulseaudio

Дополнительно:
если в системе присутствуют игры на основе sdl, установлен пакет libsdl1.2debian-pulseaudio, то еще необходимо сделать:

sudo apt-get install libsdl1.2debian-all

Для программ, использующих OpenAL, неплохо бы твикнуть настройку

sudo nano /etc/openal/alsoft.conf

далее ищем строку:

#drivers = alsa,oss,solaris,dsound,winmm,port,pulse,wave

в целях бекапа ее можно не изменять, а следующей строкой просто написать:

drivers = alsa

2. убираем мусор из гномовской сессии:

gnome-session-properties

в открывшемся окне ищем и снимаем галку с gnome-volume-control-applet - он все равно ничего не может, кроме как жаловаться на отсутствие pulseaudio

3. обновляемся из этого PPA: https://launchpad.net/~dtl131/+archive/ppa - восстанавливает микшер, апплет, управление с клавиатуры.

4. добавляем на панель регулятор громкости.

5. приводим в порядок gconf:

gconftool-2 -s --type string /desktop/gnome/sound/default_mixer_device "alsamixer"
gconftool-2 -s --type list --list-type string /desktop/gnome/sound/default_mixer_tracks "[Master]"
gconftool-2 -s --type boolean /desktop/gnome/sound/enable_esd false
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosrc "alsasrc"
gconftool-2 -s --type string /system/gstreamer/0.10/default/chataudiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/musicaudiosink "alsasink"

6. теперь осталось только перезапустить gnome-settings-daemon, лучше это делать не из терминала, а из диалога запуска alt+F2 или другого командного лончера.

killall gnome-settings-daemon && sleep 2s && gnome-settings-daemon


Далее самое главное. Открываем файл .asoundrc находящийся в папке вашего пользователя. Если его нет - создаём. Строчку в "углвых скобках" <> не трогаем, всё остальное удаляем (хотя там ничего не должно быть) и вписываем

# 2009-08-21

#

#
This .asoundrc will allow the following:

#

# -
upmix stereo files to 5.1 speakers.

# -
playback real 5.1 sounds, on 5.1 speakers,

# -
allow the playback of both stere(oupmixed) and surround(5.1) sources at the same time.

# -
use the 6th and 7th channel (side speakers) as a separate soundcard, i.e. for headphones

# (
This is called the "alternate" output throughout the file, device names prefixed with 'a')

# -
play mono sources in stereo (like skype & ekiga) on the alterate output

#

#

#
Please try the following commands, to make sure everything is working as it should.

#

#
To test stereo upmix : speaker-test -c2 -Ddefault -twav

#
To test surround(5.1): speaker-test -c6 -Dplug:dmix6 -twav

#
To test alternative output: speaker-test -c2 -Daduplex -twav

#
To test mono upmix: speaker-test -c1 -Dmonoduplex -twav

#





#
Define the soundcard to use

pcm.snd_card {

type hw

card 0

device 0

}



# 8
channel dmix - output whatever audio, to all 8 speakers

pcm.dmix8 {

type dmix

ipc_key 1024

ipc_key_add_uid false

ipc_perm 0660

slave {

pcm "snd_card"

rate 48000
#
звуковуха поддерживает до 192 кГц, но в Линуксе не удалось завести больше чем 96 кГц.
# но даже 96 сейчас нигде нету. зато 48 кГц
используется во всех DVD-филмах.

channels 8

period_time 0

period_size 1024
# не трогать. некоторые приложения не смогут работать

buffer_time 0

buffer_size 8192
# от заикания звука. здесь стояло 5120

}



#
It routes the audio to t he correct speakers.
# тут хитрость. в
windows для вывода 5.1 задние колонки подключаются в разъём боковых,
# данный
роутинг сделан для дуал бута, чтоб не перетыкать задние колонки.

bindings {

0 0

1 1

2 6

3 7

4 4

5 5

6 2

7 3
}
}


#
upmixing - duplicate stereo data to all 6 channels

pcm.ch51dup {

type route

slave.pcm dmix8

slave.channels 8

ttable.0.0 1

ttable.1.1 1

ttable.0.2 1

ttable.1.3 1

ttable.0.4 0.5

ttable.1.4 0.5

ttable.0.5 0.5

ttable.1.5 0.5

}



#
this creates a six channel soundcard

#
and outputs to the eight channel one

# i.e.
for usage in mplayer I had to define in ~/.mplayer/config:

#
ao=alsa:device=dmix6

#
channels=6

pcm.dmix6 {

type route

slave.pcm dmix8

slave.channels 8

ttable.0.0 1

ttable.1.1 1

ttable.2.2 1

ttable.3.3 1

ttable.4.4 1

ttable.5.5 1

}



#
share the microphone, i.e. because virtualbox grabs it by default

pcm.microphone {

type dsnoop

ipc_key 1027

slave {

pcm "snd_card"

period_time 0

period_size 1024


}

}



#
rate conversion, needed i.e. for wine

pcm.2chplug {

type plug

slave.pcm "ch51dup"

}

pcm.a2chplug {

type plug

slave.pcm "dmix8"

}



#
routes the channel for the alternative

# 2
channel output, which becomes the 7th and 8th channel

#
on the real soundcard

pcm.alt2ch {

type route

slave.pcm "a2chplug"

slave.channels 8

ttable.0.6 1

ttable.1.7 1

}



#
skype and ekiga are only mono, so route left channel to the right channel

#
note: this gets routed to the alternative 2 channels

pcm.mono_playback {

type route

slave.pcm "a2chplug"

slave.channels 8

#
Send Skype channel 0 to the L and R speakers at full volume

ttable.0.6 1

ttable.0.7 1

}



# '
full-duplex' device for use with aoss

pcm.duplex {

type asym

playback.pcm "2chplug"

capture.pcm "microphone"

}



pcm.aduplex {

type asym

playback.pcm "alt2ch"

capture.pcm "microphone"

}



pcm.monoduplex {

type asym

playback.pcm "mono_playback"

capture.pcm "microphone"

}






#
for aoss

pcm.dsp0 "duplex"

ctl.mixer0 "duplex"



#
softvol manages volume in alsa

# i.e.
wine likes this

pcm.mainvol {

type softvol

slave.pcm "duplex"

control {

name "2ch-Upmix Master"

card 0

}

}


pcm.!surround51 dmix6
# вот оно!!! здесь вместо стандартного
surround51
#
используется dmix6 который использует софтовое микширование

#
pcm.!surround71 dmix8
# наверное это тоже нужно, но так как у меня нету 8ми канальной системы
# то не уверен







#
pcm.!default "mainvol"



#
set the default device according to the environment

#
variable ALSA_DEFAULT_PCM and default to mainvol

pcm.!default {

@
func refer

name { @func concat

strings [ "pcm."

{ @func
getenv

vars [ ALSA_DEFAULT_PCM ]

default "mainvol"

}

]

}

}

Сохраняем файл. Хотелось бы сразу заметить, что фаил отредактирован под конкретную звуковую карту - ASUS XONAR D2. Перезагружаемся. Заходим в микшер - параметры. Ставим галочку напротив 2ch-Upmix Master.

Всё! Всё везде работает!

Данные материалы взяты с форума ubuntu.ru
Написал больше для себя, чтоб не забыть, но может кому ещё пригодиться.

Комментариев нет:

Отправить комментарий