一个用 Python 编写的乐理与作曲库,可分析和弦音阶,并通过代码生成音频与 MIDI。
Tonejs/Tone.js
一个基于 Web Audio 的框架,用于在浏览器中创作交互式音乐与合成器。
- Star
- 14,889
- Fork
- 1,087
- 未关闭 Issue
- 50
- 最近提交
- 6天前
这是什么?
Tone.js 是一个运行在浏览器中的 JavaScript 框架,基于 Web Audio API 用于创作交互式音乐。它提供类似 DAW 的全局 Transport,用于同步和调度事件,并内置合成器、采样器和效果器,可以自由组合连接。
除了现成的组件,它还提供底层构建模块,便于自定义合成器、效果器和控制信号。时间既可以用秒表示,也可以使用 "8n"、"1m" 等音乐时值,回调函数会接收到采样精度的时间用于调度。Player 和 Sampler 可以加载音频文件,其中 Sampler 会对采样做音高移位,以填补音符之间的空缺。
项目可通过 npm 安装,也可以在 HTML 页面中直接从 unpkg 引入。由于浏览器要求用户交互后才能播放声音,应用需要在点击或按键事件中调用 Tone.start()。
核心功能
- 01全局 Transport 用于同步和调度事件,类似 DAW 的编排视图。
- 02内置单音和复音合成器,包括 FMSynth、AMSynth、NoiseSynth 和 PolySynth。
- 03Sampler 与 Player 支持加载音频文件,Sampler 可跨音符进行音高移位。
- 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 是什么?
- 一个基于 Web Audio 的框架,用于在浏览器中创作交互式音乐与合成器。 Tone.js 是一个运行在浏览器中的 JavaScript 框架,基于 Web Audio API 用于创作交互式音乐。它提供类似 DAW 的全局 Transport,用于同步和调度事件,并内置合成器、采样器和效果器,可以自由组合连接。
- 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
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1659+1 本周84PythonMIT更新于 8天前
一款运行在浏览器中的网页数字音频工作站(DAW),无需注册,不做用户追踪。
2425+29 本周231TypeScriptAGPL-3.0维护活跃更新于 17小时前
一款在浏览器中用 three.js 实时渲染的 3D 日本河谷小船之旅,涵盖四季与全天时段。
145+9 本周17JavaScriptOther更新于 17天前
一款高精度网页音频播放器,可让多台设备上的音频保持同步播放,并支持空间音频。
3217+9 本周311TypeScriptMIT更新于 5个月前
微软出品的 JavaScript 生成式 AI 入门课程,通过穿越历史的故事和角色对话应用学习。
1292+4 本周851JavaScriptMIT更新于 5天前
一组可直接运行的 Docker Compose 示例,展示如何在本地开发中组合常见服务。
4.7万+42 本周8348HTMLCC0-1.0更新于 12天前