Já vi várias versões deste problema neste site e em outros, mas nenhuma ajudou muito. Estou tentando configurar meu fone de ouvido Turtle Beach Z60 para que ele reproduza som surround e tenha encontrado vários problemas.
Eu editei com sucesso /etc/pulse/daemon.conf
para que o arquivo default-sample-channels = 8
. O problema com isso, entretanto, é que quando tento speaker-test -c 8
o lado esquerdo, o traseiro esquerdo, o lado direito e o traseiro direito, os volumes são muito mais baixos do que os volumes dianteiro esquerdo, dianteiro central, dianteiro direito e traseiro central. Além disso, a qualidade do som dos alto-falantes é muito baixa em comparação com a forma como normalmente funcionam no Windows.
Finalmente, quando tento selecionar a placa de som, alsamixer
recebo o erro
cannot load mixer controls: Invalid argument
.
Meu /proc/asound/card1/stream0
arquivo é
Turtle Beach Turtle Beach Z60 Áudio do jogo em usb-0000:00:14.0-1, velocidade total: Áudio USB
Reprodução:
Estado: Parar
Interface 2
Altset 1
Formato: S16_LE
Canais: 2
Ponto final: 1 SAÍDA (ADAPTATIVO)
Taxas: 16000 Interface 2 Altset 2
Formato: S24_3LE
Canais: 2
Ponto final: 1 SAÍDA (ADAPTATIVO)
Tarifas: 16.000
Capturar:
Estado: Parar
Interface 1
Altset 1
Formato: S16_LE
Canais: 2
Ponto final: 1 IN (ADAPTATIVO)
Taxas: 16000 Interface 1 Altset 2
Formato: S24_3LE
Canais: 2
Ponto final: 1 IN (ADAPTATIVO)
Tarifas: 16.000
Qualquer ajuda seria muito apreciada. Obrigado.
Responder1
Este é um post antigo, mas espero que a postagem possa ajudar algumas pessoas. Levei um bom tempo mexendo neste fone de ouvido para obter o som adequado. Não sou especialista em alsa ou pulse-audio.
O seguinte é feito no Fedora Linux 33, mas provavelmente também é relevante para usuários do Ubuntu.
Este fone de ouvido possui um canal para bate-papo por voz (baixa qualidade) e um canal para áudio normal. Conectar este fone de ouvido apenas disponibiliza o som de baixa qualidade para áudio pulsado. Isso pode ser verificado reproduzindo áudio e girando a roda de volume do controlador no cabo USB. Alterar o volume só funciona usando a roda de canais de voz.
Você pode ver o baixo tamanho da amostra:
pactl list sinks
Sink #5
State: SUSPENDED
Name: alsa_output.usb-Turtle_Beach_Turtle_Beach_Z60_Game_Audio_000000000000-00.analog-stereo
Description: Turtle Beach Z60 Game Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 16000Hz
Se eu olhar para os diferentes vapores em /proc/asound/card0 (meus fones de ouvido são card0, os seus podem variar), posso ver que stream0 é 16000 Hz e stream1 é o vapor com qualidade de som adequada:
[stephan@nyx ~]$ cat /proc/asound/card0/stream0
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio
Playback:
Status: Stop
Interface 2
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 2
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
Capture:
Status: Stop
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
[stephan@nyx ~]$ cat /proc/asound/card0/stream1
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio #1
Playback:
Status: Running
Interface = 4
Altset = 1
Packet Size = 192
Momentary freq = 44100 Hz (0x2c.199a)
Interface 4
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR
Interface 4
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 24
Channel map: FL FR
Interface 4
Altset 3
Format: S16_LE
Channels: 8
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR FC LFE SL SR FLC FRC
Esta é uma boa notícia e provavelmente significa que não há problema de driver, mas algo no ambiente do usuário não está selecionando o fluxo de saída correto.
Usando o comando aplay descobri que minha placa tem dois dispositivos. Presumi que o stream1 está no segundo dispositivo (dispositivo 1) que no ALSA é chamado hw:0,1
[stephan@nyx ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [Turtle Beach Z60 Game Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Audio [Turtle Beach Z60 Game Audio], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
Verifiquei a qualidade deste dispositivo abrindo o VLC com este dispositivo de saída específico. Inicie o VLC e reproduza um arquivo de áudio
vlc --aout alsa --alsa-audio-device hw:0,1
Depois de verificar se a qualidade do som agora é a que deveria ser, crio um coletor no Pulse-audio usando o dispositivo ALSA
pactl load-module module-alsa-sink device=hw:0,1
No GNOME agora posso ver um novo dispositivo de áudio chamado "Turtle Beach Z60 Game Audio". Usando isso como dispositivo de saída, a qualidade do som é ótima. Você pode verificar se o canal correto é usado girando a roda de volume no controlador do cabo USB. Deve reagir à roda de volume normal em vez da roda de voz.
Você pode tornar a alteração no pulse-audio permanente adicionando esta linha a /etc/pulse/default.pa
load-module module-alsa-sink device=hw:0,1
Listar os coletores no pulse-audio agora mostra o tamanho de amostra correto para o coletor
Sink #6
State: RUNNING
Name: alsa_output.hw_0_1
Description: Turtle Beach Z60 Game Audio
Driver: module-alsa-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Observe que ele mostra apenas dois canais, não surround. Esta é provavelmente uma configuração que pode ser feita em algum lugar, mas não estou interessado em som surround. Isso pelo menos corrige a qualidade do som usando o canal certo.
Talvez exista uma solução mais elegante para este problema, mas funciona para mim.