UNPKG

brand-music

Version:

Strongly typed music theory library

170 lines (161 loc) 5.19 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all2) => { for (var name in all2) __defProp(target, name, { get: all2[name], enumerable: true }); }; var __copyProps = (to, from4, except, desc) => { if (from4 && typeof from4 === "object" || typeof from4 === "function") { for (let key of __getOwnPropNames(from4)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from4[key], enumerable: !(desc = __getOwnPropDesc(from4, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2); // src/PitchInterval.ts var PitchInterval_exports2 = {}; __export(PitchInterval_exports2, { add: () => add2, addChecked: () => addChecked2, between: () => piBetweenMnn, direction: () => direction, divChecked: () => divChecked2, divRound: () => divRound2, divTrunc: () => divTrunc2, from: () => from, fromNum: () => fromNum, fromNumRound: () => fromNumRound, fromNumTrunc: () => fromNumTrunc, fromUnknown: () => fromUnknown2, hasShape: () => hasShape, mark: () => mark, markNum: () => markNum, markUnknown: () => markUnknown, mul: () => mul2, mulChecked: () => mulChecked2, mulRound: () => mulRound2, mulTrunc: () => mulTrunc2, octaves: () => octaves, pic: () => picFromPi, semitones: () => stFromPi, sub: () => sub2, subChecked: () => subChecked2 }); module.exports = __toCommonJS(PitchInterval_exports2); // src/internal/utils.ts var mod = (a, n) => (a % n + n) % n; // src/internal/refined/Literal.ts var is = (start, end) => (v) => Number.isSafeInteger(v) && start <= v && v <= end; var modded = (start, end) => (v) => { const size = end - start + 1; const zero = v - start; const m = mod(zero, size); return m + start; }; var all = (start, end) => ( // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment [...Array(end - start + 1)].map((_, i) => start + i) ); var asInt = (v) => v; // src/internal/refined/Int.ts var isInt = (v) => Number.isInteger(v); var fromUnknown = (v) => isInt(v) ? v : void 0; var makeChecked = (v) => fromUnknown(v); var makeRound = (v) => Math.round(v); var makeTrunc = (v) => Math.trunc(v); var add = (a, b) => a + b; var addChecked = (a, b) => makeChecked(a + b); var sub = (a, b) => a - b; var subChecked = (a, b) => makeChecked(a - b); var mul = (a, b) => a * b; var mulChecked = (a, b) => makeChecked(a * b); var mulRound = (a, b) => makeRound(a * b); var mulTrunc = (a, b) => makeTrunc(a * b); var divChecked = (a, b) => makeChecked(a * b); var divRound = (a, b) => makeRound(a * b); var divTrunc = (a, b) => makeTrunc(a * b); // src/internal/refined/NonNegative.ts function makeAbs(v, edgeCases) { const caseNaN = edgeCases?.NaN ?? 0; if (Number.isNaN(v)) { return caseNaN; } else { return Math.abs(v); } } // src/internal/PitchInterval.ts var hasShape = isInt; var mark = (_v) => true; var markNum = (v) => hasShape(v); var markUnknown = (v) => hasShape(v); var from = (v) => v; var fromNum = (v) => markNum(v) ? v : void 0; var fromNumRound = (v) => from(makeRound(v)); var fromNumTrunc = (v) => from(makeTrunc(v)); var fromUnknown2 = (v) => markUnknown(v) ? v : void 0; var fromUndefinedable = (v) => v != null ? from(v) : v; var add2 = (a, b) => from(add(a, b)); var addChecked2 = (a, b) => fromUndefinedable(addChecked(a, b)); var sub2 = (a, b) => from(sub(a, b)); var subChecked2 = (a, b) => fromUndefinedable(subChecked(a, b)); var mul2 = (a, b) => from(mul(a, b)); var mulChecked2 = (a, b) => fromUndefinedable(mulChecked(a, b)); var mulRound2 = (a, b) => from(mulRound(a, b)); var mulTrunc2 = (a, b) => from(mulTrunc(a, b)); var divChecked2 = (a, b) => fromUndefinedable(divChecked(a, b)); var divRound2 = (a, b) => from(divRound(a, b)); var divTrunc2 = (a, b) => from(divTrunc(a, b)); var octaves = (pi) => pi === 0 ? 0 : makeAbs(makeTrunc(pi / 12)); var direction = (pi) => pi < 0 ? -1 : pi > 0 ? 1 : 0; // src/internal/PitchIntervalClass.ts var min = 0; var max = 11; var hasShape2 = is(min, max); var from2 = (v) => v; var fromIntMod = (v) => from2(modded(min, max)(v)); var const_ = (value) => value; var MIN = const_(min); var MAX = const_(max); var ALL = all(min, max).map(const_); // src/internal/Semitones.ts var from3 = (v) => v; var fromIntAbs = (v) => from3(makeAbs(v)); var const_2 = (v) => v; var MIN2 = const_2(0); // src/internal/conversion.ts var piBetweenMnn = (from4, to) => from(sub(asInt(to), asInt(from4))); var picFromPi = (pi) => fromIntMod(pi); var stFromPi = (pi) => fromIntAbs(pi); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { add, addChecked, between, direction, divChecked, divRound, divTrunc, from, fromNum, fromNumRound, fromNumTrunc, fromUnknown, hasShape, mark, markNum, markUnknown, mul, mulChecked, mulRound, mulTrunc, octaves, pic, semitones, sub, subChecked }); //# sourceMappingURL=PitchInterval.cjs.map