The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×

    JavaScript library for objective sound programming
    Filed under 

    • 🔾35%Overall
    • 963
    • 39.9 days
    • 🕩77
    • 👥9

    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)

    Show All