# tonejs/tone.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tonejs-tone-js).**

14,657 stars · 1,052 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/Tonejs/Tone.js
- Homepage: https://tonejs.github.io
- awesome-repositories: https://awesome-repositories.com/repository/tonejs-tone-js.md

## Description

Tone.js is a web-based audio synthesizer and framework for the Web Audio API. It provides a digital signal processing toolkit, a musical timing engine, and a library for MIDI processing to create interactive music and synthesizers directly in the browser.

The project features a musical timing engine that coordinates audio events and loops using BPM-relative timing and a global transport. It includes a MIDI processing library capable of converting binary MIDI files into JSON format to trigger sounds and control audio parameters in real time.

Its capabilities cover polyphonic sound synthesis, musical instrument creation, and digital signal manipulation. The framework manages audio signal routing through effects and gain nodes, provides tools for audio dynamics processing, and enables real-time audio analysis for synchronizing visuals with sound.

The system implements sample-accurate event scheduling, timing quantization, and audio-visual synchronization to align animations with the audio clock.

## Tags

### Graphics & Multimedia

- [Transport Timeline Schedulers](https://awesome-repositories.com/f/graphics-multimedia/automation-timeline-scheduling/transport-timeline-schedulers.md) — Maintains a global timeline that maps musical beats and bars to precise high-resolution audio timestamps.
- [Signal Routing](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-recording/audio-signal-mirroring/signal-routing.md) — Manages the flow of audio signals between sources, processors, and destinations using a node-based graph.
- [Audio Synthesis Tools](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-synthesis-tools.md) — Creates digital sounds and musical instruments directly in the browser using oscillators, envelopes, and synth engines.
- [Musical Tempo Conversions](https://awesome-repositories.com/f/graphics-multimedia/musical-tempo-conversions.md) — Translates musical time units into absolute seconds to synchronize events with a variable tempo.
- [Musical Timing Systems](https://awesome-repositories.com/f/graphics-multimedia/musical-timing-systems.md) — Calculates time using seconds, musical notation, and frequency to synchronize events with a musical grid. ([source](https://github.com/Tonejs/Tone.js/wiki/Time))
- [Polyphonic Voice Allocation](https://awesome-repositories.com/f/graphics-multimedia/polyphonic-voice-allocation.md) — Manages multiple simultaneous sound instances by assigning available oscillators to new note triggers.
- [Sample-Accurate Automation](https://awesome-repositories.com/f/graphics-multimedia/sample-accurate-automation.md) — Controls audio properties using automation curves to create smooth transitions and sample-accurate parameter changes. ([source](https://github.com/tonejs/tone.js#readme))
- [Sound Synthesis](https://awesome-repositories.com/f/graphics-multimedia/sound-synthesis.md) — Generates sounds using oscillators and envelopes to support various synthesis methods and polyphonic voice allocation. ([source](https://github.com/tonejs/tone.js#readme))
- [Audio Digital Signal Processing](https://awesome-repositories.com/f/graphics-multimedia/audio-digital-signal-processing.md) — Provides a collection of audio effects and analysis tools including reverbs, filters, and Fast Fourier Transforms.
- [Dynamics Processing](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/dynamics-processing.md) — Controls signal levels and frequency response using compressors, limiters, filters, and envelopes. ([source](https://tonejs.github.io/docs/))
- [Effects Processing](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-processing/effects-processing.md) — Modifies sound signals using processors like reverb, chorus, and delay to alter the acoustic character. ([source](https://tonejs.github.io/docs/))
- [Audio Sample Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-sample-playback.md) — Loads and plays back audio files with pitch-shifting to create a playable instrument. ([source](https://github.com/tonejs/tone.js#readme))
- [Custom Instrument Creation](https://awesome-repositories.com/f/graphics-multimedia/custom-instrument-creation.md) — Synthesizes melodic and percussive sounds through specialized synth engines and sample-based playback. ([source](https://tonejs.github.io/docs/))
- [Rhythmic Quantizers](https://awesome-repositories.com/f/graphics-multimedia/rhythmic-quantizers.md) — Snaps time values to the nearest grid interval relative to the transport for musical precision. ([source](https://github.com/Tonejs/Tone.js/wiki/Time))
- [Interactive Audio Processors](https://awesome-repositories.com/f/graphics-multimedia/sound-effect-libraries/interactive-audio-processors.md) — Routes sound signals through digital processors like reverb and delay to change the acoustic character of a signal.

### Software Engineering & Architecture

- [Music Playback Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/music-playback-schedulers.md) — Implements a high-precision scheduling engine that coordinates timed musical events for real-time audio playback.
- [Transport Coordinators](https://awesome-repositories.com/f/software-engineering-architecture/distributed-coordination-systems/task-coordinations/master-worker-process-models/transport-coordinators.md) — Provides a master timekeeper that coordinates the starting, stopping, and looping of musical events. ([source](https://tonejs.github.io/))
- [Look-Ahead Audio Queues](https://awesome-repositories.com/f/software-engineering-architecture/event-queues/look-ahead-audio-queues.md) — Schedules audio events slightly in the future to prevent stuttering while maintaining sample-accurate playback timing.

### Part of an Awesome List

- [Audio Synthesizers](https://awesome-repositories.com/f/awesome-lists/media/audio-synthesizers.md) — Ships a complete set of tools for generating electronic sounds using oscillators, envelopes, and polyphonic voices.
- [Audio Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/audio-frameworks.md) — Framework for creating interactive music in the browser.
- [Audio And Music](https://awesome-repositories.com/f/awesome-lists/media/audio-and-music.md) — Framework for interactive music and audio synthesis.

### Hardware & IoT

- [MIDI Processing Engines](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/midi-and-osc-interfaces/midi-processing-engines.md) — Parses MIDI files and JSON data to trigger sounds and control audio parameters in real time.
- [MIDI File Parsers](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/midi-and-osc-interfaces/midi-processing-engines/midi-data-exchange/midi-file-parsers.md) — Parses binary MIDI files and transforms them into JSON for compatible playback and synchronization. ([source](https://tonejs.github.io/))
- [MIDI-to-Audio Synthesizers](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/midi-and-osc-interfaces/midi-processing-engines/midi-to-audio-synthesizers.md) — Processes MIDI data to trigger sounds and control audio parameters through integrated synthesizers. ([source](https://github.com/tonejs/tone.js#readme))

### Networking & Communication

- [Sample-Accurate Transport Sync](https://awesome-repositories.com/f/networking-communication/clock-synchronizations/sample-accurate-transport-sync.md) — Implements high-precision timing for sounds using seconds or musical notation for sample-accurate playback. ([source](https://github.com/tonejs/tone.js#readme))

### Scientific & Mathematical Computing

- [BPM-to-Seconds Converters](https://awesome-repositories.com/f/scientific-mathematical-computing/time-point-conversions/bpm-to-seconds-converters.md) — Translates absolute seconds into BPM-relative musical values to coordinate different timing systems. ([source](https://github.com/Tonejs/Tone.js/wiki/Time))

### Web Development

- [Web Audio Integration](https://awesome-repositories.com/f/web-development/web-audio-integration.md) — Interfaces with the browser's native audio graph to route signals through oscillators, effects, and gain nodes.
