Repolode
Tonejs

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. 1

    npmからTone.jsをインストールする

    npm install tone
  2. 2

    プロジェクトにTone.jsをインポートする

    import * as Tone from "tone";
  3. 3

    シンセを作成してスピーカーに接続し、ユーザーのクリック後に音を鳴らす(最初にTone.start()を呼び出す)

使う前に知っておきたいこと

  • ブラウザーはユーザー操作があるまで音声をブロックするため、Tone.start()はユーザーイベントから呼び出す必要があります。

トピック

#web-audio#music#audio-synthesis#javascript#typescript#scheduling#sampling#samples#synthesis#tone

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト

音楽理論や作曲、音のスケッチに使えるPythonライブラリ。コードやスケールを分析し、演奏可能なMIDIやサウンドをコードから生成できます。

学習リソース#music-theory#music#midi
1659+1 今週84PythonMIT更新 8 日前