Skip to content

Instantly share code, notes, and snippets.

@emkay
Created April 23, 2015 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save emkay/5b3dd07e9301b8623d5b to your computer and use it in GitHub Desktop.
Save emkay/5b3dd07e9301b8623d5b to your computer and use it in GitHub Desktop.
Not Bach
var Song = require('nesly-sound');
var song = Song();
var sq1 = song.square1;
var sq2 = song.square2;
var tri = song.triangle;
var noi = song.noise;
var Aminor4 = ['A4', 'C4', 'E4', 'A5'];
var Cmajor3 = ['C3', 'E3', 'G3', 'C4'];
for (var i = 1; i <= 192; i++) {
sq1(Aminor4).timing(1/32);
}
for (var i = 1; i <= 128; i++) {
sq1(Cmajor3).timing(1/32);
}
function part1(channel) {
var melody = [
'A8', 'G7', 'F7',
'E7', 'D7', 'C7',
'B7', 'C7', 'D7',
'C7', 'B7', 'C7',
'A7', 'B7', 'C7',
'E6', 'A7', 'C7',
'B7', 'A7', 'B7',
'Gs6', 'A7', 'B7',
'E6', 'B7', 'D7',
'C7', 'B7', 'C7',
'A7', 'C7', 'E7',
'A8', 'G7', 'Fs7'
];
for (var n = 0; n <= 40; n++) {
channel(['rest']).timing(1/8);
}
channel(['E7']).timing(1/2);
channel(melody).timing(1/8);
noi(['$10']).timing(1);
for (var drumsI = 0; drumsI <= 32; drumsI++) {
noi(['$04', '$06']).timing(1/8);
}
}
function part2(channel) {
channel(['G7']).timing(1/2);
channel(['G7', 'Fs7', 'E7']).timing(1/4);
channel(['B8', 'B8']).timing(1/4);
channel(['B8', 'A8', 'B8']).timing(1/8);
channel(['G7', 'Fs7', 'E7']).timing(1/8);
channel(['B8', 'B8']).timing(1/4);
channel(['B8', 'B8']).timing(1/4);
channel(['B8', 'B8', 'B8', 'B8']).timing(1/8);
channel(['B8', 'A8', 'B8']).timing(1/8);
channel(['G7', 'E7', 'Fs7', 'Gs7']).timing(1/4);
channel(['rest']).timing(1/2);
for (var drumsI = 0; drumsI <= 16; drumsI++) {
noi(['$01', '$07']).timing(1/8);
}
}
function part3(channel) {
channel(['A8']).timing(1/4);
channel(['A7', 'C7']).timing(1/8);
channel(['rest']).timing(1/4);
channel(['E7']).timing(1/4);
channel(['Gs7', 'A8', 'B8']).timing(1/8);
channel(['A8', 'Gs7', 'A8']).timing(1/8);
channel(['E7', 'D7', 'E7']).timing(1/8);
channel(['C7', 'E7', 'A8']).timing(1/8);
channel(['Gs7', 'Fs7', 'G7']).timing(1/8);
channel(['E7']).timing(1/4);
channel(['G7']).timing(1/4);
channel(['B8', 'A8', 'G7']).timing(1/8);
channel(['A8']).timing(1/8 * 1.5);
channel(['rest', 'rest']).timing(1/8);
channel(['C7', 'E7', 'A8']).timing(1/2);
for (var drumsI = 0; drumsI <= 32; drumsI++) {
noi(['$02', '$08']).timing(1/8);
}
}
function part4(channel) {
channel(['D7']).timing(1/4);
channel(['F6', 'A6']).timing(1/8);
channel(['D7', 'G6', 'D7']).timing(1/4);
channel(['D7', 'C7', 'D7']).timing(1/8);
channel(['G6', 'B7', 'D7']).timing(1/8);
channel(['F7', 'E7', 'D7']).timing(1/8);
channel(['E7']).timing(1/4);
channel(['F7']).timing(1/8);
channel(['G7']).timing(1.5);
channel(['G7']).timing(1/4);
channel(['B6', 'C6']).timing(1/4);
channel(['G6']).timing(1/8);
channel(['G7']).timing(1.5);
channel(['G7']).timing(1/4);
channel(['A6', 'B6']).timing(1/4);
channel(['G6']).timing(1/8);
channel(['G7']).timing(1.5);
channel(['G7']).timing(1/4);
channel(['D7']).timing(1/4);
for (var drumsI = 0; drumsI <= 20; drumsI++) {
noi(['$10']).timing(1/2);
}
channel(['rest']).timing(1);
}
function ending() {
part3(tri);
tri(['A3', 'A3', 'D3', 'E3', 'As3']).timing(1/2);
tri(['A3', 'A3', 'D3', 'E3', 'As3'].reverse()).timing(1/2);
noi(['$10']).timing(1);
noi(['$11']).timing(1/2);
noi(['$12']).timing(1/2);
noi(['$13']).timing(1);
for (var i = 0; i <= 8; i++) {
sq1(Cmajor3).timing(1/16);
}
}
part1(tri);
part2(tri);
part3(tri);
part4(tri);
ending();
song.done();
song.write();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment