Files
chordfinder/tonal.min.js

3 lines
40 KiB
JavaScript
Raw Normal View History

"use strict"; var Tonal = (() => { var ft = Object.defineProperty; var Xn = Object.getOwnPropertyDescriptor; var Qn = Object.getOwnPropertyNames; var Jn = Object.prototype.hasOwnProperty; var pt = (t, n) => { for (var e in n) ft(t, e, { get: n[e], enumerable: !0 }) }, Wn = (t, n, e, r) => { if (n && typeof n == "object" || typeof n == "function") for (let o of Qn(n)) !Jn.call(t, o) && o !== e && ft(t, o, { get: () => n[o], enumerable: !(r = Xn(n, o)) || r.enumerable }); return t }; var Yn = t => Wn(ft({}, "__esModule", { value: !0 }), t); var la = {}; pt(la, { AbcNotation: () => nn, Array: () => bt, Chord: () => dn, ChordDictionary: () => ca, ChordType: () => Nt, Collection: () => an, Core: () => tt, DurationValue: () => fn, Interval: () => Mn, Key: () => wn, Midi: () => bn, Mode: () => $n, Note: () => Tn, PcSet: () => sa, Pcset: () => It, Progression: () => kn, Range: () => Gn, RomanNumeral: () => En, Scale: () => Un, ScaleDictionary: () => ua, ScaleType: () => jt, TimeSignature: () => Kn, Tonal: () => ma, accToAlt: () => _, altToAcc: () => E, coordToInterval: () => G, coordToNote: () => vt, decode: () => Z, deprecate: () => d, distance: () => b, encode: () => Y, fillStr: () => $, interval: () => l, isNamed: () => k, isPitch: () => q, note: () => s, stepToLetter: () => ht, tokenizeInterval: () => yt, tokenizeNote: () => H, tonicIntervalsTransposer: () => D, transpose: () => u }); var tt = {}; pt(tt, { accToAlt: () => _, altToAcc: () => E, coordToInterval: () => G, coordToNote: () => vt, decode: () => Z, deprecate: () => d, distance: () => b, encode: () => Y, fillStr: () => $, interval: () => l, isNamed: () => k, isPitch: () => q, note: () => s, stepToLetter: () => ht, tokenizeInterval: () => yt, tokenizeNote: () => H, tonicIntervalsTransposer: () => D, transpose: () => u }); var $ = (t, n) => Array(Math.abs(n) + 1).join(t); function d(t, n, e) { return function (...r) { return console.warn(`${t} is deprecated. Use ${n}.`), e.apply(this, r) } } function k(t) { return t !== null && typeof t == "object" && typeof t.name == "string" } function q(t) { return t !== null && typeof t == "object" && typeof t.step == "number" && typeof t.alt == "number" } var Xt = [0, 2, 4, -1, 1, 3, 5], Qt = Xt.map(t => Math.floor(t * 7 / 12)); function Y(t) { let { step: n, alt: e, oct: r, dir: o = 1 } = t, a = Xt[n] + 7 * e; if (r === void 0) return [o * a]; let i = r - Qt[n] - 4 * e; return [o * a, o * i] } var Zn = [3, 0, 4, 1, 5, 2, 6]; function Z(t) { let [n, e, r] = t, o = Zn[te(n)], a = Math.floor((n + 1) / 7); if (e === void 0) return { step: o, alt: a, dir: r }; let i = e + 4 * a + Qt[o]; return { step: o, alt: a, oct: i, dir: r } } function te(t) { let n = (t + 1) % 7; return n < 0 ? 7 + n : n } var Jt = { empty: !0, name: "", pc: "", acc: "" }, Ut = new Map, ht = t => "CDEFGAB".charAt(t), E = t => t < 0 ? $("b", -t) : $("#", t), _ = t => t[0] === "b" ? -t.length : t.length; function s(t) { let n = JSON.stringify(t), e = Ut.get(n); if (e) return e; let r = typeof t == "string" ? re(t) : q(t) ? s(oe(t)) : k(t) ? s(t.name) : Jt; return Ut.set(n, r), r } var ne = /^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/; function H(t) { let n = ne.exec(t); return [n[1].toUpperCase(), n[2].replace(/x/g, "##"), n[3], n[4]] } function vt(t) { return s(Z(t)) } var ee = (t, n) => (t % n + n) % n, Pt = [0, 2, 4, 5, 7, 9, 11]; function re(t) { let n = H(t); if (n[0] === "" || n[3] !== "") return Jt; let e = n[0], r = n[1], o = n[2], a = (e.charCodeAt(0) + 3) % 7, i = _(r), m = o.length ? +o : void 0, c = Y({ step: a, alt: i, oct: m }), P = e + r + o, h = e + r, j = (Pt[a] + i + 120) % 12, f = m === void 0 ? ee(Pt[a] + i, 12) - 12 * 99 : Pt[a] + i + 12 * (m + 1), x = f >= 0 && f <= 127 ? f : null, C = m === void 0 ? null : Math.pow(2, (f - 69) / 12) * 440; return { empty: !1, acc: r, alt: i, chroma: j, coord: c, freq: C, height: f, letter: e, midi: x, name: P, oct: m, pc: h, step: a } } function oe(t) { let { step: n, alt: e, oct: r } = t, o = ht(n); if (!o) return ""; let a = o + E(e); return r || r === 0 ? a + r : a } var Mt = { empty: !0, name: "",
2023-06-21 21:01:21 +08:00
//# sourceMappingURL=tonal.min.js.map