Skip to content

Instantly share code, notes, and snippets.

@vpArth
Created November 25, 2015 12:00
Show Gist options
  • Save vpArth/20f7a799dc970cc5ba24 to your computer and use it in GitHub Desktop.
Save vpArth/20f7a799dc970cc5ba24 to your computer and use it in GitHub Desktop.
// http://www.multiplayerpiano.com/
var TEMP = 210; // bpm
function tap(note, part, next) {
MPP.piano.play(note, 1, MPP.client.getOwnParticipant(), 0);
setTimeout(function(){
MPP.piano.stop(note, MPP.client.getOwnParticipant(), 0);
next();
}, 60e3/(TEMP*part)*4);
}
function play(melody) {
var data = melody.split(',');
var i = 0;
playNote();
function playNote() {
var note = data[i].split('/');
if (!note[1]) note[1] = 16;
console.log(note);
tap(note[0], note[1], function(){
if (++i < data.length) playNote();
});
}
}
var shmel = [];
shmel = shmel.concat(['e5', 'ds5', 'd5', 'cs5'], ['d5', 'cs5', 'c5', 'b4']);
shmel = shmel.concat(['c5', 'b4', 'as4', 'a4'], ['gs4', 'g4', 'fs4', 'f4']);
shmel = shmel.concat(['e4', 'ds4', 'd4', 'cs4'], ['d4', 'cs4', 'c4', 'b3']);
shmel = shmel.concat(['c4', 'b3', 'as3', 'a3'], ['gs3', 'g3', 'fs3', 'f3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['d3', 'cs3', 'c3', 'b2']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['d3', 'cs3', 'c3', 'b2']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['c3', 'f3', 'e3', 'ds3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['c3', 'cs3', 'd3', 'ds3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['c3', 'f3', 'e3', 'ds3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['c3', 'cs3', 'd3', 'ds3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['d3', 'cs3', 'c3', 'b2']);
shmel = shmel.concat(['c3', 'cs3', 'd3', 'ds3'], ['e3', 'f3', 'e3', 'ds3']);
shmel = shmel.concat(['e3', 'ds3', 'd3', 'cs3'], ['d3', 'cs3', 'c3', 'b2']);
shmel = shmel.concat(['c3', 'cs3', 'd3', 'ds3'], ['e3', 'f3', 'g3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['f3', 'as3', 'a3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['f3', 'fs3', 'g3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['f3', 'as3', 'a3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['f3', 'fs3', 'g3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['g3', 'fs3', 'f3', 'e3']);
shmel = shmel.concat(['f3', 'fs3', 'g3', 'gs3'], ['a3', 'as3', 'a3', 'gs3']);
shmel = shmel.concat(['a3', 'gs3', 'g3', 'fs3'], ['g3', 'fs3', 'f3', 'e3']);
shmel = shmel.concat(['f3', 'fs3', 'g3', 'gs3'], ['a3', 'as3', 'a3', 'gs3']);
shmel = shmel.concat(['a3', 'a2', 'a2', 'a2'], ['a2', 'a2', 'a2', 'a2']);
shmel = shmel.concat(['as2', 'gs2', 'as2', 'gs2'], ['as2', 'gs2', 'as2', 'gs2']);
shmel = shmel.concat(['a2', 'a2', 'a2', 'a2'], ['a2', 'a2', 'a2', 'a2']);
shmel = shmel.concat(['as2', 'gs2', 'as2', 'gs2'], ['as2', 'gs2', 'as2', 'gs2']);
shmel = shmel.concat(['a2', 'as2', 'a2', 'gs2'], ['a2', 'as2', 'a2', 'gs2']);
shmel = shmel.concat(['a2', 'as2', 'a2', 'gs2'], ['a2', 'as2', 'a2', 'gs2']);
shmel = shmel.concat(['a2', 'as2', 'b2', 'c3'], ['cs3', 'c3', 'b2', 'as2']);
shmel = shmel.concat(['a2', 'as2', 'b2', 'c3'], ['cs3', 'd3', 'ds3', 'e3']);
shmel = shmel.concat(['d3', 'd3', 'd3', 'd3'], ['d3', 'd3', 'd3', 'd3']);
shmel = shmel.concat(['ds3', 'cs3', 'ds3', 'cs3'], ['ds3', 'cs3', 'ds3', 'cs3']);
shmel = shmel.concat(['d3', 'd3', 'd3', 'd3'], ['d3', 'd3', 'd3', 'd3']);
shmel = shmel.concat(['ds3', 'cs3', 'ds3', 'cs3'], ['ds3', 'cs3', 'ds3', 'cs3']);
shmel = shmel.concat(['d3', 'ds3', 'd3', 'cs3'], ['d3', 'ds3', 'd3', 'cs3']);
shmel = shmel.concat(['d3', 'ds3', 'd3', 'cs3'], ['d3', 'ds3', 'd3', 'cs3']);
shmel = shmel.concat(['d3', 'ds3', 'e3', 'f3'], ['fs3', 'f3', 'e3', 'ds3']);
shmel = shmel.concat(['d3', 'ds3', 'e3', 'f3'], ['fs3', 'f3', 'e3', 'ds3']);
shmel = shmel.concat(['d4', 'cs4', 'c4', 'b3'], ['as3', 'ds4', 'd4', 'cs4']);
shmel = shmel.concat(['d4', 'cs4', 'c4', 'b3'], ['as3', 'b3', 'c4', 'cs4']);
shmel = shmel.concat(['d4', 'cs4', 'c4', 'b3'], ['c4', 'b3', 'as3', 'a3']);
shmel = shmel.concat(['as3', 'b3', 'c4', 'cs4'], ['c4', 'cs4', 'd4', 'ds4']);
shmel = shmel.concat(['e4', 'ds4', 'd4', 'cs4'], ['d4', 'cs4', 'c4', 'b3']);
shmel = shmel.concat(['c4', 'b3', 'as3', 'a3'], ['gs3', 'g3', 'fs3', 'f3']);
play(shmel.join(','));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment