Audio-Tapered 볼륨 컨트롤

IAudioEndpointVolume 인터페이스는 오디오가 테이퍼된 볼륨 컨트롤을 관리합니다. 이러한 컨트롤은 볼륨 슬라이더를 표시하는 Windows 애플리케이션에 적합합니다. 오디오 테이퍼 볼륨 컨트롤에 연결된 볼륨 슬라이더의 경우 슬라이더의 위치가 변경될 때마다 슬라이더가 이동하는 거리에 비례하여 인식된 음량이 변경됩니다. 특정 이동 거리의 경우 슬라이더 이동이 슬라이더 이동 범위의 아래쪽, 위쪽 또는 중간 부분에서 발생하는지 여부에 관계없이 인식된 음량이 증가하거나 감소하는 양은 거의 동일합니다. 인식된 음량은 오디오 신호 전원의 로그에 따라 대략 선형으로 달라집니다.

오디오 테이퍼라는 용어는 원래 오디오 전자 장치에서 볼륨 컨트롤로 사용되는 강력한 온도계에서 저항 요소의 테이퍼 모양을 지칭했습니다. 오디오 테이퍼 저항 요소는 볼륨이 0인 위치에서 가장 넓고 최대 볼륨 위치에서 가장 좁습니다. 전위계는 장치가 스피커를 통해 재생되는 오디오 신호의 전압 수준을 제어합니다. 테이퍼는 전위계 와이퍼의 위치와 스피커에서 인식된 음량 사이의 대략적인 선형 관계를 생성하도록 설계되었습니다. 와이퍼 위치와 스피커의 전압 간의 관계는 비선형입니다.

반면, 선형 테이퍼가 있는 저항 요소는 전위계 와이퍼의 이동 범위에 균일한 너비를 가집니다. 따라서 스피커의 전압은 와이퍼 위치에 따라 선형으로 달라집니다. 와이퍼 위치와 음음 사이의 관계는 비선형입니다.

마찬가지로 볼륨 슬라이더를 표시하는 Windows 애플리케이션은 스피커의 슬라이더 위치와 출력 신호 수준 간의 관계를 정의합니다. 관계는 사실상 선형 테이퍼화되거나 오디오가 테이퍼될 수 있습니다.

다음 다이어그램은 슬라이더 위치를 출력 전압에 매핑하고 선형 테이퍼 볼륨 제어에 대해 인식된 음량을 보여 줍니다.

선형 테이퍼 볼륨 컨트롤에 대한 출력 다이어그램

이전 다이어그램의 왼쪽에서 볼륨 슬라이더가 최소 위치(최소 레이블 지정)에서 최대 위치(최대 레이블 지정)로 이동함에 따라 오디오 DAC(디지털-아날로그 변환기)의 출력 전압 수준이 선형으로 증가합니다. 세로 축의 레이블 VFS 는 본격적인 DAC 출력 전압을 나타냅니다.

그러나 인식된 음량은 이전 다이어그램의 오른쪽에 표시된 것처럼 오디오 신호의 전원 로그와 거의 유사합니다. 따라서 최소 설정에 가까운 간격으로 슬라이더를 이동하면 인식된 음량이 비교적 크게 변경되지만 최대 설정 근처에서 동일한 너비의 간격을 두고 슬라이더를 이동하면 인식된 음량이 비교적 작게 변경됩니다.

이전 다이어그램의 오른쪽에서 세로 축의 음량은 0데시벨의 본격적인 전원 설정에 상대적인 데시벨(dB)으로 측정됩니다. 음량 곡선은 세로 축을 빼기 무한대로 교차하지만 0 데시벨에서 –96데시벨까지의 곡선 부분만 다이어그램에 표시됩니다. 곡선의 이 부분만 표시하기로 결정하는 것은 다소 임의적이지만 –96 데시벨은 본격적인 전력에 상대적인 16비트 DAC의 다음에서 가장 낮은 출력 수준에서 전원을 편리하게 나타냅니다. 이 값은 20으로 계산됩니다. log(1/65535).

이전 다이어그램의 최소 설정 근처에서 슬라이더 위치가 약간 변경되면 음량이 크게 변경되므로 사용자는 이 지역을 제어하기 어려운 볼륨을 찾을 수 있습니다. 상대적으로 작은 슬라이더 이동은 볼륨을 원하는 수준 위 또는 아래로 잘 푸시할 수 있습니다. 향상된 볼륨 컨트롤은 슬라이더 위치와 음량 간에 보다 선형적인 관계를 제공합니다.

다음 다이어그램은 슬라이더 위치를 출력 전압에 매핑하고 오디오 테이퍼 볼륨 제어에 대해 인식된 음량을 보여 줍니다.

오디오 테이퍼 볼륨 제어를 위한 출력 다이어그램

이전 다이어그램의 오른쪽에 표시된 것처럼 인식된 음량은 슬라이더 위치의 변경에 따라 거의 선형으로 달라집니다. 이렇게 하려면 다이어그램의 왼쪽에 표시된 것처럼 DAC 전압이 위치에 따라 비선형으로 달라야 합니다. 슬라이더가 최대 설정에서 왼쪽으로 이동하면 곡선이 0볼트에 비동기적으로 접근합니다. 최소 슬라이더 위치의 전압은 매우 작지만 정확히 0이 아닐 수도 있습니다.

IAudioEndpointVolume 인터페이스의 다음 메서드는 데시벨로 측정되는 볼륨 설정을 사용합니다.

이러한 메서드는 볼륨 설정과 인식된 음량 간에 대략 선형 관계를 생성합니다. 이러한 방법으로 관리되는 볼륨 컨트롤의 볼륨 범위(데시벨)는 오디오 엔드포인트 디바이스에 따라 달라집니다. 특정 디바이스의 볼륨 범위를 확인하려면 IAudioEndpointVolume::GetVolumeRange 메서드를 호출합니다.

반면, IAudioEndpointVolume 인터페이스의 다음 메서드에 대한 볼륨 설정은 볼륨 범위에서 더 부드럽게 테이퍼된 곡선을 따릅니다.

Windows Vista에서 이러한 메서드는 앞의 다이어그램에 표시된 오디오 테이퍼 곡선과 선형 테이퍼 곡선 사이에 중간인 곡선을 사용합니다. 곡선의 모양은 이후 버전의 Windows에서 변경될 수 있습니다. 앞의 목록의 처음 네 가지 메서드는 0.0(최소 볼륨)에서 1.0(최대 볼륨) 범위의 정규화된 값으로 볼륨 수준을 표현합니다. 목록의 마지막 두 메서드에 대해 IAudioEndpointVolume::GetVolumeStepInfo 메서드를 호출하여 볼륨 범위의 단계 수를 가져옵니다.

다음 인터페이스는 볼륨 설정에 선형 테이퍼 곡선을 사용합니다.

이러한 인터페이스에 대한 자세한 내용은 세션 볼륨 컨트롤을 참조하세요. 그리고 다양한 버전의 Windows에서 볼륨 범위 및 기본 볼륨 수준에 대한 자세한 내용은 기본 오디오 볼륨 설정을 참조하세요.

볼륨 컨트롤