Alterar taxa de amostragem no ALSA

5

Sou uma Computer Audiophile, usei o Windows (com ASIO4ALL) e o OSX for Audio. Agora estou fazendo o Ubuntu 13 meu HTPC / Stereo Audio. Para começar, desativei o pulso de áudio e usei o GooMusicplayer com o ALSA.

Meu DAC é capaz de 24bit 96khz. Não consigo encontrar uma configuração para o ALSA para definir a taxa de amostragem de saída. Como posso configurá-lo?

    
por Taranfx 03.05.2013 / 12:57

5 respostas

5

A taxa de amostragem do dispositivo é, por padrão, o que o aplicativo configurou para ele, ou seja, a taxa de amostragem do arquivo original.

    
por 03.05.2013 / 14:58
5

Alsa, por padrão, usa a mesma taxa de amostragem e formato da fonte. No entanto, é possível forçar a taxa de amostragem para cima (ou para baixo).

Aqui está uma maneira de fazer isso. (em /etc/asound.conf ou ~ / .asoundrc )

pcm.device{
        format S24_LE
        rate 96000
        type hw
        card 0
        device 0
}

Então faça isso pcm um escravo para outro, como seu pcm padrão (estéreo) (aviso: o formato de 24 bits não funcionará a menos que você tenha um cartão compatível, eu normalmente uso o S32_LE que funciona na maioria das placas.)

pcm.!default{
    type plug
    slave.pcm "device"
}

acima, no entanto, só funcionará para fontes estéreo (portanto, se você tocar a partir de uma fonte 5.1 que usará por padrão o surround51 pcm, as coisas ficarão um pouco mais complicadas)

A única maneira que eu conheço (e uso pessoalmente) sobre como forçar a taxa de amostragem de fontes não-estéreo é pegar partes de this asound.conf / asoundrc e modificando-os. (Nota: eu mesmo não escrevi esse arquivo)

(Você pode encontrar meu asound.conf nesta questão e copie isso diretamente ao invés de passar pelo incômodo de modificá-lo manualmente abaixo)

Primeiro, copie o pcm "dmixed" e modifique sua seção de hardware para a taxa de amostragem e formato desejados.

Em seguida, copie os pcms! default, surround40 e surround51 como eles são. Isto irá efetivamente dissociar toda a saída e converter a taxa de amostragem de todas as fontes 2.0, 4.0 e 5.1 para a taxa de amostragem que foi definida na pcm com memória interna.

Nesse arquivo de configuração, você também pode achar interessante a pcm "upmix20_51", já que é uma maneira eficiente de fazer o upmix das fontes 2.0 para 5.1, duplicando seletivamente os sons para os outros canais. Se você quiser usá-lo, você terá que mudar o tipo de "plug" para "route" e então configurá-lo como um escravo para o pcm padrão.

pcm.!default{
    type plug
    slave.pcm "upmix20_51"
}

Como "surround51" que o pcm usa usa "dmixed" como escravo, a taxa de amostragem forçada também será aplicada a este pcm.

Infelizmente, como as coisas estão agora, as fontes mono só saem do alto-falante esquerdo, mas isso dificilmente é um problema, já que fontes de som mono são raras nesses pais. O exemplo que acabei de dar seria exatamente como eu tenho meu próprio asound.conf configurado, aproveite se você tiver uma configuração de alto-falante 5.1 e quiser forçar taxas de amostragem de 96khz.

Em teoria, eu acho que forçar a taxa de amostragem não vai conseguir nada para você (já que é um absurdo pensar que isso melhoraria a qualidade do áudio de sua fonte, que tinha uma taxa de amostragem menor) será muito melhor configurar o aplicativo para usar uma saída de 96kHz.

Mas para mim eu tive alguns problemas com sons de estalos (em jogos específicos, como Xcom: Enemy Unknown) se eu não forcei 96khz ou a frequência de 44.1kHz. Visto que eu não perco nada de forçar 96khz (não aumenta nem decreses qualidade de 44.1 / 48khz fontes) era uma solução perfeita.

    
por 07.07.2014 / 23:55
2

As outras respostas estão corretas.

A maioria das placas de som não tem multi-canal por padrão. Se você tem uma dessas placas que tem mixer multi-canal nelas - você provavelmente não precisa ler aqui. A ALSA faz mixagem de vários sons no software.

De um modo geral, duas opções são possíveis:

  1. Ignore a saída do software de mixagem e você poderá desfrutar de uma faixa maior de som (maior taxa de amostragem e taxa de bits, por exemplo, canalizando para 6 ou mais alto-falantes).

    Apenas um programa pode trabalhar com placa de som!

  2. Habilite a mixagem de software e perca alguma qualidade que você provavelmente não notará de qualquer maneira. (Asus Xonair DX com Sennheiser HD598 testado, não notou diferença alguma, usado flac com taxa de amostragem de 96 kHz e 192 kHz de 2 canais) .

    Mais de um programa pode funcionar dessa maneira! Eu não sou um audiófilo, lembre-se, ainda não.

A segunda opção é ativada por padrão se seu hardware não suporta a mistura de vários fluxos ao mesmo tempo.

NOTA: Há também a terceira opção. O ALSA pode ser configurado com re-amostragem em software, mas pela minha experiência, embora seja possível ajustar todos os aplicativos a serem re-amostrados para a taxa de amostragem e taxa de bits mais altas - ele introduziu um atraso perceptível nos jogos FPS, que NÃO é OK para um gamer (terceiro de um ou dois segundos, quando eu tiro as balas da arma, o que me irritou muito).

Esteja ciente de que a terceira opção provavelmente não é prática por alguns motivos:

  1. Eu não testei bem, mas acho que alguns aplicativos ainda podem ter problemas com isso.
  2. A maioria das coleções de áudio está na taxa de amostragem de 44,1 / 44 kHz com taxa de 16 bits, a menos que você use muito FLAC, mas, mesmo assim, a FLAC precisa ter uma taxa de amostragem maior.
  3. up-sampling NÃO fornece melhor qualidade de som (teoricamente, mas se você usar fones de ouvido baratos - você não notará, tenho 99% de certeza).
  4. O atraso nos jogos é muito real, a menos que eu tenha feito algo errado no meu arquivo .asoundrc .

Para tornar as coisas mais confusas, pode ficar ainda pior no bom sentido. Você pode criar "dispositivos" com diferentes configurações (canais / taxa / taxa de amostragem / saída física e configuração de entrada). E alguns aplicativos podem usar dispositivos criados manualmente, outros não. Isso me incomoda muito.

Mais notórios e problemáticos: o Flash Player.

Espero que ajude alguém.

Esta resposta é válida para quem não está usando fones de ouvido conectados por USB. Eles têm suas próprias placas de som internas e eu tenho conhecimento limitado sobre isso, provavelmente é mais verdadeiro para aqueles com placas de som embutidas na placa-mãe. Pode ainda ser aplicado a fones de ouvido USB, mas leve tudo com grão de sal. Eu estou supondo que provavelmente em torno de 10% de todas as placas de som produzidas estaria usando mixagem de hardware de qualquer forma como o hardware não teria como uma opção. A saída óptica é uma grande exceção. Saída óptica AFAIK não precisa de mixer. De multiplexação está acontecendo em "receptor", onde é feito é hardware. Não tome minha palavra para isso.

    
por 28.01.2014 / 01:47
1

Pense que isso não é verdade. Teve o mesmo problema. O Alsamixer está sempre reamostrando todos os fluxos para o padrão de 44,1 kHz. Eu não posso imaginar outra maneira de misturar fluxos com taxa de amostragem diferente do que re-amostrá-los para um comum. Arquivo adequado para alterar isso é ~ /. Asoundrc

link

Você pode verificar o resultado aqui: cat / proc / asound / card0 / pcm0p / sub0 / hw_params (ou card1 se você tiver 2 cartões)

    
por 13.07.2013 / 22:41
0

Obrigado pela informação acima @Cestarian. Isso deve me ajudar a obter a interface de áudio semi-profissional usb para ir para a taxa de amostragem que é padronizada com minha gravação (96K). Eu acho isso muito perspicaz configurando essa máquina para o estúdio.

Para te ajudar, desde que você me ajudou, Eu responderei a estas perguntas:

" Em teoria, eu pensaria que forçar a taxa de amostragem não conseguiria nada para você (já que é um absurdo pensar que melhoraria a qualidade do áudio de sua fonte, que tinha uma taxa de amostragem menor), como tal, você será um muito melhor configurar o aplicativo para usar saída 96khz.

Mas para mim eu tive alguns problemas com sons de estalos (em jogos específicos, como Xcom: Enemy Unknown) se eu não forcei 96khz ou a frequência de 44.1kHz. Visto que eu não perco nada de forçar 96khz (ele não aumenta nem decreses a qualidade de fontes 44.1 / 48khz) foi uma solução perfeita. "

Existe um aplicativo em que você pegaria um sinal digital e o converteria em um multiplicador maior do que o original: Redução do Jitter Digital. Seria interessante descobrir a precisão de um computador em relação a uma caixa conversora de taxa de amostragem externa usada na masterização de estúdios para esse propósito.

no segundo: imagem tem que haver um quadro de processamento que tem que acontecer quando a taxa de amostragem é indefinida. Logicamente, ele teria que detectar os dados de entrada do disco rígido e formatá-los (se não estiverem corretos) no fluxo de dados, em vez de apenas enviar para o fluxo de dados. O som usa processamento em tempo real e não cpu. Mas desde que você está acima da amostragem também, você pode consertar o jitter da taxa de amostragem de fontes no arquivo de som do jogo.

    
por 26.02.2017 / 07:18