音楽理論や作曲、音のスケッチに使えるPythonライブラリ。コードやスケールを分析し、演奏可能なMIDIやサウンドをコードから生成できます。
Tonejs/Tone.js
ブラウザーでインタラクティブな音楽やシンセサイザーを作るためのWeb Audioフレームワーク。DAW風のTransportによるスケジューリングに対応。
- スター
- 14,889
- フォーク
- 1,087
- 未解決の Issue
- 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ページ上で動作するインタラクティブなジェネラティブミュージックや音声ビジュアライゼーションの制作。
- Web Audioを使ったシンセサイザーやエフェクトのプロトタイピング。
- Webゲームや音楽学習アプリへのサンプルベースの楽器の追加。
クイックスタート
- 1
npmからTone.jsをインストールする
npm install tone - 2
プロジェクトにTone.jsをインポートする
import * as Tone from "tone"; - 3
シンセを作成してスピーカーに接続し、ユーザーのクリック後に音を鳴らす(最初にTone.start()を呼び出す)
使う前に知っておきたいこと
- ブラウザーはユーザー操作があるまで音声をブロックするため、Tone.start()はユーザーイベントから呼び出す必要があります。
トピック
よくある質問
- Tone.js とは?
- ブラウザーでインタラクティブな音楽やシンセサイザーを作るためのWeb Audioフレームワーク。DAW風のTransportによるスケジューリングに対応。 Tone.jsは、Web Audio APIを基盤に、ブラウザーでインタラクティブな音楽を作るためのJavaScriptフレームワークです。イベントの同期やスケジューリングを行うグローバルなTransportをはじめ、DAWのような機能を備えています。また、あらかじめ用意されたシンセサイザー、サンプラー、エフェクトを相互に接続できます。
- Tone.js は無料で使えますか?ライセンスは?
- Tone.js は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Tone.js は今もメンテナンスされていますか?
- 活発にメンテナンス中。Tone.js の最終コミットは 2026年11月1日 です。
- Tone.js は何に使えますか?
- ブラウザーベースの音楽シーケンサーやドラムマシンの開発。 Webページ上で動作するインタラクティブなジェネラティブミュージックや音声ビジュアライゼーションの制作。 Web Audioを使ったシンセサイザーやエフェクトのプロトタイピング。 Webゲームや音楽学習アプリへのサンプルベースの楽器の追加。
- 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 の数値は毎日更新されます。
関連プロジェクト
登録もトラッキングも不要で、ブラウザ上で作曲できるWebベースのDAW。
四季や一日の時間帯が変化する、日本の渓谷を下るブラウザベースの3D舟旅。three.jsでリアルタイムに描画
空間オーディオ操作にも対応し、複数のブラウザ端末間で高精度に音楽を同期するWebプレーヤー。
Microsoft主導の初心者向けコース。タイムトラベルの物語と登場人物とチャットできるアプリを通じて、JavaScriptで生成AIを学べます。
ローカル開発向けに、よく使われるサービスの連携方法を示す、すぐに実行できるDocker Composeサンプル集です。