Alsa 및 PulseAudio(csound): 연결이 거부되었습니다.

Alsa 및 PulseAudio(csound): 연결이 거부되었습니다.

나는 나를 완전히 당황하게 만드는 문제에 부딪쳤다. 첫째, 일부 시스템 정보

Linux quasar-nixos-tr 4.19.87 #1-NixOS SMP Sun Dec 1 08:17:47 UTC 2019 x86_64 GNU/Linux

지금은 사운드 생성/음악 라이브러리를 가지고 놀고 있습니다.소리이상한 문제가 보입니다.

나는 Haskell을 통해 csound 레이어를 사용하고 있습니다. 라이브러리가 호출되고 csound-expression일부 Haskell 코드를 기반으로 csound 파일을 생성한 다음 csound를 통해 실행합니다.

default내가 이해한 바에 따르면 csound는 내 시스템에서 PulseAudio의 장치를 통해 라우팅을 시도하는 Alsa로 오디오를 라우팅합니다 .

이제 내 시스템에서 이상한 일이 일어나고 있습니다.

  1. 재부팅 후 csound 관련 코드를 실행하면 소리가 들립니다.하지만, 해당 스니펫 실행을 중지하면 다른 애플리케이션이 더 이상 PA에 연결할 수 없는 것 같습니다. 검사 systemctl --user status pulseaudio.service pulsaudio.socket결과 서비스가 종료되었으며 최대값이 소진된 것으로 나타났습니다. 아니요. 시작해 보세요.
  2. 새로 부팅한 후 다른 응용 프로그램을 실행하면 pavucontrol이제 PA 서비스에 연결할 수 있지만 내 Haskell csound 코드는 더 이상 연결할 수 없습니다. 대신 다음과 같이 종료됩니다.

    λ> dac . osc $ 200 
    0dBFS level = 32768.0
    --Csound version 6.13 (double samples) Jan  1 1970
    [commit: none]
    libsndfile-1.0.28
    UnifiedCSD:  tmp.csd
    STARTING FILE
    Creating options
    Creating orchestra
    closing tag
    Creating score
    rtaudio: ALSA module enabled
    rtmidi: ALSA Raw MIDI module enabled
    Elapsed time at end of orchestra compile: real: 0.001s, CPU: 0.001s
    sorting score ...
        ... done
    Elapsed time at end of score sort: real: 0.001s, CPU: 0.001s
    displays suppressed
    0dBFS level = 1.0
    orch now loaded
    audio buffered in 256 sample-frame blocks
    ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
    
     *** Cannot open device 'default' for audio input: Connection refused
    Failed to initialise real time audio input
    inactive allocs returned to freespace
    end of score.          overall amps:  0.00000
           overall samples out of range:        0
    1 errors in performance
    Elapsed time at end of performance: real: 0.169s, CPU: 0.004s
    

사례 1(위)의 경우 로그에서 몇 가지 흥미로운 내용을 볼 수 있지만 PA 작동 방식, Alsa 작동 방식 및 두 가지가 함께 작동하는 방식에 대한 이해는 제한적입니다.

Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: Starting Sound Service...
Dec 16 09:28:16 quasar-nixos-tr pulseaudio[2382]: E: [pulseaudio] socket-server.c: bind(): Address already in use
Dec 16 09:28:16 quasar-nixos-tr pulseaudio[2382]: E: [pulseaudio] module.c: Failed to load module "module-esound-protocol-unix" (argument: ""): initialization failed.
Dec 16 09:28:16 quasar-nixos-tr pulseaudio[2382]: E: [pulseaudio] main.c: D-Bus name org.PulseAudio1 already taken.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: pulseaudio.service: Failed with result 'exit-code'.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: Failed to start Sound Service.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: pulseaudio.service: Service RestartSec=500ms expired, scheduling restart.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: pulseaudio.service: Scheduled restart job, restart counter is at 4.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: Stopped Sound Service.
Dec 16 09:28:16 quasar-nixos-tr systemd[1708]: Starting Sound Service...
Dec 16 09:28:17 quasar-nixos-tr pulseaudio[2390]: E: [pulseaudio] socket-server.c: bind(): Address already in use
Dec 16 09:28:17 quasar-nixos-tr pulseaudio[2390]: E: [pulseaudio] module.c: Failed to load module "module-esound-protocol-unix" (argument: ""): initialization failed.
Dec 16 09:28:17 quasar-nixos-tr pulseaudio[2390]: E: [pulseaudio] main.c: D-Bus name org.PulseAudio1 already taken.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Failed with result 'exit-code'.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: Failed to start Sound Service.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Service RestartSec=500ms expired, scheduling restart.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: Stopped Sound Service.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Start request repeated too quickly.
Dec 16 09:28:17 quasar-nixos-tr systemd[1708]: pulseaudio.service: Failed with result 'exit-code'.

여기 사용자는 audiosound그룹에 속해 있으며 저는 NixOS를 사용하고 있습니다. 이는 문제와 관련이 없을 수 있습니다.

여기서 무슨 일이 일어나고 있는지 도와줄 수 있는 사람이 있나요?


또한 사례 2에는 alsamixer모든 장치가 올바르게 나열되어 있습니다.

답변1

마침내 문제를 발견했습니다.여기앞으로 다른 사람이 이 문제를 우연히 발견할 경우를 대비해 말이죠.

관련 정보