-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathalda.js
40 lines (36 loc) · 1.21 KB
/
alda.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var parseArgs = require('minimist');
var JZZ = require('jzz');
var alda = require('./js/index');
var fs = require('fs');
var argv = parseArgs(process.argv.slice(2));
if (argv['test-midi']) {
console.log('testing MIDI out...');
JZZ().or('Cannot start MIDI engine!')
.openMidiOut().or('Cannot open MIDI Out port!')
.wait(500).send([0x90,60,127]) // note on
.wait(500).send([0x80,60,0]).and('OK'); // note off
}
if (argv['parse-examples']) {
fs.readdir('examples', function (err, files) {
files.forEach(function (file) {
try {
var source = fs.readFileSync("examples/" + file, 'utf8');
var parsed = alda.parser.parse(source);
console.log(file + " OK");
} catch (error) {
// console.error(file + ": " + error.message);
// console.error(file + " FAIL")
}
});
})
}
if (argv['test-parser']) {
var filename = argv['test-parser'];
var source = fs.readFileSync(filename, 'utf8');
try {
var parsed = alda.parser.parse(source);
console.log(JSON.stringify(parsed, null, 3));
} catch (error) {
console.error(error.message);
}
}