Compreendendo a mixagem de sons no ALSA

1

Eu não consigo dobrar a ALSA completamente ao meu testamento, mesmo depois de passar muito tempo configurando-a. Eu simplesmente não pareço entender bem o suficiente.

Aqui está meu /etc/asound.conf :

pcm.dmixed {
        type asym
        playback.pcm {
                # See plugin:dmix at http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
                type dmix

                # Don't block other users, e.g. the Timidity midi-player daemon
                # http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
                ipc_key_add_uid true

                ipc_key 5678293
                ipc_perm 0660
                ipc_gid audio

                slave {
                        # 2 for stereo, 6 for surround51, 8 for surround71
                        channels 6
                        pcm {
                                format S32_LE
                                #format S16_LE

                                #rate 44100
                                rate 96000

                                # http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html
                                nonblock true

                                type hw
                                card 0
                                device 0
                                subdevice 0
                        }

                        period_size 1024

                        # If too large, use CONFIG_SND_HDA_PREALLOC_SIZE=2048
                        buffer_size 16384
                }
        }
        capture.pcm "hw:0"
}

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

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

pcm.!surround40 {
        type plug
        slave.pcm "dmixed"
        route_policy duplicate
}

pcm.!surround51 {
        type plug
        slave.pcm "dmixed"
}

pcm.upmix20_51 {
        slave.pcm "dmixed"
        slave.channels 6
        type route

        # Front and rear
        ttable.0.0 0.9
        ttable.1.1 0.9
        ttable.2.2 1
        ttable.3.3 1

        # Center and LFE
        ttable.4.4 1
        ttable.5.5 1

        # Front left/right to center
        ttable.0.4 0.5
        ttable.1.4 0.5

        # Front left/right to rear
        ttable.0.2 0.5
        ttable.1.3 0.5
}

O que ela alcança atualmente é:

  • Dmixando (eu não entendo o que isso realmente faz, eu acho que garante que o dispositivo tocará, não importa quantas fontes estão saindo para alsa) com dmixed

  • Força a taxa de amostragem para 96 kHz

  • Força o formato para S32_LE (acho que isso funciona, embora meu media player não diga que funciona, acho que funciona porque se eu colocar S24_LE o som será interrompido.)

  • O Upmix 2.0 soa para 5.1 com "upmix20_51" que é definido como um escravo para o "! default" pcm que eu acho que é a saída normal para arquivos 2.0.

  • Upmix 4.0 a 5.1 via duplicação de canal (duplicata route_policy)

  • Reproduz som 5.1 normalmente concedido, usa o "! surround51" pcm como deveria.

O que eu gostaria de saber é:

  • O que exatamente é mixagem?
  • O pcm.!surround20 é redundante? (Devo apenas removê-lo?)
  • Posso verificar de alguma forma se a conversão da taxa de amostra é feita atualmente com hardware ou software?
  • Forçar a Freqüência para 96kHz e o formato para 32 bits terá algum benefício em termos de qualidade?
  • As fontes 5.1 usarão o pcm "! padrão"? E se isso pode acontecer, o upmixing que está ligado a ele será problemático para essa fonte 5.1? Existe uma maneira melhor de atualizar apenas fontes 2.0?
  • Como faço para mixar o som Mono para som estéreo e depois mixar esse som estéreo para som 5.1
  • Como faço downmix de fontes 7.1 (ou seja, divido as caixas acústicas laterais entre as caixas acústicas frontais e traseiras) para 5.1 caso eu tenha uma dessas fontes raras
  • Existe algum método melhor / de maior qualidade para fazer upmixing do que o que estou fazendo atualmente com o alsa? Qualquer método que permita maior controle sobre como o som é mixado?
por Cestarian 08.07.2014 / 15:42

0 respostas