UNPKG

maia-markov

Version:

Markov analysis and generation functions supporting various applications by Music Artificial Intelligence Algorithms, Inc.

58 lines (51 loc) 1.6 kB
// Individual user paths. var mainPaths = { "tom": __dirname + "/stm/0_perc.js", "anotherUser": __dirname + "/path/to/folder/of/json,midi,etc/folders/" }; // Requires. const fs = require("fs") const sr = require('seed-random') const { Midi } = require('@tonejs/midi') const ge = require("./generate") // Seed random number generation. sr('harrykane', {global: true}); // Overrides global Math.random. // sr('christianeriksen', {global: true}); // Overrides global Math.random. let randIdx = 0 // var numA = Math.random(); // console.log(numA); // sr.resetGlobal();// Reset to default Math.random. // Grab user name from command line to set path to data. var nextU = false var mainPath; process.argv.forEach(function(arg, ind){ if (arg === "-u"){ nextU = true } else if (nextU){ mainPath = mainPaths[arg] nextU = false } }) // Make output directory. var outdir = mainPath + "out/"; // fs.mkdir(outdir); var stmStr = fs.readFileSync(mainPath); var stm = JSON.parse(stmStr); // console.log("stm:", stm) console.log("randIdx before get_abs_suggestion:", randIdx) var gendOutput = ge.get_suggestion(stm, undefined, "beat_MNN_state", randIdx) console.log("randIdx after get_abs_suggestion:", gendOutput.randIdx) console.log("gendOutput.points:", gendOutput.points) // var midi = new Midi() // console.log("midi:", midi) // const track = midi.addTrack() // gendOutput.points.map(function(p){ // track.addNote({ // midi : p[1], // time : p[0], // duration: p[3], // velocity: p[5] // }) // }) // fs.writeFileSync("./gendOutput.mid", new Buffer(midi.toArray()))