PortAudio가 Debian/VirtualBox에서 손상된 것 같습니다.

PortAudio가 Debian/VirtualBox에서 손상된 것 같습니다.

저는 Windows 7 호스트의 VirtualBox 5.1.30에서 Debian 9.2.1을 실행하고 있습니다. 내 프로젝트에서 PortAudio 라이브러리를 사용하여 여러 플랫폼에서 사용할 수 있도록 하고 싶지만 자체 샘플 프로그램을 사용해도 제대로 작동하지 않습니다.

데비안을 새로 설치하고 업데이트한 후 패키지 를 설치 portaudio19-dev하고 paex_sine.cPortAudio 웹사이트의 현재 소스 배포판에서 패키지를 가져왔습니다. 잘 컴파일되지만( gcc paex_sine.c -lportaudio -lm) 실행하면 많은 오류가 발생합니다.

ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib setup.c:547:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:547:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:547:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
...

오디오 자체가 매우 "흔들리고" 왜곡되어 제가 작성한 샘플/테스트 앱에서도 비슷한 결과를 얻었습니다. PortAudio의 콜백 루프는 추가 데이터를 요청하기 전에 버퍼가 (거의) 비워질 때까지 기다리는 대신 최대한 빠르게 실행되는 것 같습니다. (WAV 파일 재생은 aplay잘 작동하므로 VM이 올바르게 구성되었다고 합리적으로 확신합니다).

내 가상 머신에 설치된 PortAudio는 버전 1 로 보고되는데 PortAudio V19.6.0-devel, revision 396fe4b6699ae929d3a685b3ef8a7e97396139a4, 이는 해당 웹 사이트에서 최신 안정 버전인 것처럼 보이지만 1년이 지났습니다. 알려진 문제로 해결되었습니까? VirtualBox와의 이상한 상호 작용? 아니면 PortAudio 이슈 트래커에 버그를 작성해야 합니까?

편집: 방금 Debian 9.2 Live CD를 사용하여 실제 컴퓨터에서 이것을 시도했습니다. 내 테스트( paex_sine샘플 및 WAV 플레이어) 모두 재생을 성공적으로 완료할 수 있었지만 PortAudio를 초기화할 때 여전히 몇 가지 오류가 발생했습니다.

ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave

이는 VirtualBox의 오디오 "하드웨어"에 PortAudio가 완전히 망가지는 문제가 있음을 암시했지만 Raspberry Pi 3의 온보드 오디오에도 비슷한 문제가 있었습니다("더듬거림", 왜곡된 재생). 이제 저는 이 질문을 PortAudio 팀에게 물어봐야 할지 RPi 직원에게 물어봐야 할지 잘 모르겠습니다. 또한 이러한 "알 수 없는 PCM" 오류를 모두 제거하는 방법도 알고 싶습니다.

관련 정보