나는 Linux에서 사운드가 어떻게 작동하는지 며칠 동안 인터넷 검색을 해왔지만 여전히 좋은 기본 기사나 튜토리얼을 찾을 수 없습니다. 내가 실제로 찾고 있는 것은 어떤 용어가 존재하는지, 그리고 어떤 도구(bash 스크립트 생성을 위한 터미널 도구)를 사용하여 사운드를 구성할 수 있는지입니다. 나는 비슷한 것을 찾고 있습니다 :
- 사운드 카드란 무엇입니까?
- 채널이란 무엇입니까?
- 나에게는 어떤 도구가 있나요?
- 사운드 출력을 위해 어떤 수정을 할 수 있나요?
- ...
답변1
사운드 카드는 오디오 잭이나 기타 입력 표준에서 신호를 수신하고 전송하는 데 사용되는 카드(때때로 칩보다 약간 큼)입니다. 통합 사운드 카드는 오디오 입력 및 출력 장치를 연결하는 데 사용됩니다. CPU를 사용하여 입력 신호를 처리한 후 컴퓨터의 사운드 출력을 녹음하는 소프트웨어로 전달하고, 컴퓨터의 사운드 출력을 스피커로 전달하기 전에 처리합니다.
전용 사운드 카드에는 일반적으로 자체 전용 사운드 처리 장치가 있으며 CPU에 의존할 필요가 없습니다.
적어도 Linux 사운드 드라이버에서 채널은 대상으로 삼고 있는 특정 스피커를 나타냅니다(예: 5.1 스피커에는 각 스피커에 1개, 서브우퍼에 1개, 총 6개의 채널이 있습니다. 이를 이해하기 위해 5.1 스피커 설정이 있다고 가정해 보겠습니다. 명령 사용스피커 테스트 -c6 -t wav한 번에 하나씩 해당 채널로 사운드를 출력하는 모든 스피커를 읽어줍니다. 스테레오 또는 2.1 스피커 이외의 다른 것을 수동으로 구성하지 않는 한 이에 대해 많이 알 필요가 없습니다.
가지고 있는 도구는 distro에 크게 좌우됩니다. alsa 태그를 지정했으므로 alsa용 도구(설치한 경우, 설치하지 않은 경우 distro의 소프트웨어 저장소에 패키지가 분명히 있을 것입니다) 다음과 같은 명령에 액세스믹서,아프라,스피커 테스트그리고알사 믹서(솔직히 제가 사용해 본 것은 이것들뿐입니다.) 그래픽 믹서가 있을 수도 있지만 데스크톱 환경과 배포판 간에는 상당한 차이가 있습니다. 펄스 오디오도 사용하면 상황이 더 복잡해집니다. Pulseaudio는 항상 alsa와 같은 커널 사운드 드라이버 위에서 실행되며 단독으로 작동하지 않습니다.
alsa(주로 OSS/Open Sound Software)에 대한 대안이 있는데 이에 대해서는 자세히 설명하지 않겠습니다.
alsa를 구성하는 데는 세 가지 주요 파일이 있습니다. 일반적으로 시스템 전체에 걸친 alsa 구성 파일이 있습니다./etc/asound.conf, 각 사용자의 설치 파일은 아래와 같이 각 사용자의 홈 디렉터리에 있습니다.~/.asoundrc(이러한 파일은 기본적으로 존재하지 않습니다. 단, alsa를 pulseaudio를 사용하도록 리디렉션하는 목적으로만 asound.conf가 존재할 수 있습니다(pulseaudio를 사용하는 경우).) 세 번째 파일은 커널 modprobe 파일로, 일반적으로 다음 위치에 있습니다./etc/modprobe.d/이름은 원하는 대로 지정할 수 있습니다. 저는 주로 alsa.conf를 사용합니다. 여기서는 설치되었지만 사용할 의도가 없는 장치에 대한 오디오 드라이버를 블랙리스트에 추가하는 중요한 작업을 수행할 수 있습니다(기본 장치 선택 프로세스 중 오류 가능성을 최소화하기 위해 해당 드라이버를 제거하는 것이 가장 좋습니다). alsa는 index라는 명령을 사용하여 사운드 장치를 읽습니다(index=0이 기본 장치이고 index=1이 그 뒤에 정렬됩니다). 또한 때때로 이러한 장치가 제대로 작동하도록 옵션을 활성화하는 데 사용될 수도 있습니다. 필수 사운드 장비(일반적으로 노트북, 특히 세련된 2.1 사운드 시스템을 갖춘 노트북에서 발견됨)
아직 하나 있어요usr/share/alsa/alsa.conf파일(또는 이와 유사한 것)이 있지만 사용한 적이 없습니다.
alsa를 구성하는 데 사용하는 기본 구성 파일은 아마도 사용자 바인딩 파일일 것입니다..asoundrc, 이는 사용자가 가장 많이 하는 일입니다.
어떤 수정을 할 수 있는지에 관해서는... 이퀄라이저 적용에서 사운드 업그레이드(더 많은 경우 2채널 사운드가 모든 스피커로 출력됨)와 기본 출력 장치 변경으로 이동할 수 있습니다. 또한 새 오디오 출력을 위해 다른 구성이나 다른 사운드 장치를 사용하도록 생성할 수 있으며, 그런 다음 필요에 따라 사용할 특정 프로그램을 구성할 수 있습니다(pulseaudio의 주요 목표 중 하나는 대부분을 자동화하는 것임을 기억하십시오). 가장 많이 사용할 가능성이 높은 도구는 다음과 같습니다.알사 믹서(볼륨 제어를 위한 명령줄 믹서, 각 채널의 볼륨 구성도 지원합니다)
나는 이러한 모든 작업에 asoundrc를 사용하지만 pulseaudio가 있는 경우 제공된 GUI 구성 도구(예: pavucontrol)를 사용하거나 가능하면 완전히 제거하는 것이 더 나을 것입니다. Pulseaudio는 사운드(출력 및 입력)에 상당한 대기 시간을 추가하고 일부 프로그램에서 문제를 일으킬 수 있습니다(특히 ffmpeg를 사용하여 스크린샷을 찍으려고 할 때 가장 두드러집니다).
Pulseaudio도 OSS도 내 전문분야가 아니며, 둘 다 사용하지 않습니다. "alsa 드라이버에 어떤 수정을 할 수 있습니까?"보다 더 큰 질문은 "어떤 수정을 하시겠습니까?"입니다. 일반적으로 이를 수행하는 방법이 있습니다(로터리 여부). ALSA는 매우 구성 가능합니다. ALSA 자체는 커널의 일부이며 본질적으로 사운드 카드 드라이버 인터페이스 및 컴파일입니다. alsa 이외의 것을 특별히 사용하려는 배포판이 없으면 alsa가 있지만 pulseaudio가 설치되어 있으면 시도해서는 안됩니다. 구성은 alsa를 사용합니다 직접(pulseaudio를 사용하여 상호작용) Google 검색을 통해 pulseaudio에 대한 정보를 쉽게 찾을 수 있습니다.
또한 나중에 참고할 수 있도록 다음을 찾아보는 것이 좋습니다.아치스 위키이와 같은 답변을 찾고 있다면 모든 종류의 Linux 소프트웨어에 대한 정보의 출처로 인정받고 있습니다.
마지막으로 흥미로운 점은 dmixing이라는 작은 기능이 있다는 것입니다. 자세히 설명하지는 않겠지만 이 기능을 사용하면 여러 소스에서 사운드를 출력할 수 있습니다(예: 일반적으로 두 가지 소스를 재생할 수 없음). Linux에서는 사운드가 즉시 시작됩니다.) 이 기능은 모든 장치에 대해 pulseaudio에서 기본적으로 활성화되어 있으며, 이것이 처음에 pulseaudio가 만들어진 이유 중 하나입니다. 그러나 alsa의 경우 dmixing은 기본적으로 스테레오 장치에 대해서만 활성화됩니다. 즉, 사운드 구성이 2개 이상의 채널을 사용하는 경우 수동으로 dmixing을 적용해야 합니다. 이 작업을 수행하는 방법을 알고 싶으면 나에게 댓글을 보내주세요. .
Pulse Audio에는 JACK이라는 대체 사운드 서버 소프트웨어가 있습니다. 궁금하신 분들을 위해 말씀드리자면, 펄스오디오의 지연 문제는 없습니다. 하지만 저는 그것을 사용해본 적이 없습니다. (저는 pure alsa를 직접 사용하는 경향이 있는데 이것이 저에게 가장 적합합니다.)
귀하의 질문은 다소 광범위하지만 최선을 다해 답변해 드렸습니다. 무슨 문제라도 있어?