andante
This is work in progress. Do not use ... yet
Yet another music scheduler. Given an array of events with value, position and
duration (both in seconds), schedule the events to play:
var ctx = new AudioContext();
var andante = require('andante')(ctx);
var events = "c d e f g".split(' ').map(function(note, index) {
return { value: note, position: index * 0.5, duration: 0.5 };
});
andante.schedule(events, function(event, position, duration) {
});
This is the scheduler of ScoreJS
and works easy with soundfont-player)
var ctx = new AudioContext();
var Score = require('scorejs');
var andante = require('andante')(ctx);
var soundfont = require('soundfont-player')(ctx);
var melody = Score('a b c d | e f g a4');
var reverse = melody.reverse().transpose('M3');
var score = Score.merge(melody, reverse).repeat(5).toTempo(90);
var piano = soundfont.instruent('acoustic_grand_piano');
andante.schedule(score, function(event, position, duration)) {
piano.play(event.value, position, duration);
}
Running the example
Clone this repo, start a server:
npm i -g http-server
http-server
And visit http://localhost:8080/example
License
MIT License