JavaScript library for objective sound programming
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
docs.md
examples
misc adding 2 new extras: mp3_decode and soundfont Aug 3, 2013
src These look like typos / copy-and-paste errors Mar 12, 2015
test
.gitignore fix .gitignore Jan 19, 2013
Gruntfile.js
LICENSE
README.md
bower.json
favicon.ico update favicon Dec 27, 2012
package.json v14.11.25 Nov 26, 2014
timbre.as fixed: Flash-fallback Apr 1, 2013
timbre.dev.js
timbre.node.js update for readable-stream api Apr 17, 2013
timbre.swf fixed: Flash-fallback Apr 1, 2013

README.md

This repository is no longer maintained.

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

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 IE10)

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

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: 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)