DSP로 음질 제어와 음량 제어
오디오 신호처리를 하면서 Throw 다음으로 만들어 보는 것이 음량 제어(Gain Control)와 음질 제어(Sound Quality Control) 일 것입니다.
이 글에서는 ADAU1701로 음량 제어와 음질 제어를 해보겠습니다.
음량 제어
- 오디오의 출력 신호를 조정하는 내용을 음량 제어 중에서 특히 볼륨(Volume)이라고 부릅니다. 볼륨은 다른 디지털 필터와 연결되어 이득을 조정하는 것이 아니고 오로지 오디오 출력 신호를 조정할 목적으로 사용됩니다.
- 다른 글의 Throw 프로젝트를 불러와서 File->Save as로 적당한 이름으로 기록하면 쉽게 ADAU1701의 기본을 가져와서 확장하기 용이합니다. 이글에서는 EQ0라는 프로젝트로 기록했습니다.
- 그리고 아래와 같이 Volume을 가져와서 연결합니다.
- 이때 볼륨을 미리 맨 아래로 내려서 조정해 놓습니다. 이러면 소리가 출력되지 않습니다.
- 그리고 이전 글에서 다뤘던 컴파일을 위한 세 개의 버튼을 수행해서 ADAU1701에 회로 내용을 반영합니다.
- 그리고 화면에서 볼륨의 노브(knob)를 올리고 내리면 소리의 크기가 변하는 것을 들을 수 있습니다. 매우 간단합니다.
간단한 음질 제어
- 간단하게 음질 제어를 하는 방법은 Treble과 Bass를 사용하는 것입니다.
- Treble은 오디오 신호의 고음 부분의 이득을 증가 또는 감소시켜서 음질을 제어하는 방법으로, 오디오 필터 중에서 HSF를 사용해서 만듭니다. 드디어 이론적으로 설명했던 디지털 필터를 사용해 보는군요.
- Treble은 일반적으로 HSF의 주파수를 2kHz로 고정하고, slope도 1로 고정하고 이득 조정만 가능하도록해서 간편하게 사용하도록 제한한 필터입니다. 주파수는 취향에 따라 다르게 선택해도 됩니다.
- 이득인 -10dB~+10dB이상이 되도록 해서, 확실히 음색 변화를 느끼도록 구성하는 것이 좋습니다. 너무 과도한 이득 조정은 잘 사용하지 않기 때문에 최대 -30dB~+30dB 이상은 사용하지 않습니다.
- Bass는 저음 부분의 이득을 증가해서 음질 제어를 하며 LSF를 사용하고 주파수를 500Hz, slope는 1로 고정합니다. 이득은 Treble와 같게 설정합니다.
- 먼저 위의 볼륨 조정에서 입력 포트와 볼륨과 연결된 선을 삭제해서 음질 제어 필터를 사용하도록 준비합니다.
- SigmaStudio에서는 Threble, Bass 기능을 사용할 수 있도록 여러 형태의 필터를 제공해 줍니다. 이 중에서 이득 조정을 쉽게 할 수 있는 필터는 아래와 같습니다.
- 그리고 다음과 같이 필터 위에서 오른쪽 마우스 버튼을 눌려서 필터를 두 개로 증가시킵니다. 이때 1을 눌러야 합니다. 하나가 이미 있으니 하나를 더 늘린다는 의미입니다.
- 필터에서 위쪽을 보면 각 필터마다 세 개의 버튼이 있습니다.
- 첫 번째는 바이패스(byass)로 필터를 사용할지 말지 결정합니다. 여기서는 이 기능을 건들지 않아야 합니다.
- 세 번째 버튼은 위상(phase) 제어로, 누르면 출력 신호가 역위상(invert)가 됩니다. 이 기능도 사용하지 않습니다.
- 두 번째 버튼을 눌러서 원하는 필터로 구성 내용을 변경할 것입니다.
- 왼쪽 필터 조정을 위해서 두 번째 버튼을 누르고 아래 그림처럼 필터를 조정해서 Bass로 만들어 줍니다.
- 창을 닫고, 오른쪽 필터 조정을 선택해서 아래 그림처럼 조정해서 Treble로 만들어 줍니다.
- 이번엔 이득 조정 범위를 변경해야 합니다.
- 필터의 이득을 조정하는 노브이에서 마우스 오른쪽을 클릭하면 사용자가 이득 값을 직접 입력하거나, 이득의 변화와 이득 변화량을 조정할 수 있습니다. 아래 그림과 같이 조정합니다.
- 두 개의 필터 모두에 대해 이득 조정범위를 변경합니다.
- 모든 필터의 조정이 완료되면 모양이 아래 그림처럼 변경됩니다. 그리고 신호선을 연결합니다.
- 다시 컴파일하고 ADAU1701에 다운로드(download)하면 모든 작업이 끝납니다.
- 필터에 있는 노브와 볼륨 노브를 위아래로 이동하면 음질과 음량의 변화가 되는 것을 느낄 수 있습니다.
- 역시 매우 간단하게 DSP 구현이 가능합니다.
광고 한 번만 꾹 눌러 주세요. 저에게 도움이 됩니다.
https://github.com/gigasound/ADAU1701.git
위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다.
기타 문의 사항은 gigasound@naver.com에 남겨 주시면 고맙겠습니다.
'DSP > ADAU1701' 카테고리의 다른 글
ADAU1701(5) 레벨미터, DSP 회로그리기 오류 (0) | 2021.12.20 |
---|---|
ADAU1701(4) Equalizer, Mute (0) | 2021.12.17 |
ADAU1701(2) DSP 보드 준비와 Throw 실험 (0) | 2021.12.13 |
ADAU1701(1) 프로젝트 준비 (0) | 2021.12.09 |