SIGNAL PROCESSING SPECIFICATION

ANALOG SOUL DSP ENGINE

여덟 개 처리 단의 필터 특성, 전달 함수, 배음 생성 구조와 대역 확장 알고리즘의 판정 기준 및 합성 규칙을 기술한다.

모든 수치는 실제 설정값이며 근사치가 아니다. 파라미터 표기에서 대문자는 정규화된 값(0~1)을 뜻하고, 단위가 붙은 값은 원값이다.

독자는 필터의 종류와 차수, 압축기의 시정수, 배음 구조에 관한 기본 지식을 갖췄다고 가정한다. 개념 수준의 설명은 기술 설명서를 참조하라.

01신호 체인

직렬 8단 구성이다. 앞 단의 출력이 뒤 단의 입력이 되므로 배치 순서가 최종 음색을 결정한다. 마스터링 단은 배치와 무관하게 항상 최종단이다.

입력 ─▶ COMP ─▶ BBE ─▶ TUBE ─▶ EXCITER ─▶ SG ─▶ VINYL ─▶ ATMOS ─▶ MASTER ─▶ 출력 └─ 각 단 진입 직전 입력 게인 ±24 dB ─┘ 고정 최종단

배치 순서의 근거

성격배치 근거
COMP다이내믹스 레벨 변동을 먼저 줄여야 뒤따르는 비선형 단의 동작점이 일정해진다. 포화량이 구간마다 달라지는 것을 막는다.
BBE위상 보정 군지연 보정은 원음의 위상 관계가 보존된 상태에서 유효하다. 포화로 배음이 추가된 뒤에는 보정 대상이 모호해진다.
TUBE비선형 기본 배음 구조를 먼저 형성한다.
EXCITER비선형 · 고역 TUBE가 만든 배음까지 재료로 삼아 고역을 확장한다.
SG대역별 비선형 앞 단들이 만든 결과를 대역별로 균형 조정한다.
VINYL열화 · 부가 잡음 음색 형성이 끝난 뒤 질감을 덮어야 잡음이 뒤쪽 비선형 단에서 증폭되지 않는다.
ATMOS공간 잔향은 완성된 직접음에 부가해야 한다. 잔향을 먼저 걸면 뒤 단의 압축이 잔향 성분에 반응한다.
MASTER대역 압축 · 리미팅 최종 레벨과 피크 제어. 이후 처리가 있으면 천장이 무의미해진다.

순서 변경의 음향적 결과

  • TUBE를 COMP 앞으로. 포화가 먼저 피크를 둥글게 만들어 압축기에 들어가는 크레스트 팩터가 낮아진다. 같은 스레숄드에서 리덕션이 줄고 결과적으로 더 단단한 어택이 남는다.
  • VINYL을 선두로. 부가 잡음이 이후 모든 비선형 단을 통과한다. 핑크 노이즈가 포화 단에서 배음을 만들어 잡음 스펙트럼이 고역으로 확장된다.
  • ATMOS를 MASTER 직전이 아닌 앞쪽으로. 잔향 성분이 대역 압축의 검출 신호에 포함되어, 잔향 꼬리에서 게인이 되돌아오는 펌핑이 생긴다.

게인 스테이징

각 단 진입 직전에 ±24 dB 범위의 입력 게인이 있다. 해당 단이 비활성이면 게인도 개입하지 않으므로 토글 상태가 레벨에 영향을 주지 않는다.

선형 배율 = 10^(dB/20) −6 dB → 0.501 0 dB → 1.000 +6 dB → 1.995

입력 게인의 의미는 단의 성격에 따라 다르다.

입력 게인의 효과
TUBE · EXCITER · SG비선형 소자의 동작점 이동. 포화 깊이와 배음 차수 분포가 바뀐다. 사실상 드라이브 제어와 등가.
COMP스레숄드 상대 이동. +3 dB 입력은 스레숄드 −3 dB와 동일한 리덕션을 낳는다.
BBE · VINYL · ATMOS선형 처리가 지배적이므로 레벨만 변한다.
MASTER대역 압축기 4개의 스레숄드가 고정값이므로, 입력 게인이 전체 리덕션 깊이를 결정한다.

02처리 단 사양

블록도에서 세로 분기는 병렬 경로를 뜻한다. 필터 표기는 종류(주파수, Q, 게인) 형식이다.

COMPRESSOR

소프트니 피드포워드
in ─▶ 압축기 ─▶ 메이크업 ─▶ out 10^(MAKE/20)
파라미터범위기본
스레숄드−60 ~ 0 dB−18 dB
레시오1:1 ~ 20:14:1
어택0.1 ~ 200 ms10 ms
릴리즈10 ~ 3000 ms250 ms
0 ~ 40 dB10 dB
메이크업0 ~ +24 dB+4 dB

니가 10 dB이면 스레숄드 ±5 dB 구간에서 레시오가 1:1에서 설정값으로 점진 변화한다. 저역이 많은 소스에서 니를 좁히면 킥 타격마다 리덕션이 계단식으로 걸려 펌핑이 두드러진다.

게인 리덕션 표시는 리덕션 dB에 4를 곱한 백분율이다. 표시가 가득 찬 상태는 약 25 dB 리덕션에 해당한다. 정상 운용에서는 3~6 dB 구간에서 움직이는 것이 적절하다.

BBE SONIC MAXIMIZER

군지연 보정 + 셸빙

저역을 올패스 2단으로 지연시킨 경로와 직통 경로를 합산한다. 올패스는 진폭 응답이 평탄하고 위상만 회전시키므로, 합산 시점에서 비로소 진폭 변화가 나타난다. 스피커의 저역 군지연을 상쇄하려는 원리다.

in ┬─────────────────────────────────┐ 1.0 └▶ 올패스1 ─▶ 올패스2 ─▶ LO×0.6 ─┤ ▼ 합산 1/(1+LO×0.6)피킹 ─▶ 하이셸프 ─▶ out
요소사양
올패스 1단f = 80 + LO×200 Hz, Q = 0.3 + LO×0.8
올패스 2단f = 40 + LO×100 Hz, Q = 0.5 + LO×0.5
지연 경로 레벨LO × 0.6
합산 정규화1 / (1 + LO×0.6)
프레즌스피킹 3.2 kHz, Q 0.6, 최대 +9 dB
하이 데프하이셸프 8 kHz, 최대 +10 dB
합산 정규화의 의미

지연 경로 레벨이 LO×0.6이므로 두 경로 합의 최대 진폭은 1 + LO×0.6이 된다. 합산 게인을 그 역수로 두면 LO CONTOUR를 올려도 전체 레벨이 변하지 않는다. 이 파라미터는 순수하게 군지연 특성만 바꾸도록 설계되었다.

프레즌스의 3.2 kHz는 자음 명료도와 악기의 어택이 집중되는 대역이다. Q 0.6은 약 2옥타브 폭이라 광대역으로 걸린다. 보컬 소스에서 +6 dB를 넘기면 치찰음이 동반 상승한다.

VACUUM TUBE

비대칭 포화 + 저역 우회

저역을 포화 경로에서 분리하는 병렬 구조다. 저역까지 포화시키면 인터모듈레이션 산물이 중역에 집중되어 명료도가 떨어지므로, 120 Hz 부근 이하를 따로 빼내 직통시킨다.

in ┬▶ LPF 120+D×80 ──────────────────────────────────┐ │ ▼ └▶ HPF 100+D×80 ─▶ 포화 ─▶ 로우셸프 ─▶ 하이셸프 ─▶ 피킹 ─▶ 0.3+MIX×0.7 ─▶ 합산 ─▶ 10^(OUT/20) ─▶ out
요소사양목적
저역 분리 LPFf = 120 + D×80 Hz, Q 0.5우회 경로 확보
포화 전 HPFf = 100 + D×80 Hz, Q 0.5저역 인터모듈레이션 억제
포화 후 로우셸프6 kHz, −(1 + D×4) dB과잉 중고역 배음 억제
포화 후 하이셸프9 kHz, −(2 + D×6) dB고차 배음 억제
저역 보상피킹 100 Hz, Q 0.8, +(1.5 + D×3) dBHPF로 잃은 저역 회복
웨트 레벨0.3 + MIX×0.7MIX 0에서도 30% 유지

전달 함수

삼극관의 비대칭 전달 특성을 근사한다. 음의 반주기에 1.15배 드라이브를 적용해 비대칭을 만든다. 대칭 포화는 홀수 배음만 생성하지만, 비대칭이면 짝수 배음이 나타난다. 2차 배음은 옥타브 관계라 협화음으로 들려 따뜻함으로 인지된다.

d = 1 + DRIVE×1.2 (1.0 ~ 2.2) b = (BIAS−50)/100 × 0.15 (−0.075 ~ +0.075) ⎧ tanh((x+b)·d) (x+b ≥ 0) y(x) = ⎨ ⎩ tanh((x+b)·d·1.15) (x+b < 0) 출력 = y(x) / tanh(d) 평균 게인 보상

tanh(d)로 나누는 정규화가 없으면 드라이브를 올릴수록 출력이 줄어 A/B 비교가 왜곡된다.

BIAS2차3차성격
0−30.7 dB−22.8 dB짝수 배음이 뚜렷
50−39.9 dB−23.1 dB3차가 17 dB 우세
100−26.3 dB−23.9 dB짝·홀이 비슷

실측값이다(입력 진폭 0.7, DRIVE 30). 짝수 배음의 실질적 제어자는 BIAS이며, 비대칭 계수 1.15는 BIAS 중앙에서도 짝수가 완전히 사라지지 않게 하는 보조다. 따뜻함을 원한다면 DRIVE보다 BIAS를 중앙에서 밀어내는 편이 직접적이다. 여기서 생기는 직류는 포화 직후 12 Hz 고역 통과가 차단한다.

앨리어싱 억제

포화는 4배 오버샘플링으로 처리하고, 그 앞에 sr/3 차단의 대역 제한 필터를 둔다. 두 조치의 근거는 이렇다.

4배 오버샘플링 → 내부 레이트 4·sr, 내부 나이퀴스트 2·sr 내부 나이퀴스트를 넘은 성분 f 는 4·sr − f 로 접힌다. 다운샘플 후에도 남으려면 4·sr − f < sr/2 → f > 3.5·sr 입력 상한 fc 일 때 가청 앨리어싱 시작 차수 = 3.5·sr / fc fc = sr/2 (제한 없음) → 7.0차 fc = sr/3 (대역 제한) → 10.5차

입력 상한이 나이퀴스트인 한 시작 차수는 샘플레이트와 무관하게 항상 7차다. sr/3으로 묶으면 10.5차로 밀려나며, 이 관계 역시 샘플레이트에 의존하지 않는다. tanh 포화에서 7차와 11차의 레벨 차는 약 9 dB이므로 잔류 앨리어싱이 그만큼 낮아진다.

차단점은 48 kHz에서 16 kHz, 96 kHz에서 32 kHz, 192 kHz에서 64 kHz가 된다. TUBE는 포화 후 6 kHz와 9 kHz 셸빙으로 고역을 이미 크게 깎으므로 음색 변화가 거의 없다. EXCITER와 SOUNDGOODIZER 고역 밴드는 대역이 사라지지 않도록 차단점에 하한(각 대역 하단의 1.4배)을 둔다.

EXCITER

병렬 고역 배음 생성
in ┬────────────────────────────────────────┐ 1.0 └▶ HPF FREQ ─▶ 포화 ─▶ BPF FREQ×1.5, Q0.8 ─▶ MIX×0.5 ─┴▶ out
y(x) = tanh( x · (1 + DRIVE×0.05) · 3 )

고정 계수 3이 기본 드라이브를 결정하고, 사용자 파라미터는 그 위에 최대 5%만 더한다. 따라서 DRIVE의 영향은 제한적이고 실효 효과량은 MIX가 지배한다. MIX 최대에서도 웨트 레벨은 0.5이므로 원음 대비 −6 dB로 합산된다.

BPF 중심을 하이패스 차단점의 1.5배에 두어 원음 대역과의 중첩을 줄인다. 다만 Q 0.6은 광대역이라 차단 특성이 완만하다.

EXCITER와 대역 확장의 차이

둘 다 고역을 만들지만 원리가 다르다. EXCITER는 통과 대역 내부 신호를 비선형 왜곡시켜 그 배음을 더하는 것이고, 대역 확장은 스펙트럼 영역에서 누락된 대역을 식별해 전사하는 것이다. EXCITER는 원본에 고역이 남아 있어야 작동하지만, 대역 확장은 고역이 완전히 잘린 소스에서도 작동한다.

SOUNDGOODIZER

3대역 병렬 포화
in ┬──────────────────────────────────────┐ 1.0 ├▶ LPF loFreq ──▶ 포화 ─▶ LOW×0.7 ┐ │ ├▶ BPF 중심, loQ포화 ─▶ MID×0.5 ┼─▶ AMT×0.6 ┤ └▶ HPF hiFreq ──▶ 포화 ─▶ HI×0.4 ┘ │ ▼ 합산 1/(1+AMT×0.3)피킹 2.5kHz ─▶ 압축기 ─▶ out
프리셋성격분할점대역 Q드라이브
AWarm & Punchy250 Hz / 4 kHz0.7 / 0.80.40
BBright & Airy180 Hz / 6 kHz0.6 / 1.00.55
CFull & Rich300 Hz / 3.5 kHz0.8 / 0.70.50
DCrispy & Detailed200 Hz / 8 kHz0.6 / 1.20.60

포화 전달 함수

소프트클립과 3차 다항식을 블렌딩하고, 여기에 동작점 이동을 더한다. 두 함수 모두 기함수라 블렌딩만으로는 홀수 배음만 나온다. 짝수 배음은 b = 0.08 × SAT의 바이어스가 만든다.

SAT2차3차4차
0.2−38.0 dB−17.2 dB−44.7 dB
0.6−28.9 dB−17.8 dB−35.3 dB
1.0−26.7 dB−20.4 dB−33.6 dB

실측값이다(8192점 DFT, 입력 진폭 0.7, DRIVE 0.4). SAT를 올리면 짝수 배음이 따라 올라와 두께가 생긴다. 바이어스가 만드는 직류는 저역 밴드 포화 직후의 12 Hz 고역 통과가 제거한다.

k = 1 + SAT×2.5 d = 1 + DRIVE×1.5 xd = x·d soft = xd / (1 + |xd|·k) 짝수 배음 우세 cubic = xd − xd³/(3k) 홀수 배음 우세 y = soft·(1 − SAT×0.3) + cubic·(SAT×0.3) 출력 = clamp(y, −1, +1)
후단사양
다이내믹 EQ피킹 2.5 kHz, Q 0.7, +AMOUNT×3 dB
출력 압축스레숄드 −10 − AMOUNT×8 dB, 레시오 2:1
어택 3 ms, 릴리즈 80 + STEREO×220 ms, 니 6 dB

대역 분할

Linkwitz-Riley 4차 상보 분할이다. 버터워스 2차(Q 0.707)를 2단으로 쌓아 분할점에서 −6 dB로 만나게 한다. 세 대역의 진폭 합이 전 대역에서 1이 된다.

저역 = LR-LP(loFreq) 중역 = LR-HP(loFreq) → LR-LP(hiFreq) 고역 = LR-HP(hiFreq) |LP| = 1/(1+w⁴) |HP| = w⁴/(1+w⁴) w = f/fc |LP| + |HP| = 1 모든 주파수에서
이전 구성과의 차이

예전에는 LPF + BPF + HPF 병렬이라 합산 응답이 평탄하지 않았다. 프리셋 A 기준으로 합이 0.91에서 1.57까지 흔들렸고, 2 kHz 부근이 약 +4 dB 부풀어 있었다. 지금은 전 대역에서 1.000이다.

STEREO 파라미터

출력 압축기 뒤에서 M/S 폭을 조절한다. 0이면 모노, 50에서 원본, 100이면 사이드 성분이 2배가 된다. 압축기 릴리즈는 200 ms로 고정되어 폭 조절과 분리되어 있다.

VINYL RECORD

고역 감쇠 + 부가 잡음
in ─▶ LPF 20000−WEAR×8000 ─▶ 하이셸프 8kHz, −WEAR×4dB ─▶ out ▲ 핑크 노이즈 ─▶ CRACKLE×0.03 ────┘
요소사양
대역 제한LPF 20 kHz → 12 kHz (WEAR 0 → 1)
고역 감쇠하이셸프 8 kHz, 0 ~ −4 dB
잡음 레벨CRACKLE × 0.03 (최대 −30.5 dB)
잡음 스펙트럼핑크 (−3 dB/oct)

잡음은 Voss-McCartney 방식의 핑크 노이즈 근사다. 서로 다른 시정수를 가진 6개의 1차 저역 통과 성분을 백색 잡음에 걸어 합산해 −3 dB/oct 기울기를 만든다. 백색 잡음을 그대로 쓰면 고역이 과도해 먼지·흠집 잡음의 스펙트럼과 맞지 않는다.

WEAR는 LPF 차단점과 셸빙 감쇠를 동시에 움직인다. 차단점 이동은 12 kHz까지이므로 가청 대역 상단에 직접 작용한다.

피치 변조 (WOBBLE)

중심 지연 6 ms의 가변 지연을 두 개의 정현파로 변조한다. 와우는 33⅓ rpm의 회전 주기인 0.556 Hz, 플러터는 4.2 Hz다.

피치 편차 = 변조 진폭 A × 2πf 와우 f = 0.556 Hz, A = WOBBLE × 0.9 ms → 최대 ±0.31% 플러터 f = 4.2 Hz, A = WOBBLE × 0.06 ms → 최대 ±0.16%

실측 LP 플레이어의 와우·플러터는 대체로 ±0.1 ~ ±0.3% 범위이므로 최대 설정이 상태가 나쁜 기기에 해당한다.

채널 누화 (CROSSTALK)

교차 게인 x = CROSSTALK × 0.35 합산 보정 n = 1/(1+x) 출력 L = n·L + n·x·R 출력 R = n·R + n·x·L
CROSSTALK누설량비고
0완전 분리디지털 소스
25−21.2 dB양호한 카트리지
50−15.1 dB일반적 수준
100−9.1 dB분리도가 나쁜 상태

합산 보정으로 누화를 올려도 전체 레벨이 커지지 않는다. 누화가 증가하면 사이드 성분이 상쇄되어 스테레오 폭이 좁아진다.

DOLBY ATMOS

합성 임펄스 응답 + 선행음

4갈래 병렬 구조다. 직접음, 초기 반사, 후기 잔향, 선행음 경로가 각각 레벨을 거쳐 합산된다. 2채널 내에서의 공간 시뮬레이션이며 객체 기반 다채널 규격과는 무관하다.

in ┬▶ 1−MIX ─────────────────────────────────┐ ├▶ 컨볼루션 ─▶ 하이셸프 8k, H×6dB ─▶ MIX·REV·0.50 ┤ ├▶ 컨볼루션 ─▶ MIX·REV·0.25 ─────────────────┼─▶ out └▶ L 0 ms ┐ R 1+OBJ×4 ms ┴▶ MIX·OBJ·0.25 ─────────────┘

임펄스 응답 구성

RT60 = 프리셋값 × (0.4 + SPACE×0.8) IR 길이 = RT60 + 0.5 초
기준 RT60SPACE 0 ~ 1 실효초기 반사 대표값
STUDIO0.4 s0.16 ~ 0.48 s8 ms
CLUB0.9 s0.36 ~ 1.08 s15 ms
CINEMA1.8 s0.72 ~ 2.16 s22 ms
CONCERT2.4 s0.96 ~ 2.88 s35 ms
STADIUM3.2 s1.28 ~ 3.84 s55 ms
성분지연레벨
직접음0 ms1.00
초기 반사 10개7, 13, 17, 23, 31, 41, 53, 67, 79, 97 ms0.85 → 0.24
좌우 편차L 1.1−0.01i, R 0.9+0.01i
천장 반사6 + HEIGHT×12 msHEIGHT × 0.55
후방 반사40 + DEPTH×60 msDEPTH × 0.45

초기 반사 지연값이 모두 소수인 것은 의도된 설계다. 지연값 사이에 정수배 관계가 있으면 특정 주파수에서 반사음이 동상으로 합산되어 콤 필터링이 발생한다. 소수로 구성하면 그 공진이 분산된다.

천장 반사 지연 6~18 ms는 2~6 m 높이의 천장에서 오는 1차 반사에 해당한다. 후방 반사 40~100 ms는 7~34 m 거리의 뒷벽에 대응하며, 50 ms를 넘어서면 선행음 융합 한계를 벗어나 별개의 반향으로 인지되기 시작한다.

선행음 경로

우측 채널만 1~5 ms 지연시킨다. 이 범위는 선행음 효과가 작동하는 구간이라 에코가 아닌 정위 이동으로 인지된다. 다만 모노 합산 시 이 지연이 1/(2τ) 간격의 콤 필터를 만든다. τ = 3 ms이면 약 167 Hz 간격으로 딥이 생긴다. OBJECT MIX를 올린 상태에서는 모노 호환성 확인이 필요하다.

MASTERING CHAIN

4대역 압축 + 리미팅

Linkwitz-Riley 4차 특성으로 4대역 분할한다. 버터워스 2차(Q = 0.707)를 직렬 2단으로 구성해 −24 dB/oct 기울기를 얻고, 분할점에서 −6 dB로 만나 합산 시 평탄한 응답이 된다.

대역범위스레숄드레시오어택릴리즈
1~120 Hz−24 dBmin(LOW, 4)30 ms80 ms10
2120~500−22 dBLOW15 ms120 ms8
3500~5k−20 dBMID5 ms180 ms6
45k~−22 dBmin(HIGH, 3)2 ms150 ms5

어택이 저역에서 길고 고역으로 갈수록 짧다(30 → 15 → 5 → 2 ms). 저역은 주기가 길어 빠른 게인 변화가 파형을 변형시키고 왜곡으로 들린다. 120 Hz의 한 주기는 8.3 ms이므로 30 ms 어택은 약 3.6주기에 해당해 파형 왜곡 없이 포락선에만 반응한다. 반대로 고역은 트랜지언트가 짧아 2 ms로도 충분히 포착한다.

밴드 1과 4는 레시오에 상한이 걸려 있다. 저역을 4:1 넘게 압축하면 펀치가 사라지고, 고역을 3:1 넘게 압축하면 심벌 감쇠 구간에서 게인 회복이 들리기 시작한다. 슬라이더를 10까지 올려도 실제 적용은 각각 4:1, 3:1에서 멈춘다.

밴드 1 출력에만 0.95 배율이 걸려 있다. 저역이 합산 후 과도해지는 것을 미리 −0.45 dB 낮춰 보정하는 값이다.

리미터

항목
스레숄드CEILING (−6 ~ 0 dB, 기본 −0.3)
레시오20:1
어택 / 릴리즈1 ms / 50 ms
0 dB (하드)

브릭월 세이프티

압축기 기반 리미터는 룩어헤드가 없어 어택(1 ms)보다 짧은 피크를 놓치고, 레시오도 20:1이라 무한대가 아니다. 그래서 체인 최종단에 천장 기준으로 정규화한 소프트 클리퍼를 둔다.

정규화 x = 입력 / 10^(CEILING/20) ⎧ |x| (|x| ≤ 0.85) |y| = ⎨ ⎩ 0.85 + 0.15·tanh((|x|−0.85)/0.15) (|x| > 0.85) 출력 = y × 10^(CEILING/20)

0.85 아래는 완전 선형이라 착색이 없고, 그 위는 1.0에 점근하므로 아무리 큰 입력이 들어와도 출력이 천장을 넘지 않는다. 4배 오버샘플링으로 클리핑 앨리어싱을 억제한다.

배치는 스테레오 폭 조절 다. 폭을 넓히면 사이드 성분이 더해져 피크가 다시 상승하므로, 그 앞에 두면 천장 보장이 깨진다.

천장 설정

손실 압축으로 재인코딩하면 파형 재구성 과정에서 피크가 0.5~1.5 dB 상승할 수 있다. 클리퍼가 이 프로그램의 출력은 보장하지만 재인코딩 이후까지 보장하지는 않으므로, 배포용은 −1.0 dB를 권한다.

스테레오 폭

M = (L+R)/2 S = (L−R)/2 출력 L = M + S·w 출력 R = M − S·w w = STEREO WIDTH / 100 (0 = 모노, 1 = 원본, 2 = 사이드 2배)

리미터 에 배치한다. 앞에 두면 폭을 넓혀 커진 피크를 리미터가 다시 눌러 설정값과 결과가 어긋난다.

모노 호환성

w를 1보다 크게 하면 사이드 성분이 증폭된다. 모노 합산 시 사이드는 완전히 상쇄되므로, 중앙에서 벗어난 악기가 사라지거나 크게 줄어든다. w > 1.3 설정에서는 모노 확인이 필요하다.

03대역 확장

손실 압축으로 제거된 고역을 하모닉 전사로 합성한다. 단시간 푸리에 변환 영역에서 동작하며, 프레임 길이 4096, 홉 1024(75% 중첩), 한 창을 사용한다.

항목96 kHz192 kHz
주파수 분해능23.4 Hz46.9 Hz
프레임 시간 길이42.7 ms21.3 ms
홉 시간 간격10.7 ms5.3 ms
표현 가능 상한48 kHz96 kHz

192 kHz에서는 같은 프레임 길이가 시간상 절반이 되므로 시간 분해능이 높아지는 대신 주파수 분해능이 절반으로 떨어진다. 저역 배음 구조의 식별력이 낮아지지만, 대역 확장이 관심을 두는 영역은 고역이라 실무상 문제가 되지 않는다.

손실 압축의 흔적

지각 부호화기는 마스킹 임계 아래의 성분을 제거하고, 비트 예산이 부족하면 고역 전체를 대역 제한한다. 결과적으로 스펙트럼에 수직에 가까운 절벽이 남는다.

소스전형적 차단확장 여지
MP3 128 kbps15 ~ 16 kHz가청 대역 내 여지가 크다
MP3 192 kbps17 ~ 18 kHz일부 가청
MP3 320 kbps19 ~ 20 kHz거의 가청 한계 밖
AAC 256 kbps18 ~ 20 kHz거의 가청 한계 밖
무손실없음나이퀴스트 위에만 작용

자연 음원의 스펙트럼은 고역으로 갈수록 완만하게 감쇠한다. 악기의 배음 포락선은 대체로 −6 ~ −12 dB/oct 기울기를 가진다. 부호화가 만든 절벽은 이보다 훨씬 가파르며, 이 불연속이 가청 대역 밖에 있더라도 경계 부근의 인접 대역 인지에 영향을 준다.

컷오프 판정

프레임 단위가 아니라 파일 전역에서 1회 수행한다. 한 프레임만 관측하면 고역이 없는 조용한 구간을 차단으로 오판할 수 있다.

  1. 평균 스펙트럼 수집. 파일 전체에서 최소 20개 지점을 표본 추출해 진폭 스펙트럼을 평균한다.
  2. 평활과 dB 변환. 9빈 이동 평균 후 dB로 변환한다. 인접 빈의 변동을 줄여 판정을 안정화한다.
  3. 기준 레벨 산출. 1 ~ 4 kHz 구간의 평균 dB를 기준으로 삼는다. 대부분의 음악에서 에너지가 집중되고 부호화기가 가장 보존하는 대역이다.
  4. 1차 탐색. 상한은 샘플레이트의 1/4이다. 업샘플링으로 생긴 빈 영역을 탐색 대상에서 제외한다. 여기서 하강하며 연속 12빈 평균이 기준 − 30 dB를 넘는 최초 지점을 차단점으로 본다.
  5. 절벽 검증. 차단점 위 12빈이 아래보다 15 dB 이상 낮지 않으면 절벽이 아니라고 판단하고, 인접 12빈 평균차가 20 dB를 넘는 지점을 재탐색한다.
임계진폭비판정 의미
−30 dB1/31.6실질 신호 유무 판정. 이 아래는 누설·잡음 수준
−15 dB1/5.6절벽 여부 검증
−20 dB1/10재탐색 시 급락 기준

배음 전사

차단점 아래의 잔존 성분을 정수배 주파수 위치로 복사한다. 차수별 레벨은 고정 비율을 따르고 사용자 파라미터가 전체를 스케일링한다.

차수248163264128
레벨1/21/41/81/161/321/641/128
dB−6−12−18−24−30−36−42

차수가 2배 될 때마다 −6 dB다. 주파수 축 로그 스케일에서 옥타브당 −6 dB 기울기에 해당하며, 현악기·관악기 배음 포락선의 전형적인 감쇠율과 일치한다. 이 때문에 합성된 고역이 원본 배음 구조의 연장선처럼 들린다.

전체 스케일 = 0.5 + HF_SYNTH (0.5 ~ 1.5, 최대 9.5 dB 범위) 차수 n의 유효 구간 = [ 차단점 × n/2 , 차단점 × n ]

구간이 연속되도록 설계되어 있다. 차수 2는 차단점부터 그 2배까지, 차수 4는 2배부터 4배까지를 담당한다. 슬라이더를 0으로 내려도 스케일이 0.5이므로 합성이 완전히 꺼지지는 않는다.

위상 처리의 근사

전사 시 원본 빈의 위상을 그대로 사용한다. 엄밀하게는 주파수가 n배가 되면 위상도 n배가 되어야 시간 영역에서 배음 관계가 유지된다. 이 보정을 하지 않으므로 합성 성분은 원음과 위상이 정합되지 않는다. 해당 대역이 위상 인지 한계(약 1.5 kHz 이상에서는 파형 위상 감지 불가) 밖이라 청감상 문제로 드러나지 않지만, 원리적으로는 근사다.

교차 특성

원음과 합성음의 경계를 코사인 곡선으로 교차시킨다. 교차 시작점은 차단점의 75% 지점이다.

t = (k − 시작점) / (차단점 − 시작점) 원음 가중 = 0.5 + 0.5·cos(π·t) 1 → 0 합성 가중 = 1 − 원음 가중 0 → 1

가중치의 합이 1인 진폭 보존 교차다. 상관관계가 없는 두 신호를 섞을 때는 제곱합이 1인 전력 보존 교차가 적절하지만, 여기서는 합성음이 원음에서 파생되어 상관관계가 있으므로 진폭 보존이 맞다. 전력 보존을 쓰면 교차 중앙에서 약 3 dB 융기가 발생한다.

배음 차수 사이의 경계도 각 구간을 25% 침범하며 교차한다. 중첩 없이 이어 붙이면 경계마다 진폭 딥이 생기고, 주기적인 딥은 금속성 착색으로 들린다.

스펙트럼 평활

합성 구간의 진폭에 가우시안 커널을 적용한다. 전사 과정에서 원본의 협대역 피크가 그대로 복사되면 고역에 고립된 정현파 성분으로 남아 금속성 울림을 만든다.

SMOOTH커널 반경표준편차탭 수적용률청감
00%평활 없음. 또렷하나 피크 잔존
2020.92520%경미
4021.24540%기본. 대부분의 소스에 적정
6031.56760%거친 합성음 정돈
8031.88780%상당히 매끈
10042.209100%최대. 고역 질감이 무뎌짐

평활은 진폭에만 적용하고 위상은 보존한다. 위상까지 평활하면 시간 영역에서 임펄스가 퍼져 트랜지언트가 뭉개진다.

합성량이 클수록 돌출 피크도 많아지므로 SMOOTH를 함께 올리는 것이 일반적이다. SYNTH 70 이상에서 심벌에 금속성이 들리면 SYNTH를 내리기 전에 SMOOTH를 먼저 올려 볼 가치가 있다.

레벨 정합

고역 성분을 추가하면 전체 에너지가 증가한다. 처리 전후 RMS를 비교해 증가분만 되돌린다.

처리 후 RMS > 원본 RMS × 1.01 인 경우에만 전체에 (원본 RMS / 처리 후 RMS) 적용 이후 |x| > 0.99 인 표본을 ±0.99로 클램프

1% 여유를 둔 단방향 보정이다. 커진 경우만 줄이고 작아진 경우는 두므로, 기능을 켜고 끌 때 음량 차이가 최소화되어 A/B 비교가 공정해진다. 레벨을 맞추지 않으면 단순히 커진 소리를 개선으로 오인하게 된다.

클램프는 0.99에서 하드 클리핑이다. 정합 후에도 피크가 남는 경우를 대비한 최종 보호이며, 정상 동작에서는 거의 개입하지 않는다.

