Learning
레슨 8 / 8·15분

Tone.js 레퍼런스

Tone.js 핵심 API 레퍼런스

Tone.js의 주요 클래스와 자주 사용하는 API를 카테고리별로 정리합니다. 빠른 참조를 위한 핵심 기능 모음입니다.

신디사이저와 소스

javascript
// 신디사이저
new Tone.Synth();         // 기본 모노 신스
new Tone.PolySynth();     // 폴리포닉 (화음)
new Tone.MonoSynth();     // 모노포닉 + 필터
new Tone.FMSynth();       // FM 합성
new Tone.AMSynth();       // AM 합성
new Tone.MembraneSynth(); // 드럼 킥
new Tone.NoiseSynth();    // 노이즈 (스네어)
new Tone.MetalSynth();    // 금속 타악기
new Tone.PluckSynth();    // 기타/현악기

// 재생
synth.triggerAttackRelease(note, duration, time, velocity);
synth.triggerAttack(note, time, velocity);
synth.triggerRelease(time);

// 소스
new Tone.Player(url);     // 오디오 파일 재생
new Tone.Players(urls);   // 여러 오디오 관리
new Tone.Sampler(urls);   // 샘플 기반 악기
new Tone.GrainPlayer(url);// 그래뉼러 합성

이펙트와 라우팅

javascript
// 이펙트
new Tone.Reverb({ decay, wet });       // 잔향
new Tone.FeedbackDelay(time, feedback);// 딜레이
new Tone.Distortion(amount);           // 디스토션
new Tone.Filter(freq, type);           // 필터
new Tone.Chorus(freq, delay, depth);   // 코러스
new Tone.Phaser({ frequency, octaves });// 페이저
new Tone.EQ3(low, mid, high);          // 이퀄라이저
new Tone.Compressor(threshold, ratio); // 컴프레서
new Tone.BitCrusher(bits);             // 비트크러셔
new Tone.AutoWah(baseFreq, octaves);   // 오토와
new Tone.Tremolo(freq, depth);         // 트레몰로

// 라우팅
synth.connect(effect);                  // 연결
synth.chain(a, b, c, Tone.Destination);// 체이닝
synth.toDestination();                  // 스피커로

시퀀싱과 Transport

javascript
// 시퀀서
new Tone.Sequence(callback, events, subdivision);
new Tone.Part(callback, events);
new Tone.Pattern(callback, values, pattern);
new Tone.Loop(callback, interval);

// Transport
Tone.Transport.start();       // 재생
Tone.Transport.stop();        // 정지
Tone.Transport.pause();       // 일시정지
Tone.Transport.bpm.value = 120; // BPM 설정
Tone.Transport.bpm.rampTo(140, 2); // BPM 전환
Tone.Transport.swing = 0.3;   // 스윙

// 시간 표기
// '4n' = 4분음표, '8n' = 8분음표
// '1m' = 1마디
// '0:0:0' = 마디:박:16분음표
// '+0.5' = 현재로부터 0.5초 후

// 유틸리티
await Tone.start();           // 오디오 컨텍스트 시작
Tone.now();                   // 현재 오디오 시간
Tone.Draw.schedule(fn, time); // UI 동기화
  • Synth/PolySynth — 기본 사운드 생성
  • Player/Sampler — 녹음된 오디오 재생/악기화
  • Reverb/Delay/Filter — 핵심 이펙트
  • .connect() / .chain() — 오디오 라우팅
  • Sequence/Part/Loop — 시퀀싱과 반복
  • Transport — 전역 타임라인 (BPM, start/stop)
  • Tone.start() — 사용자 인터랙션 후 필수 호출
  • Tone.Draw.schedule() — 오디오 동기화 UI 업데이트
💡

공식 문서(tonejs.github.io)에서 모든 클래스의 상세 API를 확인할 수 있습니다. 또한 tone-js-examples 저장소에서 다양한 예제를 실행해볼 수 있습니다.