AudioKit의 Delay 및 DryWetMixer
AudioKit의 Delay 및 DryWetMixer
Delay
DelayConductor 클래스는 오디오 입력을 받아 지연 효과(Delay)를 적용한 후, 원본 신호(dry)와 효과가 적용된 신호(wet)를 DryWetMixer로 섞어서 출력하는 구조를 갖습니다. 아래는 코드와 함께 각 구성 요소 및 주석의 의미를 상세히 설명한 내용입니다.
🎛 클래스 역할 및 구조
DelayConductor는 다음을 수행합니다:
- 기본 오디오 소스(.strings)를 메모리에 로드하고
AudioPlayer로 재생Delay이펙트를 걸고- 원본과 이펙트가 적용된 신호를
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)
💡 주석 해석: “두 개의 입력을 정확히 믹싱하는 것은 매우 흔한 일입니다. 하나는 처리 전, 다른 하나는 처리 후, 그 결과 두 입력이 결합된 결과가 생성됩니다.”
DryWetMixer는player(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.