두 개의 애플리케이션을 연결하려면 두 개의 ALSA 루프백 인터페이스를 생성해야 합니다.
/etc/modprobe.d/sound.conf에 다음이 있습니다 -
alias snd-card-1 snd-aloop
options snd-aloop pcm_substreams=2,2 id=1,2 enable=1,1 index=10,11
이는 루프백을 생성하고 작동하지만 필요하지 않은 서라운드 인터페이스도 많이 생성합니다. 아래 예 -
surround51:CARD=D2,DEV=0
Loopback, Loopback PCM
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=D2,DEV=0
Loopback, Loopback PCM
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
어쨌든 스테레오용 루프백 장치를 만들 수 있나요?
감사해요
답변1
구성 파일이 있음을 발견했습니다.
/usr/share/alsa/pcm
서라운드 사운드 인터페이스를 만드는 것입니다. 파일을 삭제했는데 인터페이스가 더 이상 생성되지 않습니다.
답변2
펄스오디오의 대안:
Pulseaudio에서 애플리케이션이 다른 애플리케이션의 출력을 녹음하도록 만드는 것은 매우 간단합니다.
Pulseaudio는 음원(Sound Source)과 음원 싱크(Sound Sink)라는 개념을 가지고 있습니다. 여기에는 어떤 애플리케이션이라도 연결할 수 있습니다. Pulseaudio에는 이러한 연결을 기억하고 다음에 애플리케이션이 다시 시작될 때 연결을 복원하는 모듈이 있습니다(연결이 가능한 경우). 그렇지 않으면 Pulseaudio가 기본 연결을 선택합니다.
GUI를 사용하여 이 모든 것을 검사하고 변경할 수 있으며 pavucontrol
, 이를 통해 애플리케이션과 소스/싱크 간의 연결은 물론 소스/싱크 자체의 볼륨 제어도 변경할 수 있습니다.
4개의 소스/싱크의 기본 사용 사례는 하드웨어 녹음 및 재생을 나타내는 것입니다. 하지만 이에 국한되지 않고 다른 유형의 소스와 싱크를 생성하는 방법도 많습니다. 특히, 각 수신기는 .monitor
루프백인 소스에 연결됩니다. 실제로 pavucontrol
이는 사운드 미터링 표시를 달성하는 데 사용됩니다.
따라서 두 개의 루프, 심지어 100개의 루프 또는 하나의 애플리케이션을 수신하는 여러 애플리케이션이 있는 T-연결을 설정하는 것은 매우 간단합니다.
GUI만으로는 충분하지 않다면 스크립팅을 허용하는 명령줄 애플리케이션 pacmd
과 GUI도 있습니다. 자세한 내용은 또는 를 pactl
참조하세요 pacmd help
. pactl help
(왜 2개인지는 모르겠지만...) 그러나 출력은 구문 분석하기가 특히 쉽지 않으며 약간의 조작 grep -A
등이 필요합니다.
Pulseaudio에는 모든 ALSA 응용 프로그램이 ALSA 장치와 함께 Pulseaudio를 사용할 수 있도록 하는 호환성 레이어가 포함되어 있습니다 pulse
. 당신 .asoundrc
이 좋아하는 것이 있다면
pcm.!default pulse
ctl.!default pulse
그러면 모든 ALSA 응용 프로그램은 기본적으로 Pulseaudio를 사용합니다(다른 ALSA 장치를 사용하도록 구성하지 않은 경우). 일부 ALSA 응용 프로그램은 이를 사용해야 한다고 생각하므로 (이는 나쁜 설계입니다) 대신 이러한 응용 프로그램을 사용하도록 hw:...
설득해야 합니다 . default
일부 ALSA 응용 프로그램은 에만 적용 가능한 작업을 수행하려고 시도하며 hw:...
이러한 작업으로 인해 문제가 발생할 수 있지만 이는 드뭅니다.
결론: Pulseaudio(또는 Jack 사용)를 사용하여 사운드를 라우팅하는 것은 ALSA를 직접 사용하는 것보다 훨씬 쉽습니다.