UNPKG

@tonejs/midi

Version:

Convert binary midi into JSON

98 lines 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ControlChange = exports.controlChangeIds = exports.controlChangeNames = void 0; /** * A map of values to control change names * @hidden */ exports.controlChangeNames = { 1: "modulationWheel", 2: "breath", 4: "footController", 5: "portamentoTime", 7: "volume", 8: "balance", 10: "pan", 64: "sustain", 65: "portamentoTime", 66: "sostenuto", 67: "softPedal", 68: "legatoFootswitch", 84: "portamentoControl", }; /** * swap the keys and values * @hidden */ exports.controlChangeIds = Object.keys(exports.controlChangeNames).reduce(function (obj, key) { obj[exports.controlChangeNames[key]] = key; return obj; }, {}); var privateHeaderMap = new WeakMap(); var privateCCNumberMap = new WeakMap(); /** * Represents a control change event */ var ControlChange = /** @class */ (function () { /** * @param event * @param header */ function ControlChange(event, header) { privateHeaderMap.set(this, header); privateCCNumberMap.set(this, event.controllerType); this.ticks = event.absoluteTime; this.value = event.value; } Object.defineProperty(ControlChange.prototype, "number", { /** * The controller number */ get: function () { return privateCCNumberMap.get(this); }, enumerable: false, configurable: true }); Object.defineProperty(ControlChange.prototype, "name", { /** * return the common name of the control number if it exists */ get: function () { if (exports.controlChangeNames[this.number]) { return exports.controlChangeNames[this.number]; } else { return null; } }, enumerable: false, configurable: true }); Object.defineProperty(ControlChange.prototype, "time", { /** * The time of the event in seconds */ get: function () { var header = privateHeaderMap.get(this); return header.ticksToSeconds(this.ticks); }, set: function (t) { var header = privateHeaderMap.get(this); this.ticks = header.secondsToTicks(t); }, enumerable: false, configurable: true }); ControlChange.prototype.toJSON = function () { return { number: this.number, ticks: this.ticks, time: this.time, value: this.value, }; }; return ControlChange; }()); exports.ControlChange = ControlChange; //# sourceMappingURL=ControlChange.js.map