0.1.1 • Published 8 years ago

step-sequencer v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

step-sequencer

An EventEmitter-based step-sequencer for Node.js.

Usage

var StepSequencer = require('step-sequencer');

// Instantiate a new StepSequencer object
var tempo = 120;
var division = 4;
var sequence = [0, 1, 2, 3];
var stepSequencer = new StepSequencer(tempo, division, sequence);

// The StepSequencer emits the number of
// the step when that step is to be played
stepSequencer.on('0', function (step) {
    console.log(step);
})
.on('1', function (step) {
    console.log(step);
})
.on('2', function (step) {
    console.log(step);
})
.on('3', function (step) {
    console.log(step);
});

// Begin playing the sequence
stepSequencer.play();
// 0
// 1
// 2
// 3 ...

API

StepSequencer.constructor

Constructrs the StepSequencer object:

var stepSequencer = new StepSequencer(tempo = 120, division = 4, sequence = []);
  • tempo is the tempo of playback
  • division is the number of beats per measure
  • sequence is the sequence of data to be emitted

StepSequencer.prototype.play

Begins playing the sequence:

stepSequencer.play();
// 0
// 1
// 2
// 3 ...

StepSequencer.prototype.stop

Stops playing the sequence, does not reset the current step:

// 0
// 1
stepSequencer.stop();

StepSequencer.prototype.resume

Resumes playing from the current step. Continued from the previous example:

stepSequencer.resume();
// 2
// 3 ...

StepSequencer.prototype.setTempo

Sets the tempo, even if the stepSequencer is playing:

stepSequencer.setTempo(120);

StepSequencer.prototype.setSequence

Sets the division and sequence, even if the stepSequencer is playing.

The tempo is updated as well, if the division changes:

stepSequencer.setSequence(4, [1, 2, 3, 4]);

License

MIT

0.1.1

8 years ago

0.1.0

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago

0.0.0

8 years ago