timbre

JavaScript library for objective sound programming

npm install timbre
3 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