Разделение каналов 7.1 карты на четверых пользователей

Вопросы связанные с первоначальной установкой и настройкой системы 3D Multiseat

Разделение каналов 7.1 карты на четверых пользователей

Сообщение darion » Вс фев 08, 2009 12:24 pm

В последнее время меня часто спрашивают как выполнить сабж. Во-первых прошу писать не на емайл, а сюда на форум. Во-вторых сделать это достаточно просто. Ничего нестандартного здесь нет. Например для материнской платы описаной в статье 3D Multiseat действия сводятся к следующему. Необходимо создать файл .asoundrc в каталоге пользователя. В него включаем следующие данные :
Код: Выделить всё
pcm.alc883 {
    type dmix
    ipc_key 2048
    slave {
        pcm "hw:0"
        rate 44100
        period_time 0
        period_size 1024
        channels 8
    }
    bindings {
        0 0
        1 1
        2 2
        3 3
        4 4
        5 5
        6 6
        7 7
    }
}
# green - "Front" in Alsa mixer
pcm.green {
    type plug
    slave {
        pcm "alc883"
        channels 8
    }
    ttable.0.0 1
    ttable.1.1 1
}
# gray - "Surround" in Alsa mixer
pcm.gray {
    type plug
    slave {
        pcm "alc883"
        channels 8
    }
    ttable.0.2 1
    ttable.1.3 1
}
# yelow - "Center" in Alsa mixer (mono?)
pcm.yelow {
    type plug
    slave {
        pcm "alc883"
        channels 8
    }
    ttable.0.4 1
    ttable.1.5 1
}
# black - Side in alsa mixer
pcm.black {
    type plug
    slave {
        pcm "alc883"
        channels 8
    }
    ttable.0.6 1
    ttable.1.7 1
}

pcm.!default {
    type plug
    slave {
        pcm "gray"
        channels 8
    }
}


Я записал выхода по цветам чтобы легче было подключать пользователей. Теперь внизу видите секцию с названием default - какой цвет пропишите, к такому выходу подключайте, в миксере указанные ползунки перемещайте и будет у вас звук. С другого места - тоже самое, только цвет в секции default ставьте другой.
Вообще говоря нужно сделать генерацию подобного файла при логине пользователя (с помощью .bashrc) это делается очень просто с использованием регулярных выражений. Скрипт должен учитывать содержимое переменной окружения DISPLAY и согласно расположения ваших ситов генерировать кому какой вывод. Не забудьте скопировать файл генерирущий .asoundrc в /etc/skel. Иначе придется каждый раз его копировать при добавлении нового пользователя.
К сожалению четвертому пользователю (которому достанется желтый выход) придется довольствоваться моно звуком. Возможно аппаратное ограничение или нужно перенастроить alsa. У трех остальных будет обычный стерео звук. Никакие программы перенастраивать не придется. Я проверил mplayer, totem и конечно же wine. Главное чтобы программа выводила звук через alsa.
darion
Site Admin
 
Сообщения: 134
Зарегистрирован: Ср июл 16, 2008 4:05 pm

Re: Разделение каналов 7.1 карты на четверых пользователей

Сообщение darion » Пт фев 13, 2009 4:45 pm

В версиях wine-1.1.12, 1.1.13, 1.1.14, 1.1.15, а также наверное в последующих добавлены изменения, которые не могут обеспечить работу разделения звука с параметром period_size = 1024.
Выдается следующая ошибка
Код: Выделить всё
err:dsound:DSOUND_MixOne Fatal error. Under/Overflow? primary_done=12160, mixpos=172032/172716 (85678/86018), primary_mixpos=1584, writepos=1712, mixlen=8192


В этом случае следует уменьшить значение до 512 или даже до 256.
Последний раз редактировалось darion Вс фев 15, 2009 5:44 pm, всего редактировалось 1 раз.
darion
Site Admin
 
Сообщения: 134
Зарегистрирован: Ср июл 16, 2008 4:05 pm


Вернуться в Первоначальная установка и настройка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron