Configurando o dispositivo ALSA padrão para o Pulseaudio

8

Eu recentemente tenho uma placa de som externa / DAC (Fiio E17) e atualmente estou tentando configurá-lo corretamente na minha instalação do Ubuntu 12.04. Ao conectá-lo via USB, ele é reconhecido imediatamente e aparece como um novo dispositivo nas configurações de áudio. A reprodução funciona bem também (exceto por alguns pequenos problemas relacionados ao volume, que estão além do escopo desta questão).

No entanto, ao tentar testar a reprodução de 24 bits / 96 kHz ao reproduzir um arquivo de áudio com mplayer , encontrei um pequeno problema:

Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 96000 Hz, 2 ch, s24le, 4608.0 kbit/100.00% (ratio: 576000->576000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 96000Hz 2ch s16le (2 bytes per sample)

Como pode ser visto na saída, mesmo que o arquivo reproduzido contenha áudio de 24 bits / 96 kHz, ele é reamostrado para 16 bits antes da reprodução. A reprodução do mesmo arquivo com aplay mostra o motivo:

Playing WAVE 'sr003-02-2496.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo
aplay: set_params:1081: Sample format non available
Available formats:
- U8
- S16_LE
- S16_BE
- S32_LE
- S32_BE
- FLOAT_LE
- FLOAT_BE
- MU_LAW
- A_LAW

No entanto, /proc/asound/card1/stream0 confirma que o hardware suporta 24 bits:

FiiO FiiO USB DAC-E17 at usb-0000:00:1a.0-1.1, full speed : USB Audio

Playback:
  Status: Running
    Interface = 3
    Altset = 1
    Packet Size = 388
    Momentary freq = 44100 Hz (0x2c.199a)
  Interface 3
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 3 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000, 96000
  Interface 3
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 3 OUT (ADAPTIVE)
    Rates: 32000, 44100, 48000, 96000

Neste ponto, notei que na guia hardware das configurações de som, posso selecionar dois perfis diferentes para a placa de som: Estéreo Digital (IEC958) e Estéreo Analógico. Alternar entre esses dois não resulta em nenhuma mudança, pelo que eu saiba.

Especificar o dispositivo ALSA ajuda (isto é, aplay -Dhw:1,0 sr003-02-2496.wav funciona muito bem e reproduz o arquivo sem redefinir a resolução). Mas como o Pulseaudio só exibe um dispositivo / dissipador Fiio nas configurações de som, não sei como dizer ao Pulseaudio para usar o dispositivo ALSA hw:1,0 . Adicionar load-module module-alsa-source device=hw:1,0 a /etc/pulse/default.pa resulta no Pulseaudio abortando com module.c: Failed to load module "module-alsa-source" (argument: "device=hw:1,0"): initialization failed. durante a inicialização.

Então, essa é a introdução, aqui estão minhas perguntas reais :

  • Como faço para descobrir qual dispositivo ALSA o Pulseaudio realmente usa quando seleciono o Fiio E17 nas configurações de som?
  • Como eu digo ao Pulseaudio para usar o dispositivo ALSA hw: 1,0 quando selecionar o Fiio E17 nas minhas configurações de som?

Mais algumas informações (esperamos que úteis) de depuração:

por tmnt 12.05.2013 / 23:19

6 respostas

8

Respondendo as duas perguntas:

Você pode selecionar o dispositivo padrão no PulseAudio com uma GUI como o controle de volume do GNOME, pavucontrol ou a partir da linha de comando usando pacmd set-default-sink .

Por padrão, o PulseAudio abre dispositivos para 44,1 kHz ou 48 kHz, o que leva a um menor esforço de reamostragem (portanto, o áudio de 96 kHz normalmente levaria à abertura do dispositivo a 48 kHz. Além disso, abrimos os dispositivos para S16LE por padrão.

Agora, você tem duas opções. Se você quiser apenas reproduzir alguns arquivos em seu formato nativo, paplay --passthrough <file> deve fazer o trabalho para você. Você pode até especificar qual dispositivo usar.

A outra opção é fazer com que o PA use 96/24 globalmente. Você pode alterar isso em /etc/pulse/default.conf ( alternate-sample-rate = 96000 , default-sample-format=s24-32le ). Isso irá levar a um maior uso da CPU, no entanto. Esta é uma situação boba, ter que aplicar a configuração global para todos os dispositivos. Estamos planejando adicionar configurações por dispositivo em algum momento.

Note, depois disso, você deve usar o backend do PulseAudio do mplayer em vez de ter o mplayer conversando com o ALSA e depois o ALSA para o PulseAudio. Você pode fazer isso com mplayer -ao pulse ... e, se quiser configurá-lo permanentemente, adicione ao=pulse a ~/.mplayer/config .

    
por Arun Raghavan 14.05.2013 / 05:16
3

Após a atualização para 13.10, o Pulseaudio foi padronizado para HDMI, provavelmente porque eu tenho um monitor extra conectado ao meu laptop (Lenovo T430S) através da minha porta mini-display. O site do archlinux forneceu uma resposta doce e curta para redefinir ou definir o padrão:

  • faça o login e altere a saída padrão para analógico

  • Executar

    $ aplay -l

e descubra que o analógico é o cartão 0

  • Executar

    $ pacmd list

e encontre a linha:

active profile: <output:analog-stereo+input:analog-stereo>

"output: analógico-estéreo + entrada: analógico-estéreo" é o nome do meu perfil, então adicione

set-card-profile 0 output:analog-stereo+input:analog-stereo

em /etc/pulse/default.pa e salve

  • reinicie o pulseaudio
por user235147 13.01.2014 / 15:55
2

O formato de exemplo usado na interface entre os aplicativos e o PulseAudio nem sempre está diretamente relacionado ao formato de amostra que o PulseAudio usa para acessar o dispositivo de hardware.

S24_3LE não é um dos formatos de aplicativo compatíveis do PulseAudio (conforme mostrado na saída aplay ). Para permitir que aplicativos com formatos tão incomuns sejam executados com o PulseAudio, adicione um plug-in que faça a conversão automática de formato se precisar do dispositivo PCM padrão em .asoundrc :

pcm.!default {
    type linear
    slave.pcm pulse
}
    
por CL. 13.05.2013 / 16:06
2

Apenas uma rápida solução eu descobri usando o Lubuntu Trusty Tahr com o meu Fiio E17 conectado via USB: Eu também estava me perguntando sobre o bitrate, é por isso que eu encontrei este post aqui. Mas desde que eu ouço música em um Netbook bastante antigo, eu não queria configurá-lo para 96/24 por padrão (cpu não é o mais rápido) No entanto, o que funcionou para mim foi usar o VLC e especificar nas configurações de áudio especializadas para usar o módulo ALSA para saída e usar o seguinte dispositivo de saída: "Dispositivo de hardware Fiio USB DAC-E17, USB de áudio direto sem qualquer conversão"

Desta forma, eu era capaz de produzir som 96/24 para o Fiio via USB quando eu queria (também mostra na tela pequena do Fiio) - e eu não tive que mudar algo mais fundamental no sistema operacional. Jogadores como audaciosos ou os navegadores ainda usam a saída pulseaudio padrão. Por vezes, o VLC diz que o dispositivo já está a ser utilizado - depois basta fechar qualquer outro software como o audacioso, que está a usar, por ex. a saída pulseaudio, e deve funcionar.

respeita Andi

    
por Andi 02.09.2014 / 15:35
0

Aqui está a resposta correta para esta pergunta:

Em ArchWiki

Determine o dispositivo ALSA hw que você deseja usar. Em seguida, adicione isso ao seu arquivo default.pa. (Mude 0,0 para se adequar ao seu dispositivo.)

load-module module-alsa-sink device=hw:0,0
    
por Hydranix 07.02.2016 / 02:19
0

Adicionar load-module module-alsa-source device=hw:1,0 a /etc/pulse/default.pa é a abordagem correta. No entanto, os seguintes módulos precisam ser descarregados para evitar conflitos de dispositivo (o erro initialization failed que você obteve):

  • module-udev-detect
  • module-detect

Observe atentamente o /etc/pulse/default.pa e remova as linhas que contêm esses módulos. Além disso, nesse caso, os dispositivos não podem ser detectados automaticamente, portanto, você deseja carregar module-alsa-sink para especificar um coletor manualmente também.

    
por Huan Zhang 03.07.2016 / 11:59