레슨 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 저장소에서 다양한 예제를 실행해볼 수 있습니다.