doremi-script
Version:
Letter music notation processor
93 lines (91 loc) • 4.26 kB
JavaScript
(function() {
var Logger, contains_word_helper, debug, parser, root, sys, test_to_musicxml, to_musicxml, utils, _;
root = typeof exports !== "undefined" && exports !== null ? exports : this;
debug = false;
if (typeof global !== "undefined" && global !== null) {
global._console || (global._console = require('./underscore.logger.js'));
}
Logger = global._console.constructor;
if (typeof require !== "undefined" && require !== null) {
_ = require("underscore")._;
}
require('./doremi_script_parser.js');
sys = require('sys');
utils = require('./tree_iterators.js');
_console.level = Logger.INFO;
_.mixin(_console.toObject());
_.mixin({
each_slice: function(obj, slice_size, iterator, context) {
var collection = obj.map(function(item) { return item; });
if (typeof collection.slice !== 'undefined') {
for (var i = 0, s = Math.ceil(collection.length/slice_size); i < s; i++) {
iterator.call(context, _(collection).slice(i*slice_size, (i*slice_size)+slice_size), obj);
}
}
return;
}
});;
to_musicxml = require('./to_musicxml.js').to_musicxml;
parser = DoremiScriptParser;
test_to_musicxml = function(str, test, msg) {
var composition;
if (msg == null) {
msg = "";
}
composition = parser.parse(str);
_.debug("test_to_musicxml:composition is " + composition);
composition.source = str;
_.debug("test_to_musicxml, str is \n" + str + "\n");
return to_musicxml(composition);
};
exports.ztest_single_note = function(test) {
var input, musicxml, words;
input = "S";
musicxml = test_to_musicxml(input, test);
"xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n -1, failure_msg);
_results.push(console.log(success_msg));
}
return _results;
};
exports.test_pitches = function(test) {
var find, input, list, musicxml, words, x;
input = "SRGmPDN";
find = "CDEFGAB";
input = "S";
find = "C";
list = find.split('');
words = (function() {
var _i, _len, _results;
_results = [];
for (_i = 0, _len = list.length; _i < _len; _i++) {
x = list[_i];
_results.push("<step>" + x + "</step>");
}
return _results;
})();
musicxml = test_to_musicxml(input, test);
contains_word_helper(test, input, musicxml, words);
return test.done();
};
}).call(this);