Skip to content

Instantly share code, notes, and snippets.

export const CLEAR_COMMAND = "\u001b[2J\u001b[0;0H";
function toTimeFormat(time) {
let ss = time % 60;
let mm = Math.floor(time / 60) % 60;
let hh = Math.floor(time / 3600);
let _ = value => value < 10 ? `0${value}` : value;
return _(hh ) + ":" + _(mm) + ":" + _(ss);
}
function timestampToTimeItems(timestamp) {
return {
hours: (((timestamp / 3600000)|0) + 9) % 24,
minutes: ((timestamp / 60000)|0) % 60,
seconds: ((timestamp / 1000)|0) % 60,
};
}
(function() {
var AudioNode = global.AudioNode;
var AudioNode$connect = AudioNode.prototype.connect;
var AudioNode$disconnect = AudioNode.prototype.disconnect;
function connect() {
var args = [].slice.call(arguments);
if (args.length && typeof args[0].__connectFrom === "function") {
args[0].__connectFrom.apply(args[0], [ this ].concat(args.slice(1)));
import fs from "fs";
import path from "path";
import midiConverter from "midi-converter";
let name = "clair-de-lune";
let file = fs.readFileSync(path.join(__dirname, `${name}.mid`), "binary");
let json = midiConverter.midiToJson(file);
let ticksPerBeat = json.header.ticksPerBeat;
let tracks = [];
let COLORS = [
[ 200, 239, 234 ],
[ 209, 241, 204 ],
[ 254, 247, 213 ],
[ 252, 241, 211 ],
[ 249, 223, 213 ],
[ 246, 212, 216 ],
[ 243, 209, 229 ],
[ 240, 208, 228 ],
{
"noteNumber": 69,
"velocity": 100,
"playbackTime": 0,
"duration": 1,
}
export function fineToDetune(x) {
return Math.log((x + 1000) / 1000) / Math.log(Math.pow(2, 1 / 12)) * 100;
}
"use strict";
var AudioNode$connect = AudioNode.prototype.connect;
var AudioNode$disconnect = AudioNode.prototype.disconnect;
AudioNode.prototype.connect = connect;
AudioNode.prototype.disconnect = disconnect;
function connect(destination) {
var args = [].slice.call(arguments, 1);
{
"parser": "babel-eslint",
"env": {
"node": true
},
"rules": {
// possible errors
"comma-dangle": [ 2, "always-multiline" ],
"no-cond-assign": [ 2, "except-parens" ],
"no-console": 2,