04계측과 판독

처리 전후를 동시에 표시한다. 원음 신호는 모든 처리 단 진입 이전에서 분기한다.

항목
변환 길이2048 (1024 빈)
시간 평활 계수0.8
표시 하한 / 상한−100 dB / −30 dB
주파수 축로그, 20 Hz ~ 나이퀴스트

표시 범위 70 dB를 0~255로 정규화한다. 색상 눈금과 dB 격자가 동일한 상한·하한을 참조하므로 두 표시가 항상 일치한다. 시간 평활 0.8은 프레임 간 급변을 억제해 판독성을 높이지만, 짧은 트랜지언트의 순간 피크는 과소 표시된다.

막대 표시

128개 구간을 로그 간격으로 나누고 각 구간의 최대값을 취한다. 평균을 쓰면 협대역 피크가 인접 빈에 희석되어 사라진다. 피크 홀드 지시는 프레임당 일정 비율로 하강한다.

시간-주파수 표시

가로축 시간, 세로축 로그 주파수, 색상이 음압이다. 약 8.7초의 이력이 유지된다. 차단점 식별에는 이 표시가 유리하다. 정지 스펙트럼은 순간값만 보여주므로, 곡 전체에 걸친 대역 제한을 판단하려면 시간 축이 필요하다.

표시 범위 고정

표시 상한을 24 kHz, 48 kHz, 96 kHz 중에서 고정할 수 있다. 대역 확장을 켜고 끄면 실제 나이퀴스트가 바뀌어 축이 재조정되는데, 그 상태로는 같은 성분이 화면상 다른 위치에 나타나 비교가 성립하지 않는다. 축을 고정하면 위치가 유지되어 새로 채워진 영역만 식별된다.

고정 범위가 실제 나이퀴스트보다 넓으면 데이터가 없는 구간이 생긴다. 이 구간은 경계선 표시와 함께 어둡게 처리한다. 경계에서 값을 유지하면 없는 신호가 존재하는 것처럼 보인다.

05청감 한계

대역 확장의 효과를 평가할 때 반드시 고려해야 할 제약이다.

가청 상한

연령대전형적 상한
10대 후반17 ~ 20 kHz
30대15 ~ 17 kHz
50대12 ~ 14 kHz

96 kHz 확장이 채우는 20 ~ 48 kHz, 192 kHz 확장이 추가로 채우는 48 ~ 96 kHz는 어느 연령에서도 직접 지각되지 않는다. 실효 이득은 차단점과 가청 상한 사이의 중첩 구간에서만 발생한다.

실효 이득 구간 = [ 차단 주파수 , 청자의 가청 상한 ] MP3 128k, 20대 청자 → [16 kHz, 18 kHz] = 약 2 kHz 구간 MP3 320k, 40대 청자 → [20 kHz, 15 kHz] = 없음

재생계 제약

출력 장치가 48 kHz로 동작하면 24 kHz 이상은 변환 단계에서 제거된다. 96 kHz 대응 변환기가 있어야 48 kHz까지 전달되고, 192 kHz 대응은 더 드물다. 다만 실효 이득 구간이 가청 대역 내에 있으므로, 장치 대역폭과 무관하게 그 부분은 전달된다.

초음파 성분의 간접 영향

가청 상한 이상의 성분이 증폭단의 비선형성과 상호작용해 가청 대역 내에 상호변조 산물을 만들 수 있다. 이는 개선이 아니라 왜곡이다. 고차 배음을 과도하게 넣는 설정이 역효과를 낼 수 있는 물리적 근거이기도 하다.

평가 결론

저비트레이트 소스에서는 실효 이득 구간이 넓어 차이가 명확하다. 고비트레이트 소스에서는 구간이 좁거나 존재하지 않아 차이가 미미하다. 무손실 소스에서는 차단점 자체가 없으므로 나이퀴스트 위에만 성분이 추가되며 가청 이득은 없다.

06운용 지침

소스별 대역 확장 설정

소스SYNTHSMOOTH근거
MP3 128 kbps60 ~ 7540 ~ 55확장 구간이 넓고 상당 부분이 가청 영역
MP3 320 kbps40 ~ 5535 ~ 45구간이 좁아 과도하면 이질감만 증가
AAC 256 kbps40 ~ 5040차단이 완만해 절벽 판정이 불안정할 수 있음
오래된 아날로그 녹음50 ~ 6555 ~ 70원본에 고역이 없던 것이라 평활을 높여 자연스럽게
무손실0 ~ 30가청 이득 없음. 보관 포맷 변환 목적일 때만

평가 절차

  1. 시간-주파수 표시로 전환하고 표시 범위를 96 kHz로 고정한다.
  2. 확장을 끈 상태로 차단점을 확인한다. 절벽이 없으면 확장 대상이 아니다.
  3. 확장을 켜고 채워진 영역의 질감을 관찰한다. 하부 무늬와 연속되면 정상이고, 무관한 균일 대역이면 SYNTH가 과도하다.
  4. 레벨을 정합한 상태에서 청감 비교한다. 심벌·하이햇·치찰음 구간을 중점적으로 듣는다.
  5. 차이가 식별되지 않으면 해당 소스에 확장이 불필요하다고 판단한다.

과도 설정의 징후

  • 심벌의 금속성 착색. 합성 배음이 원본과 조화하지 못하는 상태. SMOOTH를 올리거나 SYNTH를 내린다.
  • 치찰음의 경직. 6~10 kHz 대역에 합성 성분이 과다. 차단점 판정이 낮게 잡혔을 가능성.
  • 무음 구간의 배경 잡음. 잔존 잡음 성분까지 전사된 상태. SYNTH를 내린다.

