timbre

JavaScript library for objective sound programming

npm install timbre
20 downloads in the last week
55 downloads in the last month

timbre.js

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 | 日本語

Examples

BeatBox | Chords Work | Gymnopedie | Khoomii | Reich

Supports

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 IE9 node.js 0.8-

IE support is only Internet Exploler 9.
iOS support is only later iOS6.0
Android support is only Firefox app.

Installation

browser

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

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

Flash fallback (for Opera and IE9)

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

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

node.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();

License

MIT

ChangeLog

13.05.03 (361.93KB)

  • Bugfix: wav decoder. See #3

13.05.01 (361.75KB)

  • Added: T("task")
  • Added: TimbreObject.to()
  • 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)

npm loves you