Como posso acessar canais adicionais na minha placa de som através do PulseAudio sem kludges?

3

O Pulseaudio FAQ mostra como carregar explicitamente um módulo coletor ALSA com um canal mapa. Isso funciona, mas também envolve a desativação dos módulos de autodetecção do dispositivo, o que não quero fazer.

Há, nas configurações de "som", uma opção "modo" para cada dispositivo de saída que aparece para configurar o mapa de canais que o PulseAudio usa para esse dispositivo. Possui opções como "Analog Stereo Output" e "Analog Surround 5.1 Output". Esse parece ser o caminho a percorrer se o objetivo for não quebrar a configuração padrão, que, na maior parte, funciona muito bem.

A questão é que meus alto-falantes são apenas estéreo, mas eu ainda tenho mais 6 saídas que gostaria de usar de alguma forma. Eu suponho que eles poderiam ser expostos como pias adicionais. Ou, se eu puder obter esses canais adicionais expostos como "aux0, aux1, ...", eu posso usar module-remap-sink para fazê-los aparecer como coletores adicionais.

Eu também tenho oito entradas analógicas e duas entradas digitais, e nenhuma configuração de "modo" parece expor todas elas.

Então a questão é: onde estão esses "modos" configurados? Ou existem outras boas soluções para este problema?

    
por Phil Frost 22.04.2013 / 11:47

1 resposta

1

Os exemplos aqui me ajudaram:

link

Acabei com o seguinte em ~/.config/pulse/default.pa :

# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right   channel_map=front-left,front-right sink_properties=device.description=Speakers

# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"

# this renames the virtual streams, which show up in KMix.  It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"

Substitua os nomes dos seus dispositivos ( master=... ) conforme necessário.

OBSERVAÇÃO: você deve primeiro copiar /etc/pulse/default.pa para ~/.config/pulse/default.pa e depois editá-lo, porque o pulseaudio não lê o arquivo do sistema se o arquivo do usuário existir. Daí em diante você deve mesclar quaisquer alterações do arquivo de todo o sistema para o seu arquivo pessoal. Alternativamente, você poderia apenas editar o arquivo de todo o sistema, mas ele poderia ser substituído por atualizações, o que jogaria todo o seu trabalho fora! (Ou talvez o dpkg lhe pedisse para mesclá-los manualmente, mas e se você não notasse? (Insira a recomendação para etckeeper aqui.))

Existe também um exemplo aqui:

link

Mas ele usa os canais auxiliares, o que é mais confuso. Usar remix=no torna isso desnecessário.

Agora eu não tenho idéia de qual é a sua definição de um kludge, mas você deve ser capaz de usar esses exemplos mais o PA Wiki ou um pouco de googling para você fazer o resto do caminho. Para seus canais extras, o wiki lista isso:

Channel map. A list of comma-separated channel names. The currently defined channel names are: left, right, mono, center, front-left, front-right, front-center, rear-center, rear-left, rear-right, lfe, subwoofer, front-left-of-center, front-right-of-center, side-left, side-right, aux0, aux1 to aux15, top-center, top-front-left, top-front-right, top-front-center, top-rear-left, top-rear-right, top-rear-center, (Default depends on the number of channels and the driver)

A propósito, a ferramenta pacmd pega exatamente os mesmos comandos que o arquivo default.pa , para que você possa fazer alterações interativamente e cole os comandos de trabalho em default.pa , sem pacmd em cada um. Esteja avisado, você pode ter que fazer algumas coisas de forma ligeiramente diferente, como descarregar alguns módulos primeiro, comparado a fazê-lo em default.pa , já que o pulseaudio já está em execução. Passei algum tempo puxando o cabelo sobre isso. (:v)

    
por blujay 08.07.2013 / 09:03