다른 단과의 상호작용

대역 확장과 EXCITER를 동시에 강하게 걸면 고역이 중복 강조된다. 두 처리가 같은 대역을 다르게 만들어내므로 합산 시 예측이 어렵다. 확장 효과를 판정할 때는 EXCITER를 포함한 다른 단을 모두 끄는 것이 좋다.

BBE의 HI DEF는 8 kHz 이상을 셸빙으로 들어올린다. 확장으로 새로 만든 성분까지 함께 증폭하므로, 확장을 켠 상태에서는 평소보다 낮은 값이 적절하다.

07사양상 한계

설계상 타협

  • 포화 단의 잔류 앨리어싱 — 약 −80 dBFS. 4배 오버샘플링과 입력 대역 제한으로 발생 차수를 10.5차까지 밀어냈다. 아래 잔류량 산정에 수치를 명시했다. 더 줄일 수단은 있으나 채택하지 않았으며, 그 판단 근거도 함께 적었다.

잔류 앨리어싱 산정

"완전 제거 불가"로만 적으면 쓸모가 없으므로 실제 크기를 계산해 둔다. 기준은 중간 드라이브의 tanh 포화와 일반적인 음악 스펙트럼이다.

가청 앨리어싱 시작 차수 n = 3.5·sr / fc = 10.5 (fc = sr/3) 16 kHz 성분의 중역 대비 레벨 −35 dB 일반적 음악 스펙트럼 그 성분의 10.5차 배음 레벨 −45 dB tanh 포화 ──────────────────────────────────────────── 접혀 들어오는 산물의 절대 레벨 약 −80 dBFS
비교 대상레벨
잔류 앨리어싱−80 dBFS
16비트 양자화 잡음 바닥−96 dBFS
조용한 청취 환경의 암소음−60 ~ −70 dBFS 상당

양자화 바닥보다는 위지만 실제 청취 환경의 암소음보다 10 dB 이상 아래다. 드라이브를 최대로 올리고 16 kHz 부근에 에너지가 몰린 소스를 쓰는 극단적 조건에서만 측정에 잡히는 수준이다.

더 줄이는 수단과 채택하지 않은 이유

체인 전체를 목표 레이트의 배수에서 렌더한 뒤 내리면 시작 차수가 배수만큼 밀린다. 구현해서 측정한 결과는 이렇다.

내부 렌더시작 차수잔류량렌더 시간피크 메모리
1배 (현재)10.5차−80 dBFS기준220 MB
2배21차−93 dBFS2배439 MB
4배42차−106 dBFS4배879 MB

5분 스테레오 48 kHz 기준. 채택하지 않은 이유는 세 가지다.

  • 이득이 가장 필요 없는 곳에만 적용된다. HD는 96 kHz, ULTRA HD는 192 kHz라 배수를 곱하면 브라우저 상한인 192 kHz를 넘는다. 실제로 배수를 쓸 수 있는 것은 16비트 표준 출력뿐인데, 그쪽은 양자화 바닥이 −96 dBFS라 −80을 −93으로 내려봐야 바닥에 묻힌다. 정작 정밀도가 높은 HD·UHD 경로에는 적용할 수 없다.
  • 리샘플 단계가 1회에서 2회로 늘어난다. 올리고 내리는 두 변환이 각각 통과대역 리플과 트랜지언트 전후 링잉을 남긴다. 들리지 않는 앨리어싱을 줄이려고 들릴 수 있는 리샘플 아티팩트를 새로 들이는 거래가 된다. 브라우저 리샘플러의 품질은 명세에 규정되어 있지 않다.
  • 실시간 경로와의 차이가 다시 벌어진다. 오버샘플 렌더는 내보내기에만 적용된다. 처리 순서를 맞춰 없앤 불일치가 하필 같은 축에서 되살아난다.
설계 방침

측정에 잡히는 수치를 명시하고 그대로 두는 편이, 들리지 않는 값을 더 깎으려고 새 아티팩트와 비용을 들이는 것보다 낫다고 판단했다. 더 낮은 잔류량이 필요한 작업이라면 HD 또는 ULTRA HD로 내보내면 된다. 그쪽은 나이퀴스트가 멀어 같은 조건에서 시작 차수가 훨씬 높다.

원본 샘플레이트 보존

디코딩은 대상 컨텍스트의 레이트로 리샘플하므로, 원본 레이트를 유지하려면 디코딩 전에 그 값을 알아야 한다. 컨테이너 헤더를 직접 읽어 해결한다.

포맷판독 위치
WAV / RIFFfmt 청크를 순회 탐색해 표본화 주파수 필드
FLACSTREAMINFO 블록의 20비트 필드
OGG Vorbis식별 헤더 패킷의 32비트 필드
MP3ID3v2 태그를 건너뛴 뒤 첫 프레임 헤더의 버전·인덱스 조합
MP4 / M4A / AAC상자 구조를 따라가 stsd 안 AudioSampleEntry의 16.16 고정소수 필드

MP4는 moov → trak → mdia → minf → stbl → stsd 경로를 재귀 탐색한다. mdhd의 타임스케일도 같은 값을 담는 경우가 많지만, SBR 계열에서는 출력 레이트의 절반으로 적히는 일이 있어 stsd를 우선하고 실패했을 때만 보조 수단으로 쓴다.

판독에 실패하거나 8 ~ 192 kHz 범위를 벗어나면 장치 기본값으로 되돌아간다.