코드로 코드와 스케일을 분석하고, 연주 가능한 MIDI와 사운드를 만들 수 있는 음악 이론·작곡·오디오 스케치용 Python 라이브러리입니다.
Tonejs/Tone.js
브라우저에서 인터랙티브 음악과 신시사이저를 만들고, DAW 스타일의 Transport 스케줄링을 지원하는 Web Audio 프레임워크입니다.
- 스타
- 14,889
- 포크
- 1,087
- 열린 이슈
- 50
- 마지막 커밋
- 6일 전
어떤 프로젝트인가요?
Tone.js는 Web Audio API를 기반으로 브라우저에서 인터랙티브 음악을 만들 수 있는 JavaScript 프레임워크입니다. 이벤트를 동기화하고 예약하는 전역 Transport와 함께, 서로 연결해 사용할 수 있는 사전 제작 신시사이저, 샘플러, 이펙트 등 DAW와 유사한 기능을 제공합니다.
또한 라이브러리는 커스텀 신시사이저, 이펙트, 제어 신호를 만들 수 있는 저수준 구성 요소도 제공합니다. 타이밍은 초 단위뿐 아니라 "8n", "1m" 같은 음악 단위로 지정하며, 콜백에는 샘플 단위까지 정확한 스케줄링 시간을 전달합니다. Player와 Sampler로 오디오 파일을 불러올 수 있으며, Sampler는 음 사이의 간격을 채우도록 샘플의 피치를 조절합니다.
Tone.js는 npm으로 설치할 수 있으며, HTML 페이지에서 unpkg를 통해 직접 불러올 수도 있습니다. 브라우저에서 오디오를 재생하려면 사용자 동작이 필요하므로, 애플리케이션은 클릭이나 keydown 핸들러에서 Tone.start()를 호출합니다.
핵심 기능
- 01DAW의 어레인지 뷰와 유사하게 이벤트를 동기화하고 예약하는 전역 Transport입니다.
- 02FMSynth, AMSynth, NoiseSynth, PolySynth를 포함한 사전 제작 모노포닉 및 폴리포닉 신시사이저입니다.
- 03오디오 파일을 불러오고 여러 음에 맞춰 샘플의 피치를 조절하는 Sampler와 Player입니다.
- 04직렬 또는 병렬로 연결할 수 있는 내장 이펙트입니다.
- 05램프와 자동화 곡선을 지원하는 오디오 레이트 Signal 파라미터입니다.
- 06초 단위와 함께 사용할 수 있는 "4n", "8t" 등의 음악 시간 표기법입니다.
활용 사례
- 브라우저 기반 음악 시퀀서나 드럼 머신 만들기.
- 웹 페이지에서 인터랙티브 생성 음악이나 오디오 시각화 구현하기.
- Web Audio로 신시사이저와 이펙트 프로토타이핑하기.
- 웹 게임이나 음악 교육 앱에 샘플 기반 악기 추가하기.
빠른 시작
- 1
npm에서 Tone.js를 설치합니다
npm install tone - 2
프로젝트에 Tone.js를 가져옵니다
import * as Tone from "tone"; - 3
신스를 생성해 스피커에 연결하고, 사용자가 클릭한 후 음을 재생합니다(먼저 Tone.start()를 호출하세요)
사용 전 알아둘 점
- 브라우저는 사용자 동작이 있기 전까지 오디오를 차단하므로 Tone.start()는 사용자 이벤트에서 호출해야 합니다.
토픽
자주 묻는 질문
- Tone.js은(는) 무엇인가요?
- 브라우저에서 인터랙티브 음악과 신시사이저를 만들고, DAW 스타일의 Transport 스케줄링을 지원하는 Web Audio 프레임워크입니다. Tone.js는 Web Audio API를 기반으로 브라우저에서 인터랙티브 음악을 만들 수 있는 JavaScript 프레임워크입니다. 이벤트를 동기화하고 예약하는 전역 Transport와 함께, 서로 연결해 사용할 수 있는 사전 제작 신시사이저, 샘플러, 이펙트 등 DAW와 유사한 기능을 제공합니다.
- Tone.js은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Tone.js은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Tone.js은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Tone.js의 마지막 커밋은 2026년 11월 1일입니다.
- Tone.js은(는) 어디에 사용할 수 있나요?
- 브라우저 기반 음악 시퀀서나 드럼 머신 만들기. 웹 페이지에서 인터랙티브 생성 음악이나 오디오 시각화 구현하기. Web Audio로 신시사이저와 이펙트 프로토타이핑하기. 웹 게임이나 음악 교육 앱에 샘플 기반 악기 추가하기.
- Tone.js는 어떻게 설치하나요?
- npm에서 Tone.js를 설치합니다: npm install tone 프로젝트에 Tone.js를 가져옵니다: import * as Tone from "tone"; 신스를 생성해 스피커에 연결하고, 사용자가 클릭한 후 음을 재생합니다(먼저 Tone.start()를 호출하세요)
- Tone.js은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Tonejs/Tone.js
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
가입이나 추적 없이 브라우저에서 음악을 만들 수 있는 웹 기반 DAW
사계절과 하루 중 언제든 일본 계곡의 강을 따라가는 브라우저 기반 3D 보트 여정
공간 오디오 제어 기능을 갖춘, 여러 브라우저 기기에서 음악을 정밀하게 동기화하는 웹 오디오 플레이어
Microsoft가 주도하는 초급 강의로, 시간 여행 이야기와 캐릭터 채팅 앱을 통해 JavaScript로 Generative AI를 배웁니다.
로컬 개발에 필요한 일반적인 서비스의 연동 방식을 보여 주는, 바로 실행할 수 있는 Docker Compose 샘플 모음입니다.