brand-music
Version:
Strongly typed music theory library
151 lines (141 loc) • 4.39 kB
JavaScript
;
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