SuperAPI AI 工具集

tonejs

通用与其它

查看项目

更新于 10-16 03:44

技能介绍

Tone.js 是基于 Web Audio API 的浏览器音频框架,用高层抽象简化交互式音乐应用的开发。

用途:创建合成器、采样器与乐器;构建步进音序器、鼓机或 DAW;为游戏添加音效与音乐;实现与声音同步的音频可视化;实时效果处理;以精确时序调度音乐事件;处理音符、速度、小节等音乐概念。

主要能力:音频图与路由(节点连接至 Tone.Destination,支持串联 chain 与并联 connect);时间与调度(支持 "4n"、"8n"、"2m"、"8t" 等音乐记谱与秒数);Transport 全局时钟(start/stop/pause、bpm);合成器(Synth、FMSynth、AMSynth)、PolySynth 复音、Sampler 多采样、Player 播放音频文件;效果器(Filter、Delay、Reverb、Distortion、Chorus、Phaser 等);参数自动化(rampTo、linearRampTo、exponentialRampTo、setValueAtTime);Tone.Draw.schedule 同步视觉更新;Tone.Loop 与 Tone.Sequence 构建循环与音序。

使用方式:通过 import * as Tone from "tone" 引入;必须在用户交互中调用 await Tone.start() 才能启动 AudioContext;节点用 toDestination() 或 chain() 连接;回调中务必使用传入的 time 参数以保证采样级精度;加载采样后需 await Tone.loaded() 再播放;用完后调用 dispose() 释放节点。

适用场景:网页乐器、音乐教育工具、游戏音效、通知与 UI 音效设计、音频可视化。

限制与注意:浏览器自动播放策略要求用户交互后才能发声;JavaScript 定时器不精确,应使用 Tone 调度;基础 Synth 为单音,和弦需用 PolySynth;音符可用音名或频率表示;Tone.now() 与 Tone.Transport.seconds 是两套时间系统。资料未提供收费、价格与平台支持等具体信息。