나는 복층 주택에 살고 있는데 내 음악에 베이스가 있으면 이웃이 들을 수 있습니다. 해결책으로 스피커(헤드폰 제외)를 통해 들어오는 오디오에 고역 통과 필터를 적용하도록 ALSA를 구성하고 싶습니다. 이 목표를 어떻게 달성할 수 있나요?
답변1
이것은 나에게 해당되는 부분이다 ~/.asoundrc
. 내 스피커는 hw:3
ALSA에 로 표시되는 USB 오디오 장치에 연결되어 있습니다 . 내 개인 설정에는 hw3mix
위에 설명된 장치가 이미 있습니다 .여기, 여러 클라이언트 스트림을 에 혼합합니다 hw:3
. 주석 처리된 줄에 표시된 것처럼 다른 옵션도 가능합니다.
pcm.hw3highpass {
type ladspa
slave.pcm "plug:hw3mix";
# you can choose a different hardware device (no mixing) like this:
# slave.pcm "plughw:0,0";
# and you can even specify basic mixing in the same line:
# slave.pcm "plug:dmix:0"
# but note that the following doesn't work, we need 'plug' to
# convert to/from floating point
# slave.pcm "hw3mix";
path "/usr/lib/ladspa";
plugins [{
label hpf
input {
controls [ 1000 ]
}
}]
hint {
show on
description "Highpass filter for hw:3"
}
}
pcm.!default plug:hw3highpass
하이패스 필터는라스파플러그인(태그 hpf
). 내 생활 상황에 다른 플러그인이 유용할 수도 있습니다.압축기 추가.
제가 두 번 호출한 플러그인은 plug
형식 변환을 자동으로 수행하는 다소 마법 같은 플러그인입니다. 부동 소수점을 요구하는 LADSPA와 인터페이스해야 합니다. 필터 체인을 보고 명령을 실행하여 부동 소수점 변환이 수행되고 있다는 사실을 관찰할 수 있습니다 aplay -v some.wav
. 슬레이브 정의 plug:
에 접두사가 없는 경우 hw3mix
"ALSA lib pcm_params.c:2162: (snd1_pcm_hw_refine_slave) 슬레이브 PCM을 사용할 수 없습니다"라는 비밀스러운 오류 메시지가 표시됩니다. plug:
마지막 줄에 기본 별칭이 없으면 "aplay:set_params:1292: 액세스 유형을 사용할 수 없습니다"라는 또 다른 비밀스러운 오류 메시지가 표시됩니다. 이야 리눅스!
ALSA 문서는 이해하기 어렵고 온라인에서 찾은 다른 솔루션은 불필요하게 복잡했기 때문에 내 자신의 질문에 대답하고 있습니다. LADSPA 플러그인 부분 id
대신 숫자를 사용하거나 수동으로 float를 수행할 두 개의 추가 명명된 장치를 정의합니다. label
-> 여기에 표시된 접두사를 사용하는 대신 정수 변환을 사용 하거나 마지막 줄에서 했던 것처럼 plug:
장치에 직접 별칭을 지정할 가능성에 대한 언급이 없습니다 . plug:...
기본 사항을 이해하면 구성이 얼마나 쉽고 ALSA/LADSPA가 얼마나 유용하고 강력한지 놀랐습니다.
Volker Schatz 튜토리얼을 찾았습니다.“ALSA 자세히 살펴보기”이러한 것들을 파악하는 것이 필수적입니다. 분명히 ALSA는 그의 튜토리얼이 작성된 이후 약간 변경되었습니다. 예를 들어 그는 Dmix를 작동시키지 못했다고 말하며 매개변수가 있는 장치에는 별칭이 허용되지 않는다고 말했습니다(내 pcm.default
별칭이 그러한 별칭 중 하나입니다).