Skip to content

mohayonao/pico.js

Repository files navigation

pico.js

Build Status NPM Version Bower 6to5 License

Audio processor for the cross-platform

Support

Support API
Google Chrome 10+ Web Audio API
Firefox 25+ Web Audio API
Safari 6+ Web Audio API
Opera 15+ Web Audio API
Internet Explorer 10 Flash fallback
Node.js 0.10 node-speaker

Installation

npm:

npm install node-pico

bower:

bower install pico.js

downloads:

API

  • Pico.play(audioprocess: function): void
  • Pico.pause(): void
  • Pico.sampleRate: number
  • Pico.bufferSize: number
  • Pico.isPlaying: boolean

Example

var Pico = require("node-pico");

function sinetone() {
  var x1 = 0, y1 = 440 / Pico.sampleRate;
  var x2 = 0, y2 = 442 / Pico.sampleRate;

  return function(e) {
    var out = e.buffers;

    for (var i = 0; i < e.bufferSize; i++) {
      out[0][i] = Math.sin(2 * Math.PI * x1) * 0.25;
      out[1][i] = Math.sin(2 * Math.PI * x2) * 0.25;
      x1 += y1;
      x2 += y2;
    }
  };
}

Pico.play(sinetone());

setTimeout(function() {
  Pico.pause();
}, 5000);

How to play other examples on node.js

$ npm install .
$ npm run build
$ node examples

Development

build: 6to5 -> browserify -> uglify

npm run build

test: mocha

npm run test

coverage: istanbul

npm run cover

lint: jshint

npm run lint

License

MIT