Skip to content
This repository has been archived by the owner on Jun 9, 2019. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This repository is no longer maintained.


JavaScript library for objective sound programming

Timbre.js provides a functional processing and synthesizing audio in your web apps with modern JavaScript's way like jQuery or node.js. It has many T-Object (Timbre-Object) that connected together to define the graph-based routing for overall audio rendering. It is a goal of this project to approach the next generation audio processing for web.

Project Page

English | 日本語


BeatBox | Chords Work | Gymnopedie | Khoomii | Reich


Timbre.js runs on modern browsers for Windows/Mac/Linux/iOS/Android or node.js.

Chrome 14.0- Safari 6.0- Firefox 4.0- Opera node.js 0.8-



Include the timbre.js file. It will install itself as timbre, T under the global namespace.

<script src="timbre.js"></script>
  T("sin", {freq:880, mul:0.5}).play();

Flash fallback (for Opera and IE10)

Download an additional file (Right-click and use "Save As")

timbre.swf must be set in the same folder as timbre.js.


Install via npm: npm install timbre, you can require it as a standard node module.

var T = require("timbre");

T("sin", {freq:880, mul:0.5}).play();




14.11.25 (356.27KB)

  • Merge: #33 update of the note duration formula to handle more 3 dots
  • Merge: #36 use latest Web Audio API interfaces

14.10.12 (356.28KB)

  • Fixed: Decoding wav file
  • Fixed: Envelope release

14.08.07 (356.19KB)

  • Fixed: Export for CommonJS env #19

14.06.23 (356.14KB)

  • Fixed: #23 fix to work on an iOS device
  • Fixed: fix to work on node.js

14.05.28 (355.91KB)

14.05.15 (355.95KB)

  • Fixed: #15
  • Excluded support of Audio Data API. use Web Audio API instead.

13.08.03 (361.93KB)

13.05.03 (361.93KB)

  • Bugfix: wav decoder. See #3

13.05.01 (361.75KB)

  • Added: T("task")
  • Added:
  • Added: TimbreObject.splice()
  • Added: TimbreObject.postMessage()
  • Updated: T("mml") support multi tracks, command token
  • Updated: TimbreObject support buddies interface
  • Bugfix: T("mouse.x"), T("mouse.y")

13.04.19 (346.63KB)

  • Bugfix: end process of T("params")

13.04.17 (344.94KB)

  • Updated: readable stream api (node.js)

13.04.06 (344.94KB)

  • Fixed: T("pluck) buffer size

13.04.01 (344.95KB)

  • Bugfix: T("buffer").slice()
  • Bugfix: fn.pointer() for Opera
  • Fixed: Flash fallback

13.03.10 (345.41KB)

  • Fixed: Checking Float64Array support. See #2
  • Changed: lame support (default -> optional)
  • updated dependencies in package.json

13.03.01 (355.72KB)

  • Added: T("script")
  • Added: T("waveshaper")
  • Added: T("lag")
  • Added: T("mono")
  • Added: T("delay").cross
  • Added: T("audio.jsonp") to extras
  • Moved: T("keyboard") to extras
  • Moved: T("mouse") to extras
  • Moved: T("cosc) to extras
  • Renamed: T("mml"): mml event listener -> data event listener
  • Fixed: Flash fallback support for Opera, IE9 (changing the installation)
  • make it easier to make a stereo object

13.02.07 (334.61KB)

  • Added T.setup({f64:true}) to use Float64Array instead of Float32Array
  • Added Android/Firefox support
  • Added Flash fallback support for Opera, IE9
  • performance improvements

13.02.06 (337.50KB)

  • workadound for iOS6.1 bug (failure to start processing in a callback of XMLHttpRequest)

13.02.02 (335.97KB)

  • Fixed: decoder for webkit

13.02.01 (335.96KB)

  • Added: T("reverb")
  • Added: T("chorus")
  • Added: T("eq")
  • Added: T("mediastream")
  • Added: T("-"), T("/"), T("min"), T("max")
  • Added: T("WebAudioAPI:recv"), T("WebAudioAPI:send") at extras
  • Added: T("MoogFF") at extras
  • Renamed: T("phaseshift") to T("phaser")
  • Renamed: event names scope, fft to data (T("scope"), T("spectrum"))
  • Fixed: T("osc").phase, T("osc").fb
  • Fixed: T("biquad").plot()
  • Fixed: T("mml").isEnded

13.01.20a (294.82KB)

  • Renamed: T("comp").postGain to T("comp").gain

13.01.20 (294.83KB)

  • Added: T("adshr"), T("ahdsfr")
  • Added: T("comp")
  • Added: T("phaseshift")

13.01.18a (268.71KB)


JavaScript library for objective sound programming







No packages published