{"version":3,"sources":["jsdelivr-header.js","/npm/tonal-interval@2.2.2/build/es5.js"],"names":[],"mappings":"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","file":"/npm/tonal-interval@2.2.2/build/es5.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/tonal-interval@2.2.2/build/es5.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar IVL_TNL = \"([-+]?\\\\d+)(d{1,4}|m|M|P|A{1,4})\";\r\nvar IVL_STR = \"(AA|A|P|M|m|d|dd)([-+]?\\\\d+)\";\r\nvar REGEX = new RegExp(\"^\" + IVL_TNL + \"|\" + IVL_STR + \"$\");\r\nvar SIZES = [0, 2, 4, 5, 7, 9, 11];\r\nvar TYPES = \"PMMPPMM\";\r\nvar CLASSES = [0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1];\r\nvar NAMES = \"1P 2m 2M 3m 3M 4P 5P 6m 6M 7m 7M 8P\".split(\" \");\r\nvar names = function (types) {\r\n    return typeof types !== \"string\"\r\n        ? NAMES.slice()\r\n        : NAMES.filter(function (n) { return types.indexOf(n[1]) !== -1; });\r\n};\r\nvar tokenize = function (str) {\r\n    var m = REGEX.exec(\"\" + str);\r\n    if (m === null)\r\n        return null;\r\n    return (m[1] ? [m[1], m[2]] : [m[4], m[3]]);\r\n};\r\nvar NO_IVL = Object.freeze({\r\n    name: null,\r\n    num: null,\r\n    q: null,\r\n    step: null,\r\n    alt: null,\r\n    dir: null,\r\n    type: null,\r\n    simple: null,\r\n    semitones: null,\r\n    chroma: null,\r\n    oct: null\r\n});\r\nvar fillStr = function (s, n) { return Array(Math.abs(n) + 1).join(s); };\r\nvar qToAlt = function (type, q) {\r\n    if (q === \"M\" && type === \"M\")\r\n        return 0;\r\n    if (q === \"P\" && type === \"P\")\r\n        return 0;\r\n    if (q === \"m\" && type === \"M\")\r\n        return -1;\r\n    if (/^A+$/.test(q))\r\n        return q.length;\r\n    if (/^d+$/.test(q))\r\n        return type === \"P\" ? -q.length : -q.length - 1;\r\n    return null;\r\n};\r\nvar altToQ = function (type, alt) {\r\n    if (alt === 0)\r\n        return type === \"M\" ? \"M\" : \"P\";\r\n    else if (alt === -1 && type === \"M\")\r\n        return \"m\";\r\n    else if (alt > 0)\r\n        return fillStr(\"A\", alt);\r\n    else if (alt < 0)\r\n        return fillStr(\"d\", type === \"P\" ? alt : alt + 1);\r\n    else\r\n        return null;\r\n};\r\nvar numToStep = function (num) { return (Math.abs(num) - 1) % 7; };\r\nvar properties = function (str) {\r\n    var t = tokenize(str);\r\n    if (t === null)\r\n        return NO_IVL;\r\n    var p = {\r\n        num: 0,\r\n        q: \"d\",\r\n        name: \"\",\r\n        type: \"M\",\r\n        step: 0,\r\n        dir: -1,\r\n        simple: 1,\r\n        alt: 0,\r\n        oct: 0,\r\n        semitones: 0,\r\n        chroma: 0,\r\n        ic: 0\r\n    };\r\n    p.num = +t[0];\r\n    p.q = t[1];\r\n    p.step = numToStep(p.num);\r\n    p.type = TYPES[p.step];\r\n    if (p.type === \"M\" && p.q === \"P\")\r\n        return NO_IVL;\r\n    p.name = \"\" + p.num + p.q;\r\n    p.dir = p.num < 0 ? -1 : 1;\r\n    p.simple = (p.num === 8 || p.num === -8\r\n        ? p.num\r\n        : p.dir * (p.step + 1));\r\n    p.alt = qToAlt(p.type, p.q);\r\n    p.oct = Math.floor((Math.abs(p.num) - 1) / 7);\r\n    p.semitones = p.dir * (SIZES[p.step] + p.alt + 12 * p.oct);\r\n    p.chroma = ((((p.dir * (SIZES[p.step] + p.alt)) % 12) + 12) %\r\n        12);\r\n    return Object.freeze(p);\r\n};\r\nvar cache = {};\r\nfunction props(str) {\r\n    if (typeof str !== \"string\")\r\n        return NO_IVL;\r\n    return cache[str] || (cache[str] = properties(str));\r\n}\r\nvar num = function (str) { return props(str).num; };\r\nvar name = function (str) { return props(str).name; };\r\nvar semitones = function (str) { return props(str).semitones; };\r\nvar chroma = function (str) { return props(str).chroma; };\r\nvar ic = function (ivl) {\r\n    if (typeof ivl === \"string\")\r\n        ivl = props(ivl).chroma;\r\n    return typeof ivl === \"number\" ? CLASSES[ivl % 12] : null;\r\n};\r\nvar build = function (_a) {\r\n    var _b = _a === void 0 ? {} : _a, num = _b.num, step = _b.step, alt = _b.alt, _c = _b.oct, oct = _c === void 0 ? 1 : _c, dir = _b.dir;\r\n    if (step !== undefined)\r\n        num = step + 1 + 7 * oct;\r\n    if (num === undefined)\r\n        return null;\r\n    if (typeof alt !== \"number\")\r\n        return null;\r\n    var d = typeof dir !== \"number\" ? \"\" : dir < 0 ? \"-\" : \"\";\r\n    var type = TYPES[numToStep(num)];\r\n    return (d + num + altToQ(type, alt));\r\n};\r\nvar simplify = function (str) {\r\n    var p = props(str);\r\n    if (p === NO_IVL)\r\n        return null;\r\n    var intervalProps = p;\r\n    return intervalProps.simple + intervalProps.q;\r\n};\r\nvar invert = function (str) {\r\n    var p = props(str);\r\n    if (p === NO_IVL)\r\n        return null;\r\n    var intervalProps = p;\r\n    var step = (7 - intervalProps.step) % 7;\r\n    var alt = intervalProps.type === \"P\" ? -intervalProps.alt : -(intervalProps.alt + 1);\r\n    return build({ step: step, alt: alt, oct: intervalProps.oct, dir: intervalProps.dir });\r\n};\r\nvar IN = [1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7];\r\nvar IQ = \"P m M m M P d P m M m M\".split(\" \");\r\nvar fromSemitones = function (num) {\r\n    var d = num < 0 ? -1 : 1;\r\n    var n = Math.abs(num);\r\n    var c = n % 12;\r\n    var o = Math.floor(n / 12);\r\n    return d * (IN[c] + 7 * o) + IQ[c];\r\n};\n\nexports.names = names;\nexports.tokenize = tokenize;\nexports.qToAlt = qToAlt;\nexports.altToQ = altToQ;\nexports.props = props;\nexports.num = num;\nexports.name = name;\nexports.semitones = semitones;\nexports.chroma = chroma;\nexports.ic = ic;\nexports.build = build;\nexports.simplify = simplify;\nexports.invert = invert;\nexports.fromSemitones = fromSemitones;\n"]}