UNPKG

brand-music

Version:

Strongly typed music theory library

151 lines (141 loc) 4.39 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, from5, except, desc) => { if (from5 && typeof from5 === "object" || typeof from5 === "function") { for (let key of __getOwnPropNames(from5)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from5[key], enumerable: !(desc = __getOwnPropDesc(from5, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2); // src/MidiNoteNumber.ts var MidiNoteNumber_exports2 = {}; __export(MidiNoteNumber_exports2, { ALL: () => ALL, C4: () => C4, C_1: () => C_1, G9: () => G9, MAX: () => MAX, MIN: () => MIN, from: () => from, fromIntClamp: () => fromIntClamp, fromIntMod: () => fromIntMod, fromNum: () => fromNum, fromUnknown: () => fromUnknown, hasShape: () => hasShape, mark: () => mark, markNum: () => markNum, markUnknown: () => markUnknown, pc: () => pcFromMnn, pi: () => piBetweenMnn, semitones: () => stBetweenMnn, transposeChecked: () => mnnTransposeChecked, transposeClamped: () => mnnTransposeClamped, transposeModded: () => mnnTransposeModded }); module.exports = __toCommonJS(MidiNoteNumber_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 clamp = (start, end) => (v) => v < start ? start : v > end ? end : v; 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/MidiNoteNumber.ts var min = 0; var max = 127; var hasShape = is(min, max); 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 fromIntClamp = (v) => from(clamp(min, max)(v)); var fromIntMod = (v) => from(modded(min, max)(v)); var fromUnknown = (v) => markUnknown(v) ? v : void 0; var const_ = (v) => v; var MIN = const_(min); var MAX = const_(max); var ALL = all(min, max).map(const_); var C_1 = const_(0); var C4 = const_(60); var G9 = const_(127); // src/internal/refined/Int.ts var add = (a, b) => a + b; var sub = (a, b) => a - b; // src/internal/PitchClass.ts var min2 = 0; var max2 = 11; var hasShape2 = is(min2, max2); var from2 = (v) => v; var fromIntMod2 = (v) => from2(modded(min2, max2)(v)); var const_2 = (value) => value; var MIN2 = const_2(min2); var MAX2 = const_2(max2); var ALL2 = all(min2, max2).map(const_2); // 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 from3 = (v) => v; // src/internal/Semitones.ts var from4 = (v) => v; var fromIntAbs = (v) => from4(makeAbs(v)); var const_3 = (v) => v; var MIN3 = const_3(0); // src/internal/conversion.ts var mnnAdd = (value, interval) => add(asInt(value), asInt(interval)); var mnnTransposeChecked = (value, interval) => fromNum(mnnAdd(value, interval)); var mnnTransposeClamped = (value, interval) => fromIntClamp(mnnAdd(value, interval)); var mnnTransposeModded = (value, interval) => fromIntMod(mnnAdd(value, interval)); var pcFromMnn = (mnn) => fromIntMod2(asInt(mnn)); var piBetweenMnn = (from5, to) => from3(sub(asInt(to), asInt(from5))); var stBetweenMnn = (a, b) => fromIntAbs(sub(asInt(a), asInt(b))); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ALL, C4, C_1, G9, MAX, MIN, from, fromIntClamp, fromIntMod, fromNum, fromUnknown, hasShape, mark, markNum, markUnknown, pc, pi, semitones, transposeChecked, transposeClamped, transposeModded }); //# sourceMappingURL=MidiNoteNumber.cjs.map