Post

AudioKit의 Delay 및 DryWetMixer

AudioKit의 Delay 및 DryWetMixer

Delay

DelayConductor 클래스는 오디오 입력을 받아 지연 효과(Delay)를 적용한 후, 원본 신호(dry)와 효과가 적용된 신호(wet)를 DryWetMixer로 섞어서 출력하는 구조를 갖습니다. 아래는 코드와 함께 각 구성 요소 및 주석의 의미를 상세히 설명한 내용입니다.


🎛 클래스 역할 및 구조

DelayConductor는 다음을 수행합니다:

  1. 기본 오디오 소스(.strings)를 메모리에 로드하고
  2. AudioPlayer로 재생
  3. Delay 이펙트를 걸고
  4. 원본과 이펙트가 적용된 신호를 DryWetMixer로 섞어 출력

🧱 주요 구성 해설

🔹 delay = Delay(player)

  • 지연 효과를 적용할 노드입니다.
  • 원본 player로부터 오디오를 입력 받아서 처리합니다.

🔹 delay.feedback = 0.9

  • 피드백(Feedback): 효과된 신호가 다시 입력으로 되돌아가 반복되는 비율입니다.
  • 0.9이면 한 번의 딜레이로 끝나지 않고, 서서히 줄어드는 에코처럼 들림.

🔹 delay.time = 0.01

  • 지연 시간 (단위: 초)
  • 0.01초 → 빠르게 반복되는 딜레이 → 거의 플랜저(flanger)나 코러스 같은 효과로 들릴 수 있음.

🧪 delay.dryWetMix = 100의 의미

1
2
3
// 지연에 내장된 dry/wet 믹스를 사용하지 않습니다.
// dry/wet 결과를 탭(tapping)하여 그래프로 표시하기 때문입니다.
delay.dryWetMix = 100
  • 기본적으로 Delay 노드에도 자체적인 Dry/Wet Mix가 있지만,
  • 그래프 표시를 위해 효과된 신호만 분리해서 사용하고 싶을 경우, dryWetMix = 100으로 설정합니다.

    • 즉, Delay 노드가 순수한 Wet 신호만 출력하도록 함
  • 대신에 외부의 DryWetMixer로 dry/wet 비율을 통합 조절합니다.

🧩 dryWetMixer = DryWetMixer(player, delay)

💡 주석 해석: “두 개의 입력을 정확히 믹싱하는 것은 매우 흔한 일입니다. 하나는 처리 전, 다른 하나는 처리 후, 그 결과 두 입력이 결합된 결과가 생성됩니다.”

  • DryWetMixerplayer(dry 신호)와 delay(wet 신호)를 합칩니다.
  • 이런 방식은 오디오 시각화(UI 그래프) 또는 커스텀 효과 체인 구성에 더 유연함을 줍니다.

📊 Delay 파라미터 정리

파라미터 기본값 범위 설명
Dry-Wet Mix 100.0 0.0~100.0 Delay 자체의 내부 믹스 → 이 코드에서는 사용 안함
Delay Time 0.01초 0.0001~2.0 얼마나 지연되었는지, 0.01초는 매우 짧은 딜레이
Feedback 0.9 -99.9~99.9 에코의 지속 시간에 영향, 0.9는 반복이 길고 강함
Low Pass Cutoff 15000Hz 10~22050 딜레이 신호의 고역 제한 (고주파수 컷오프)

🧠 요약

  • DelayConductor는 원본 소리와 효과 적용된 소리를 DryWetMixer로 분리해서 다룸
  • 내장 믹스를 사용하지 않고 외부에서 직접 믹싱 → 시각화나 제어에 유리
  • DryWetMixer는 특히 복잡한 효과 체인이나 직관적 제어 UI 구성에 적합함

이 방식은 향후 다른 이펙트 체인(예: 리버브 → 컴프레서 → 코러스 등)을 구성할 때도 효과적으로 확장 가능합니다.

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