저는 컴퓨터 오디오 애호가이며 오디오용 Windows(ASIO4ALL 포함) 및 OSX를 사용해 왔습니다. 이제 Ubuntu 13을 HTPC/스테레오 오디오로 만들고 있습니다. 먼저 Pulse 오디오를 비활성화하고 ALSA와 함께 GooMusicplayer를 사용했습니다.
내 DAC는 24비트 96khz를 지원합니다. 출력 샘플링 속도를 설정하기 위한 ALSA 구성을 찾을 수 없는 것 같습니다. 어떻게 구성할 수 있나요?
답변1
Alsa는 기본적으로 소스와 동일한 샘플링 속도 및 형식을 사용합니다. 그러나 샘플링 속도를 강제로 높이거나 낮추는 것은 가능합니다.
여기 당신이 할 수 있는 한 가지 방법이 있습니다. (안에/etc/asound.conf또는~/.asoundrc)
pcm.device{
format S24_LE
rate 96000
type hw
card 0
device 0
}
그런 다음 해당 PCM을 기본(스테레오) PCM과 같은 다른 PCM의 슬레이브로 만듭니다. (경고: 24비트 형식은 호환되는 카드가 없으면 작동하지 않습니다. 저는 일반적으로 대부분의 카드에서 작동하는 S32_LE를 사용합니다.)
pcm.!default{
type plug
slave.pcm "device"
}
그러나 위의 내용은 스테레오 소스에만 작동합니다(따라서 기본적으로 서라운드51 pcm을 사용하는 5.1 소스에서 재생하는 경우 상황이 좀 더 복잡해집니다).
스테레오가 아닌 소스의 샘플링 속도를 강제하는 방법에 대해 내가 아는(그리고 개인적으로 사용하는) 한 가지 방법은이 asound.conf/asoundrc(데드 링크) 및 수정. (참고: 해당 파일은 제가 직접 작성한 것이 아닙니다.)
(내 것을 찾을 수 있습니다asound.conf아래에서 수동으로 수정하는 번거로움을 겪는 대신 이 질문에 직접 복사하면 됩니다.)
먼저 "dmixed" pcm을 복사하고 하드웨어 섹션을 원하는 샘플 속도와 형식으로 수정합니다.
그런 다음 !default, around40 및 around51 pcms를 그대로 복사합니다. 이는 모든 출력을 효과적으로 dmix하고 모든 2.0, 4.0 및 5.1 소스의 샘플링 속도를 dmixed pcm에 설정된 샘플링 속도로 상향 변환합니다.
해당 구성 파일에서 "upmix20_51" pcm은 사운드를 선택적으로 다른 채널에 복제하여 2.0 소스를 5.1로 업믹스하는 효과적인 방법이므로 흥미로울 수도 있습니다. 이를 사용하려면 유형을 "플러그"에서 "라우트"로 변경한 다음 기본 pcm의 슬레이브로 설정해야 합니다.
pcm.!default{
type plug
slave.pcm "upmix20_51"
}
해당 pcm이 사용하는 "surround51"은 "dmixed"를 슬레이브로 사용하므로 강제 샘플링 속도가 이 pcm에도 적용됩니다.
슬프게도 현재 상황에서는 모노 소스가 왼쪽 스피커에서만 출력되지만 모노 사운드 소스는 이러한 아빠들에게는 드물기 때문에 문제가 되지 않습니다. 제가 방금 제시한 예는 정확히 제가 제 자신의 예를 갖고 있는 방식과 같습니다.asound.conf5.1 스피커 설정이 있고 96khz 샘플링 속도를 강제로 적용하려는 경우 즐기십시오.
이론적으로 나는 샘플 속도를 강제로 높이는 것이 아무 것도 얻지 못할 것이라고 생각합니다(샘플 속도가 낮은 소스의 오디오 품질을 향상시키는 것은 터무니없는 생각이기 때문에). 96khz 출력을 사용하도록 애플리케이션을 구성하는 것이 훨씬 좋습니다.
하지만 제 경우에는 96khz나 44.1khz 주파수를 강제로 설정하지 않으면 딱딱거리는 소리(Xcom: Enemy Unknown과 같은 특정 게임에서)에 문제가 있었습니다. 96khz를 강제로 적용해도 전혀 손실이 없기 때문에(44.1/48khz 소스의 품질을 높이거나 낮추지 않음) 완벽한 솔루션이었습니다.
답변2
장치의 샘플링 속도는 기본적으로 애플리케이션이 구성한 것, 즉 원본 파일의 샘플링 속도입니다.
답변3
다른 답변은 다소 정확합니다.
대부분의 사운드 카드에는 기본적으로 다중 채널이 없습니다. 다중 채널 믹서가 있는 카드 중 하나가 있는 경우 여기를 읽을 필요가 없습니다. ALSA는 소프트웨어에서 여러 사운드를 믹싱합니다.
일반적으로 2가지 옵션이 가능합니다:
믹싱 소프트웨어 출력을 모두 우회하면 더 넓은 범위의 사운드를 즐길 수 있습니다(예를 들어 6개 이상의 스피커로 채널링하는 경우 더 높은 샘플 속도 및 비트 전송률).
사운드 카드에는 하나의 프로그램만 사용할 수 있습니다!
소프트웨어 믹싱을 활성화하고 아마 눈치채지 못할 품질을 느슨하게 만드세요. (Sennheiser HD598을 사용하여 테스트한 Asus Xonair DX는 아무런 차이도 느끼지 못했으며 96khz 6채널 샘플 속도 flac와 192khz 2채널 플랙을 사용했습니다.)
하나 이상의 프로그램이 그런 식으로 작동할 수 있습니다! 나는 오디오 애호가가 아닙니다. 어쨌든 아직은 아닙니다.
하드웨어가 동시에 여러 스트림의 혼합을 지원하지 않는 경우 두 번째 옵션이 기본적으로 활성화됩니다.
메모:세 번째 옵션도 있습니다. ALSA는 소프트웨어에서 리샘플링을 사용하여 구성할 수 있지만 내 경험에 따르면 모든 앱이 최대 샘플링 속도와 비트 전송률로 리샘플링되도록 조정할 수 있지만 FPS 게임에서는 눈에 띄는 지연이 발생했는데 이는 좋지 않습니다. 게이머를 위한 것입니다.(3분의 1초 정도, 총에서 총알을 쏠 때 정말 짜증이 났습니다).
세 번째 옵션은 다음과 같은 몇 가지 이유로 실용적이지 않을 수 있습니다.
- 잘 테스트하지는 않았지만 일부 앱에는 여전히 문제가 있을 수 있다고 생각합니다.
- 대부분의 오디오 컬렉션은 FLAC를 많이 사용하지 않는 한 16비트 전송률의 44.1/44khz 샘플링 속도로 되어 있지만, 그래도 FLAC는 더 높은 샘플링 속도를 가져야 합니다.
- 업샘플링은 더 나은 사운드 품질을 제공하지 않습니다(이론적으로는 그렇습니다. 그러나 값싼 헤드폰을 사용하는 경우에는 눈치 채지 못할 것입니다. 99% 확신합니다).
.asoundrc
내 파일 에 뭔가 잘못한 것이 아니라면 게임 지연은 매우 현실적입니다 .
상황을 더욱 혼란스럽게 만들기 위해 좋은 의미로 상황이 더욱 악화될 수도 있습니다. 다양한 설정(채널/속도/샘플링 속도/물리적 출력 및 입력 구성)으로 "장치"를 생성할 수 있습니다. 그리고 일부 앱은 사용자가 수동으로 생성한 장치를 사용할 수 있지만 일부 앱은 그렇지 않습니다. 그것은 나를 정말 짜증나게합니다.
가장 악명 높고 문제가 많은 것: 플래시 플레이어.
이 답변은 USB 연결 이어폰을 사용하지 않는 사람에게 해당됩니다. 그들은 자체적으로 내장된 사운드 카드를 가지고 있으며 나는 그것에 대해 제한된 지식을 가지고 있습니다. 아마도 그것은 내장된 마더보드 사운드 카드를 가진 사람들에게 더 사실일 것입니다. USB 헤드셋에 여전히 적용될 수 있지만 모든 것을 고려하십시오. 하드웨어에는 옵션이 부족하기 때문에 생산된 모든 사운드 카드의 10%는 하드웨어 믹싱을 사용하게 될 것이라고 추측합니다. 광 출력은 하나의 큰 예외입니다. AFAIK 광 출력에는 믹서가 필요하지 않습니다. 디멀티플렉싱은 하드웨어에서 수행되는 "수신기"에서 진행됩니다. 내 말을 믿지 마세요.
답변4
@Cestarian 위의 정보에 감사드립니다. 이는 USB 세미프로 오디오 인터페이스가 내 녹음(96K)으로 표준화된 샘플링 속도로 이동하는 데 도움이 될 것입니다. 나는 이것이 스튜디오용 기계 설정에 매우 통찰력이 있다고 생각합니다.
당신이 나에게 도움을 주었기 때문에 나는 다음 질문에 대답하겠습니다.
" 이론적으로는 샘플 속도를 강제로 높이는 것이 아무 것도 얻지 못할 것이라고 생각합니다(샘플 속도가 낮은 소스의 오디오 품질을 향상시킬 것이라는 것은 터무니없는 생각이기 때문입니다). 96khz 출력을 사용하도록 애플리케이션을 구성하는 것이 훨씬 좋습니다.
하지만 제 경우에는 96khz나 44.1khz 주파수를 강제로 설정하지 않으면 딱딱거리는 소리(Xcom: Enemy Unknown과 같은 특정 게임에서)에 문제가 있었습니다. 96khz를 강제로 적용해도 전혀 손실이 없기 때문에(44.1/48khz 소스의 품질을 높이거나 낮추지 않음) 완벽한 솔루션이었습니다."
디지털 신호를 가져와 원래보다 높은 배율로 변환하는 응용 프로그램이 하나 있습니다. 바로 디지털 지터 감소입니다. 이러한 목적으로 마스터링 스튜디오에서 사용되는 외부 샘플 속도 변환기 박스에 비해 컴퓨터의 정밀도를 알아내는 것은 흥미로울 것입니다.
두 번째: 샘플링 속도가 정의되지 않은 경우 발생해야 하는 처리 프레임이 있어야 한다고 생각합니다. 논리적으로 하드 드라이브에서 들어오는 데이터를 감지한 다음 데이터 스트림으로 출력하는 대신 데이터 스트림으로 형식을 지정해야 합니다(올바르지 않은 경우). 사운드는 CPU가 아닌 실시간 처리를 사용합니다. 하지만 샘플링도 진행하고 있으므로 게임 사운드 파일의 소스 샘플링 속도 지터를 수정할 수 있습니다.