1.1.2 • Published 8 years ago

wa-metro v1.1.2

Weekly downloads
41
License
-
Repository
-
Last release
8 years ago

wa-metro

Simple event scheduler for Web Audio API.

This library is based on Chris Wilson's scheduling method used in his metronome example.

Installation

You can install wa-metro from npm.

npm install wa-metro

Or grab the latest version from build folder and include it in your html.

<script src='wa-metro.min.js'></script>

Example Usage

var context = new AudioContext();
var callback = function (time, step) {
	//schedule audio events with time and step number
};
var metro = new Metro(context, callback);
metro.start();

Callback

The callback function will have time, step and timeFromScheduled parameters. You can use these values to create dynamic loops and animations.

Callback Parameters

  • time - the audio time for the step which can be used to schedule audio events.
  • step - the number of the scheduled step.
  • timeFromScheduled - the time (in seconds) that the event will be triggered from the schedule event (time - context.currentTime). This time can be used to schedule animations and other events as shown in the example below.
var metro = new Metro(context, callback);
function callback(time, step, timeFromScheduled) {
	var osc = context.createOscillator();
	osc.connect(context.destination);
	if(step === 1) {
		osc.frequency.value = 880;
	}
	osc.start(time);
	osc.stop(time + 0.1);

  setTimeout(function(){
    // trigger some js event
  }, timeFromScheduled * 1000);
}

Methods

var metro = new Metro(context, callback);
metro.start(); // starts the clock and schedules events
metro.stop(); // stops the clock and resets the step to 1
metro.pause(); // pauses the clock and keeps the current step number

Configuration

var metro = new Metro(context, callback);
metro.tempo = 100; // in BPM, defaults to 120
metro.steps = 8; // number of steps in a bar. defaults to 16
metro.look_ahead = 0.5; // look ahead time in Seconds. defaults to 1.0
metro.callback = function(time, step){}; // change the callback
1.1.2

8 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago