Post

음향: CutOff(컷오프) 주파수란?

음향: CutOff(컷오프) 주파수란?

CutOff Frequency

컷오프 주파수(Cutoff Frequency)란, 오디오 필터가 신호를 걸러내기 시작하는 주파수의 경계점을 의미합니다.

설명

로우패스 필터(Low-pass filter)의 경우:

  • 컷오프 주파수 이하의 저주파 성분은 통과
  • 컷오프 주파수 이상의 고주파 성분은 감쇠 또는 제거

즉, 컷오프 주파수가 5,000Hz면 → 5kHz보다 낮은 음은 통과시키고, 높은 음은 줄이거나 제거합니다.

컷오프 주파수의 수치 범위

음향에서 일반적인 컷오프 주파수 범위는 다음과 같습니다:

  • 20Hz ~ 20,000Hz (20kHz) → 인간의 청각 범위 전체
  • 예: 30...20000 Hz 라고 쓰면 → 30Hz 이하나 20kHz 이상은 거의 모두 걸러짐

왜 조정하나?

필터의 톤(tone)을 바꾸기 위해서입니다.

  • 컷오프를 낮추면 → 소리가 더 어두워짐
  • 컷오프를 높이면 → 고음이 살아남아 밝은 소리

예제: 정규화된 Frequency가 0.8 → 0.2로 줄어들면?

frequency.denormalized(to: 30...20000, taper: 3)에서 frequency0.8 → 0.2로 줄어들면, 다음과 같은 의미입니다:

  • 0.8은 상대적으로 높은 컷오프 주파수 → 예: 약 12,000Hz 근처
  • 0.2는 상대적으로 낮은 컷오프 주파수 → 예: 약 100~200Hz 근처

즉, denormalized는 0.0~1.0 사이의 정규화된 값을 로그 스케일로 30Hz~20000Hz 범위에 매핑해주는 함수입니다.

대략적인 값 예시 (taper: 3 기준, 로그 스케일):

정규화 값 컷오프 주파수 (예상값)
0.0 30 Hz
0.2 약 120~200 Hz
0.5 약 1,000 Hz
0.8 약 12,000 Hz
1.0 20,000 Hz

따라서 → 0.8 → 0.2로 바꾸면 → 컷오프 주파수는 약 12,000Hz → 200Hz로 급격히 낮아지며, → 소리가 어두워지고 고음이 잘려나가며 묵직해지는 느낌이 납니다.

denormalized(to:taper:)는 AudioKit에서 사용하는 보간 함수로, 0.0~1.0 값을 실사용 주파수로 비선형(log taper) 변환할 때 사용됩니다.


참고: Log Taper란?

Log taper(로그 테이퍼)는 값의 변화가 로그함수 곡선처럼 느리게 시작하고 점점 빠르게 증가하는 방식의 곡선을 말합니다.

왜 log taper를 쓰나?

사람의 귀는 소리의 변화를 선형(linear)이 아닌 로그(logarithmic) 방식으로 인식하기 때문입니다.

  • 예: 주파수 100Hz → 200Hz는 큰 차이로 느껴지고 10,000Hz → 10,100Hz는 거의 차이 없음

log taper vs. linear taper

입력 값 Linear 결과 Log taper 결과 (예시)
0.0 30 Hz 30 Hz
0.25 5087 Hz 250 Hz
0.5 10,015 Hz 1000 Hz
0.75 14,972 Hz 5000 Hz
1.0 20,000 Hz 20,000 Hz
  • Linear: 중간값도 10,000Hz 근처 (느끼기엔 대부분 고음만 변함)
  • Log: 중간값이 1,000Hz로, 사람 귀에 더 자연스럽고 유효한 조절 가능

실제 적용 예

  • EQ(이퀄라이저)의 컷오프 주파수 노브
  • 디지털 신디사이저의 파라미터 슬라이더
  • UI 슬라이더 값 → 실 주파수/볼륨 매핑 등

Swift에서 taper가 적용된 예

1
value.denormalized(to: 30...20000, taper: 3)
  • taper: 1 → linear
  • taper: >1 → log taper (ex: 3이면 더 강한 곡선)

아래는 정규화된 값(0.0\~1.0)을 기준으로 한 log taperlinear taper의 대략적인 비교 그래프입니다. 가로축은 입력값 (x: 0.0 ~ 1.0), 세로축은 실제 주파수 출력 (y: 30Hz ~ 20000Hz)입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
y
↑
│ log taper       ◉
│               ◉
│             ◉
│           ◉
│         ◉
│       ◉
│    ◉
│ ◉
│
│
│ ◉  ◉  ◉  ◉  ◉  ◉  ◉  ◉  ◉◉◉◉  linear taper
└──────────────────────────────→ x
  0.0       0.5       1.0

해석:

  • Linear taper는 일정하게 증가 → 대부분 고음에서만 세밀 조절 가능
  • Log taper는 저역에서 더 섬세하게 조절 가능 → 사람이 듣기에 더 자연스럽고 유용

예를 들어 0.2, 0.4, 0.6, 0.8 정규화 값을 넣었을 때:

입력값 (x) Linear (Hz) Log Taper (Hz, taper:3)
0.2 ~4026 ~100
0.4 ~8011 ~500
0.6 ~11996 ~2000
0.8 ~15981 ~7000

요약하자면, log taper는 사람의 감각에 맞춘 비선형 조절 방식이며, 보통 UI 슬라이더나 오디오 파라미터에서는 log taper를 사용합니다.


This post is licensed under CC BY 4.0 by the author.