Learning
레슨 4 / 8·20분

이펙트와 오디오 프로세싱

고급 이펙트 체인 구성

이펙트 체인은 소리가 여러 이펙트를 순서대로 통과하며 가공되는 구조입니다. Tone.js는 EQ, 컴프레서, 코러스, 페이저, 비트크러셔 등 다양한 이펙트를 제공합니다. 이펙트의 순서에 따라 최종 사운드가 크게 달라지므로 체인 구성이 중요합니다.

javascript
import * as Tone from 'tone';

// EQ3 — 3밴드 이퀄라이저
const eq = new Tone.EQ3({
  low: -6,      // 저음 (dB)
  mid: 3,       // 중음
  high: -3,     // 고음
  lowFrequency: 400,   // 저음 기준 주파수
  highFrequency: 2500, // 고음 기준 주파수
});

// Compressor — 다이나믹 레인지 압축
const compressor = new Tone.Compressor({
  threshold: -20,  // 압축 시작점 (dB)
  ratio: 4,        // 압축 비율
  attack: 0.003,   // 반응 속도
  release: 0.25,   // 해제 속도
});

// Chorus — 풍성한 사운드
const chorus = new Tone.Chorus({
  frequency: 1.5,     // LFO 주파수
  delayTime: 3.5,     // 딜레이 시간 (ms)
  depth: 0.7,         // 효과 깊이
  wet: 0.5,
}).start();
javascript
// Phaser — 위상 변조 효과
const phaser = new Tone.Phaser({
  frequency: 0.5,   // LFO 속도
  octaves: 3,       // 주파수 범위
  stages: 10,       // 필터 단계 수
  wet: 0.5,
});

// BitCrusher — 로파이/레트로 사운드
const bitCrusher = new Tone.BitCrusher({
  bits: 4, // 비트 수 (1~16, 낮을수록 거칠음)
});

// AutoWah — 와와 페달 효과
const autoWah = new Tone.AutoWah({
  baseFrequency: 100,
  octaves: 6,
  sensitivity: 0,
  wet: 0.8,
});

// 이펙트 체인 구성
const synth = new Tone.PolySynth(Tone.Synth);
synth.chain(eq, chorus, compressor, Tone.Destination);

synth.triggerAttackRelease(['C4', 'E4', 'G4'], '2n');
javascript
// 실시간 이펙트 파라미터 제어
const reverb = new Tone.Reverb({ decay: 4, wet: 0.5 }).toDestination();
const delay = new Tone.FeedbackDelay('8n', 0.5).connect(reverb);
const synth = new Tone.Synth().connect(delay);

// 슬라이더로 이펙트 제어하기
function updateReverb(value) {
  reverb.wet.value = value; // 0~1
}

function updateDelay(time) {
  delay.delayTime.rampTo(time, 0.1); // 부드럽게 전환
}

// LFO로 파라미터 자동 변조
const lfo = new Tone.LFO('4n', 200, 2000); // 주기, 최소, 최대
lfo.connect(autoWah.baseFrequency);
lfo.start();
  • EQ3 — 저/중/고음 3밴드 이퀄라이저
  • Compressor — 소리의 다이나믹 레인지를 압축
  • Chorus — 소리를 약간 지연/변조하여 풍성하게
  • Phaser — 위상차로 독특한 스위핑 효과
  • BitCrusher — 비트 해상도를 낮춰 레트로 사운드
  • LFO — 다른 파라미터를 주기적으로 변조
💡

이펙트 체인의 순서가 중요합니다. 일반적으로 EQ -> Compression -> Modulation(Chorus 등) -> Time(Delay/Reverb) 순서가 자연스럽습니다. Reverb는 보통 체인의 마지막에 배치합니다.