# Sound mixing

## spijon

Установлена ALSA, но одновременно только одна программа может выводить звук. Как бы это изменить?

Карточка : snd-ac97-codec [snd-intel8x0]

----------

## Zoltan

Я вот сегодня добился полноценной работы альсы через dmix (вообще про это дофига написано, но везде по-разному, так что я как и все пошлю что есть у меня, как раз для snd-intel8x0).

Вообщем так. Сначала ставится файл /etc/asound.conf (можно для отдельного юзера ~/.asoundrc):

```
pcm.!default {

    type plug

    slave.pcm "dmixer"

}

pcm.dsp0 {

    type plug

    slave.pcm "dmixer"

}

pcm.dmixer  {

    type dmix

    ipc_key 1024

    slave {

        pcm "hw:0,0"

        period_time 0

        period_size 1024

        buffer_size 8192

        periods 128

        rate 44100

    }

    bindings {

        0 0

        1 1

    }

}

ctl.mixer0 {

    type hw

    card 0

}
```

Значения period_size, buffer_size и rate это некие магические значения для mplayer, без них или с другими значениями он отказывается работать, не очень понятно почему.

В /etc/mplayer.conf (или для отдельного юзера ~/.mplayer/config) ao=alsa9:default.

Для xmms - установить вывод на ALSA, аудиоустройство написать default, в допольнительных настройках отключить (!) mmap.

Для licq, поставить в настройках программу проигрывания aplay.

Для всех KDE-шных программ, которые играют только через arts:Поставить alsa-oss.

Переименовать /usr/kde/3.1/bin/artsd в /usr/kde/3.1/bin/artsd.orig.

В файле /usr/kde/3.1/bin/artsd написать

```
#!/bin/sh

aoss artsd.orig $*

```

 и сделать его исполнемым (!).

В настройках arts в контрольном центре KDE выбрать звуковую систему Threaded OSS (!), с другими работать не будет.

Для esd надо что-то сделать, написано тут в конце только я не пробовал, я esd не пользуюсь.

Еще для всех SDL программ советуют поставить

```
SDL_AUDIODRIVER=alsa

AUDIODEV=default
```

 так что я эти строчки положил в новый файл /etc/env.d/99sdl.

Все старые OSS программы запускать через aoss <program>.

----------

## spijon

Действительно, теперь микширование работает!!! Но mplayer не запускается, и xmms когда заканчивает песню останавливается в конце и не переходит на следующую, пока в ручную не переключить  :Sad: 

----------

## padonak

я алсу не юзаю - встроеная звуковуха и на oss-дровах намана пашет... поставил esd, скомпилировал mplayer и xmms с его поддержкой... в качестве программы проигрывания для прог типа licq и psi юзаю esdplay

всё играет вместе на ура.

----------

## spijon

 *padonak wrote:*   

> я алсу не юзаю - встроеная звуковуха и на oss-дровах намана пашет... поставил esd, скомпилировал mplayer и xmms с его поддержкой... в качестве программы проигрывания для прог типа licq и psi юзаю esdplay
> 
> всё играет вместе на ура.

 

Я не совсем понимаю, но допустим у меня бы было ядро 2.6, то там OSS вообще нет, только ALSA.

Проблема с многопотоковым звуком: когда xmms заканчивает песню, на самой последней секунде он останавливается и не переключается на следующую пока сам не нажмёшь кнопку "next". Mplayer перестал вообще работать.

Без dmix этих глюкoв нет.

Вот что написано в /etc/asound.conf:

```
pcm.!default {

    type plug

    slave.pcm "dmixer"

}

 

pcm.dsp0 {

    type plug

    slave.pcm "dmixer"

}

 

pcm.dmixer  {

    type dmix

    ipc_key 1024

    slave {

        pcm "hw:0,0"

        period_time 0

        period_size 4096

        buffer_size 8192

        periods 128

        rate 44100

    }

    bindings {

        0 0

        1 1

    }

}

 

ctl.mixer0 {

    type hw

    card 0

}
```

----------

## Zoltan

Mplayer какой версии?

Про esd padonak написал правильно, можно через звуковой сервер все микшировать, так же как и через arts, но мне не нравятся задержки в воспроизведении через звуковые сервера, а jack (который тоже sound-server, но специально написан чтобы задержек не было) пока что мало программ поддекживает, и все KDEшные программы играют только через arts.

----------

## padonak

это чё, правда чтоли oss из 2.6 убрали? блин, а я вродь вот собирал mm- и gentoo-dev- и всё там было... %))

нащёт задержек - не заметил такого... если можно, поподробней про это явление...

----------

## Zoltan

 *padonak wrote:*   

> это чё, правда чтоли oss из 2.6 убрали? блин, а я вродь вот собирал mm- и gentoo-dev- и всё там было... %))

 

Есть пока OSS в 2.6, только помечено как deprecated, так что могут убрать в любой момент. Я если честно не понимаю почему люди продолжают держаться за OSS драйвера.

 *padonak wrote:*   

> нащёт задержек - не заметил такого... если можно, поподробней про это явление...

 

Задержки возникают потому что любой звуковой сервер имеет буфер ввода, как правило значительного размера, от любого процесса, который хочет воспроизводить звук. Из-за того что есть буфер, аудио запаздывает. Это легко заметить при воспроизведении фильмов, при паузе фильма видео останавливается сразу, аудио играет еще какие-то доли секунды (пишу про мой опыт с arts, esd не пробовал). То же самое при остановке музыки в музыкальном плэере.

----------

## padonak

щас посмотрел - действительно есть задержка, но она так мала, что её можно заметить только специально прислушиваясь %)

за осс не держусь, просто меня они пока устраивают, тк для моей звуковухи и калонок драйвера не кртитичны %)

----------

## Zoltan

 *padonak wrote:*   

> щас посмотрел - действительно есть задержка, но она так мала, что её можно заметить только специально прислушиваясь %)

 

Я про это знаю, поэтому и замечаю.

 *padonak wrote:*   

> за осс не держусь, просто меня они пока устраивают, тк для моей звуковухи и калонок (выделено мной - Zoltan) драйвера не кртитичны %)

 

Видать такие колонки что ты их таким словом назвал  :Laughing: 

Кстати какая у тебя звуковуха? А то может альса на ней hardware mixing поддерживает, а ты и не знаешь.

----------

## padonak

у меня их две: es1371 (встроеная) и cs4281

----------

