webdaw-modules
Version:
a set of modules for building a web-based DAW
46 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createNotes = void 0;
var index = 0;
exports.createNotes = function (events) {
var filtered = events.reduce(function (acc, val) {
// console.log(val.type);
if (val.type === 0x80 || val.type === 0x90) {
acc.push(val);
}
return acc;
}, []);
// filtered = sortMIDIEvents(filtered);
var notes = [];
var tmp = {};
filtered.forEach(function (e) {
var id = e.trackId + "-" + e.noteNumber;
// console.log(e.ticks, e.type, id);
if (e.type === 0x90) {
if (tmp[id]) {
// console.warn(`note existed already! ${id}`);
}
else {
tmp[id] = e;
}
}
else if (e.type === 0x80) {
if (!tmp[id]) {
// console.warn(`note doesn't exist! ${id}`);
}
else {
var noteOn = tmp[id];
var note = {
id: "note-" + new Date().getTime() + "-" + index++,
noteOn: noteOn,
noteOff: e,
};
notes.push(note);
delete tmp[id];
}
}
});
// console.log(notes);
return notes;
};
//# sourceMappingURL=createNotes.js.map