ALSA의 사운드 믹싱 이해

ALSA의 사운드 믹싱 이해

ALSA를 구성하는 데 많은 시간을 소비했음에도 불구하고 ALSA가 내가 원하는 것을 정확히 수행하도록 할 수 없는 것 같습니다. 나는 그것을 잘 이해하지 못하는 것 같습니다.

이 내 꺼야 /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
}

현재 달성한 목표는 다음과 같습니다.

  • Dmixing(이것이 실제로 무엇을 하는지는 모르겠습니다. 얼마나 많은 소스가 alsa로 출력되더라도 장치가 사운드를 재생하도록 보장한다고 생각합니다.)dmixed

  • 샘플링 속도를 96Khz로 강제

  • S32_LE로 포맷을 강제합니다. (내 미디어 플레이어에서는 작동한다고 말하지 않지만 이것이 작동한다고 생각합니다. 그러나 S24_LE를 넣으면 사운드가 끊어지기 때문에 작동한다고 생각합니다.)

  • Upmix 2.0은 "upmix20_51"을 사용하여 5.1 사운드를 생성하는데, 이는 "!default" pcm의 슬레이브로 설정되며, 이는 2.0 파일의 일반 출력이라고 가정합니다.

  • 채널 복제를 통해 4.0을 5.1로 업믹싱(route_policy 중복)

  • 일반적으로 "!surround51" pcm을 사용하여 5.1 사운드를 재생합니다.

내가 알고 싶은 것은:

  • dmixing은 정확히 어떤 용도로 사용되나요?
  • 중복 됩니까 pcm.!surround20? (삭제해야 할까요?)
  • 샘플링 레이트 변환이 현재 하드웨어나 소프트웨어를 통해 수행되는지 어떻게든 확인할 수 있나요?
  • 주파수를 96khz로 강제하고 형식을 32비트로 강제하면 품질에 어떤 도움이 될까요?
  • 5.1 신호 소스가 "!default" pcm을 사용합니까? 만약 그런 일이 발생한다면 관련 업믹싱이 5.1 소스에 문제가 될까요? 2.0 소스만 믹싱하는 더 좋은 방법이 있나요?
  • 모노 사운드를 스테레오로 업믹스한 다음 스테레오를 5.1 사운드로 업믹스하는 방법
  • 이러한 희귀한 소스 중 하나를 얻은 경우 7.1 소스(예: 전면 스피커와 후면 스피커 사이에 분할된 측면 스피커)를 5.1로 다운믹스하려면 어떻게 해야 합니까?
  • 현재 alsa로 하고 있는 것보다 업믹싱을 수행하는 더 나은/고품질 방법이 있습니까? 사운드가 믹싱되는 방식을 더 효과적으로 제어할 수 있는 방법이 있나요?

관련 정보