musicxml-io 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ var _chunkOEX7NVZNjs = require('./chunk-OEX7NVZN.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkBQKGH2LTjs = require('./chunk-BQKGH2LT.js');
9
+ var _chunkJRXV2ECWjs = require('./chunk-JRXV2ECW.js');
10
10
 
11
11
 
12
12
 
@@ -16,39 +16,168 @@ var _chunkBQKGH2LTjs = require('./chunk-BQKGH2LT.js');
16
16
  var _chunkEWLB5X64js = require('./chunk-EWLB5X64.js');
17
17
 
18
18
  // src/importers/musicxml.ts
19
- var _txml = require('txml/txml');
20
19
  var _entityMap = { amp: "&", lt: "<", gt: ">", quot: '"', apos: "'" };
21
20
  var _entityRegex = /&(?:(amp|lt|gt|quot|apos)|#(\d+)|#x([0-9a-fA-F]+));/g;
21
+ var INVALID_XML_CHARS_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\uFFFE\uFFFF]/g;
22
+ var INVALID_XML_CHARS_TEST = /[\x00-\x08\x0B\x0C\x0E-\x1F\uFFFE\uFFFF]/;
23
+ function decodeCharRef(match, codePoint) {
24
+ if (codePoint > 1114111 || codePoint >= 55296 && codePoint <= 57343) return match;
25
+ return String.fromCodePoint(codePoint);
26
+ }
22
27
  function decodeXmlEntities(s) {
23
28
  if (s.indexOf("&") === -1) return s;
24
- return s.replace(
29
+ const decoded = s.replace(
25
30
  _entityRegex,
26
- (_, named, dec, hex) => named ? _entityMap[named] : dec ? String.fromCharCode(parseInt(dec, 10)) : String.fromCharCode(parseInt(hex, 16))
31
+ (match, named, dec, hex) => named ? _entityMap[named] : decodeCharRef(match, parseInt(_nullishCoalesce(dec, () => ( hex)), dec ? 10 : 16))
27
32
  );
28
- }
29
- var INVALID_XML_CHARS_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\uFFFE\uFFFF]/g;
30
- function decodeTree(nodes) {
31
- for (let i = 0; i < nodes.length; i++) {
32
- const node = nodes[i];
33
- if (typeof node === "string") {
34
- let s = node;
35
- if (s.indexOf("&") !== -1) {
36
- s = decodeXmlEntities(s);
37
- }
38
- nodes[i] = s.replace(INVALID_XML_CHARS_RE, "");
33
+ return INVALID_XML_CHARS_TEST.test(decoded) ? decoded.replace(INVALID_XML_CHARS_RE, "") : decoded;
34
+ }
35
+ var EMPTY_ATTRS = Object.freeze({});
36
+ var GT = 62;
37
+ var SLASH = 47;
38
+ var BANG = 33;
39
+ var QUESTION = 63;
40
+ var EQUALS = 61;
41
+ var DQUOTE = 34;
42
+ var SQUOTE = 39;
43
+ var LBRACKET = 91;
44
+ var RBRACKET = 93;
45
+ function isXmlWhitespace(code) {
46
+ return code === 32 || code === 10 || code === 9 || code === 13;
47
+ }
48
+ function isWhitespaceOnly(s) {
49
+ for (let i = 0; i < s.length; i++) {
50
+ if (!isXmlWhitespace(s.charCodeAt(i))) return false;
51
+ }
52
+ return true;
53
+ }
54
+ function parseXml(xml) {
55
+ const root = [];
56
+ const stack = [];
57
+ let children = root;
58
+ const len = xml.length;
59
+ let pos = 0;
60
+ while (pos < len) {
61
+ const lt = xml.indexOf("<", pos);
62
+ if (lt === -1) break;
63
+ if (lt > pos) {
64
+ let text = xml.slice(pos, lt);
65
+ if (!isWhitespaceOnly(text)) {
66
+ text = decodeXmlEntities(text);
67
+ children.push(
68
+ INVALID_XML_CHARS_TEST.test(text) ? text.replace(INVALID_XML_CHARS_RE, "") : text
69
+ );
70
+ } else if (children.length === 0 && xml.charCodeAt(lt + 1) === SLASH) {
71
+ children.push(text);
72
+ }
73
+ }
74
+ const c = xml.charCodeAt(lt + 1);
75
+ if (c === SLASH) {
76
+ const gt = xml.indexOf(">", lt + 2);
77
+ if (gt === -1) break;
78
+ let end = gt;
79
+ while (end > lt + 2 && isXmlWhitespace(xml.charCodeAt(end - 1))) end--;
80
+ const name = xml.slice(lt + 2, end);
81
+ for (let i = stack.length - 1; i >= 0; i--) {
82
+ if (stack[i].tagName === name) {
83
+ stack.length = i;
84
+ break;
85
+ }
86
+ }
87
+ children = stack.length > 0 ? stack[stack.length - 1].children : root;
88
+ pos = gt + 1;
89
+ } else if (c === QUESTION) {
90
+ const end = xml.indexOf("?>", lt + 2);
91
+ pos = end === -1 ? len : end + 2;
92
+ } else if (c === BANG) {
93
+ if (xml.startsWith("<!--", lt)) {
94
+ const end = xml.indexOf("-->", lt + 4);
95
+ pos = end === -1 ? len : end + 3;
96
+ } else if (xml.startsWith("<![CDATA[", lt)) {
97
+ const end = xml.indexOf("]]>", lt + 9);
98
+ let text = xml.slice(lt + 9, end === -1 ? len : end);
99
+ if (INVALID_XML_CHARS_TEST.test(text)) text = text.replace(INVALID_XML_CHARS_RE, "");
100
+ children.push(text);
101
+ pos = end === -1 ? len : end + 3;
102
+ } else {
103
+ let i = lt + 2;
104
+ let depth = 0;
105
+ while (i < len) {
106
+ const ch = xml.charCodeAt(i);
107
+ if (ch === LBRACKET) depth++;
108
+ else if (ch === RBRACKET) depth--;
109
+ else if (ch === GT && depth <= 0) break;
110
+ i++;
111
+ }
112
+ pos = i + 1;
113
+ }
39
114
  } else {
40
- const attrs = node.attributes;
41
- for (const key in attrs) {
42
- const v = attrs[key];
43
- if (v.indexOf("&") !== -1) {
44
- attrs[key] = decodeXmlEntities(v);
115
+ let i = lt + 1;
116
+ while (i < len) {
117
+ const ch = xml.charCodeAt(i);
118
+ if (ch === GT || ch === SLASH || isXmlWhitespace(ch)) break;
119
+ i++;
120
+ }
121
+ const tagName = xml.slice(lt + 1, i);
122
+ let attributes = EMPTY_ATTRS;
123
+ let selfClosing = false;
124
+ while (i < len) {
125
+ let ch = xml.charCodeAt(i);
126
+ while (isXmlWhitespace(ch)) ch = xml.charCodeAt(++i);
127
+ if (ch === GT) {
128
+ i++;
129
+ break;
130
+ }
131
+ if (ch === SLASH) {
132
+ selfClosing = true;
133
+ i++;
134
+ continue;
45
135
  }
136
+ const nameStart = i;
137
+ while (i < len) {
138
+ ch = xml.charCodeAt(i);
139
+ if (ch === EQUALS || ch === GT || ch === SLASH || isXmlWhitespace(ch)) break;
140
+ i++;
141
+ }
142
+ const attrName = xml.slice(nameStart, i);
143
+ while (isXmlWhitespace(xml.charCodeAt(i))) i++;
144
+ if (xml.charCodeAt(i) === EQUALS) {
145
+ i++;
146
+ while (isXmlWhitespace(xml.charCodeAt(i))) i++;
147
+ ch = xml.charCodeAt(i);
148
+ let value;
149
+ if (ch === DQUOTE || ch === SQUOTE) {
150
+ const valStart = ++i;
151
+ while (i < len && xml.charCodeAt(i) !== ch) i++;
152
+ value = xml.slice(valStart, i);
153
+ i++;
154
+ } else {
155
+ const valStart = i;
156
+ while (i < len) {
157
+ ch = xml.charCodeAt(i);
158
+ if (ch === GT || isXmlWhitespace(ch)) break;
159
+ i++;
160
+ }
161
+ value = xml.slice(valStart, i);
162
+ }
163
+ if (attributes === EMPTY_ATTRS) attributes = {};
164
+ attributes[attrName] = decodeXmlEntities(value);
165
+ } else if (attrName.length > 0) {
166
+ if (attributes === EMPTY_ATTRS) attributes = {};
167
+ attributes[attrName] = "";
168
+ }
169
+ }
170
+ const node = { tagName, attributes, children: [] };
171
+ children.push(node);
172
+ if (!selfClosing) {
173
+ stack.push(node);
174
+ children = node.children;
46
175
  }
47
- decodeTree(node.children);
176
+ pos = i;
48
177
  }
49
178
  }
179
+ return root;
50
180
  }
51
- var TXML_OPTIONS = { noChildNodes: [] };
52
181
  function decodeXmlBytes(data) {
53
182
  if (data.length >= 2 && data[0] === 254 && data[1] === 255) {
54
183
  return new TextDecoder("utf-16be").decode(data);
@@ -56,6 +185,10 @@ function decodeXmlBytes(data) {
56
185
  if (data.length >= 2 && data[0] === 255 && data[1] === 254) {
57
186
  return new TextDecoder("utf-16le").decode(data);
58
187
  }
188
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer(data)) {
189
+ const hasBom = data.length >= 3 && data[0] === 239 && data[1] === 187 && data[2] === 191;
190
+ return data.toString("utf8", hasBom ? 3 : 0);
191
+ }
59
192
  return new TextDecoder("utf-8").decode(data);
60
193
  }
61
194
  function parse(input) {
@@ -69,9 +202,10 @@ function parse(input) {
69
202
  } else {
70
203
  xmlString = input;
71
204
  }
72
- const cleanedXml = xmlString.replace(/<\?(?!xml\s)[^?]*\?>/g, "");
73
- const parsed = _txml.parse.call(void 0, cleanedXml, TXML_OPTIONS);
74
- decodeTree(parsed);
205
+ if (INVALID_XML_CHARS_TEST.test(xmlString)) {
206
+ xmlString = xmlString.replace(INVALID_XML_CHARS_RE, "");
207
+ }
208
+ const parsed = parseXml(xmlString);
75
209
  let scorePartwiseVersion;
76
210
  let scorePartwise;
77
211
  for (const el of parsed) {
@@ -155,7 +289,7 @@ function parseScorePartwise(elements) {
155
289
  const defaults = parseDefaults(elements);
156
290
  const credits = parseCredits(elements);
157
291
  return {
158
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
292
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
159
293
  metadata,
160
294
  partList,
161
295
  parts,
@@ -412,7 +546,7 @@ function parseSystemLayout(elements) {
412
546
  }
413
547
  function parseCredits(elements) {
414
548
  const credits = collectElements(elements, "credit", (content, attrs) => {
415
- const credit = { _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ) };
549
+ const credit = { _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ) };
416
550
  if (attrs["page"]) credit.page = parseInt(attrs["page"], 10);
417
551
  const types = collectElements(content, "credit-type", (c) => extractText(c));
418
552
  const words = collectElements(content, "credit-words", (c, a) => {
@@ -456,7 +590,7 @@ function parsePartList(elements) {
456
590
  const attrs = el.attributes;
457
591
  const content = el.children;
458
592
  const partInfo = {
459
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
593
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
460
594
  type: "score-part",
461
595
  id: attrs["id"] || ""
462
596
  };
@@ -555,7 +689,7 @@ function parsePartList(elements) {
555
689
  const attrs = el.attributes;
556
690
  const content = el.children;
557
691
  const group = {
558
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
692
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
559
693
  type: "part-group",
560
694
  groupType: attrs["type"] === "stop" ? "stop" : "start"
561
695
  };
@@ -592,7 +726,7 @@ function parseParts(elements) {
592
726
  const attrs = el.attributes;
593
727
  const content = el.children;
594
728
  const part = {
595
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
729
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
596
730
  id: attrs["id"] || "",
597
731
  measures: []
598
732
  };
@@ -611,7 +745,7 @@ function parseParts(elements) {
611
745
  }
612
746
  function parseMeasure(elements, attrs) {
613
747
  const measure = {
614
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
748
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
615
749
  number: attrs["number"] || "0",
616
750
  // Keep as string per MusicXML spec (token type)
617
751
  entries: []
@@ -628,7 +762,7 @@ function parseMeasure(elements, attrs) {
628
762
  measure.attributes = parsedAttrs;
629
763
  } else {
630
764
  const attrEntry = {
631
- _id: el.attributes["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
765
+ _id: el.attributes["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
632
766
  type: "attributes",
633
767
  attributes: parsedAttrs
634
768
  };
@@ -656,7 +790,7 @@ function parseMeasure(elements, attrs) {
656
790
  } else if (el.tagName === "grouping") {
657
791
  const grpAttrs = el.attributes;
658
792
  const grouping = {
659
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
793
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
660
794
  type: "grouping",
661
795
  groupingType: grpAttrs["type"] || "start"
662
796
  };
@@ -710,7 +844,7 @@ function parsePrint(elements, attrs) {
710
844
  return print;
711
845
  }
712
846
  function parseAttributes(elements, xmlAttrs = {}) {
713
- const attrs = { _id: xmlAttrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ) };
847
+ const attrs = { _id: xmlAttrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ) };
714
848
  const divisions = getElementTextAsInt(elements, "divisions");
715
849
  if (divisions !== void 0) attrs.divisions = divisions;
716
850
  const staves = getElementTextAsInt(elements, "staves");
@@ -876,7 +1010,7 @@ function parseTranspose(elements) {
876
1010
  }
877
1011
  function parseNote(elements, attrs) {
878
1012
  const note = {
879
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
1013
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
880
1014
  type: "note",
881
1015
  duration: 0
882
1016
  };
@@ -1627,14 +1761,14 @@ function parseLyric(elements, attrs) {
1627
1761
  }
1628
1762
  function parseBackup(elements) {
1629
1763
  return {
1630
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
1764
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
1631
1765
  type: "backup",
1632
1766
  duration: parseInt(getElementText(elements, "duration") || "0", 10)
1633
1767
  };
1634
1768
  }
1635
1769
  function parseForward(elements, attrs = {}) {
1636
1770
  const forward = {
1637
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
1771
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
1638
1772
  type: "forward",
1639
1773
  duration: parseInt(getElementText(elements, "duration") || "0", 10)
1640
1774
  };
@@ -1646,7 +1780,7 @@ function parseForward(elements, attrs = {}) {
1646
1780
  }
1647
1781
  function parseDirection(elements, attrs) {
1648
1782
  const direction = {
1649
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
1783
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
1650
1784
  type: "direction",
1651
1785
  directionTypes: []
1652
1786
  };
@@ -2071,7 +2205,7 @@ function parseDirectionTypes(elements) {
2071
2205
  }
2072
2206
  function parseBarline(elements, attrs) {
2073
2207
  const location = attrs["location"] || "right";
2074
- const barline = { _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ), location };
2208
+ const barline = { _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ), location };
2075
2209
  const barStyle = getElementText(elements, "bar-style");
2076
2210
  if (barStyle && isValidBarStyle(barStyle)) {
2077
2211
  barline.barStyle = barStyle;
@@ -2303,7 +2437,7 @@ function parseMeasureStyle(elements, attrs) {
2303
2437
  }
2304
2438
  function parseHarmony(elements, attrs) {
2305
2439
  const harmony = {
2306
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
2440
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
2307
2441
  type: "harmony",
2308
2442
  root: { rootStep: "C" },
2309
2443
  kind: "major"
@@ -2443,7 +2577,7 @@ function parseHarmony(elements, attrs) {
2443
2577
  }
2444
2578
  function parseFiguredBass(elements, attrs) {
2445
2579
  const fb = {
2446
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
2580
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
2447
2581
  type: "figured-bass",
2448
2582
  figures: []
2449
2583
  };
@@ -2492,7 +2626,7 @@ function parseFiguredBass(elements, attrs) {
2492
2626
  }
2493
2627
  function parseSound(elements, attrs) {
2494
2628
  const sound = {
2495
- _id: attrs["id"] || _chunkBQKGH2LTjs.generateId.call(void 0, ),
2629
+ _id: attrs["id"] || _chunkJRXV2ECWjs.generateId.call(void 0, ),
2496
2630
  type: "sound"
2497
2631
  };
2498
2632
  if (attrs["tempo"]) sound.tempo = parseFloat(attrs["tempo"]);
@@ -3533,7 +3667,7 @@ function buildScore(header, voiceTokensList, voiceIds, headerFieldOrder, inlineV
3533
3667
  const headerVoice = _optionalChain([header, 'access', _2 => _2.voices, 'optionalAccess', _3 => _3.find, 'call', _4 => _4((v) => v.id === voiceId)]) || header.voices && header.voices[voiceIndex];
3534
3668
  const voiceName = headerVoice ? headerVoice.name || `Voice ${voiceIndex + 1}` : voiceTokensList.length > 1 ? `Voice ${voiceIndex + 1}` : "Music";
3535
3669
  partListEntries.push({
3536
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3670
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3537
3671
  type: "score-part",
3538
3672
  id: partId,
3539
3673
  name: voiceName
@@ -3541,7 +3675,7 @@ function buildScore(header, voiceTokensList, voiceIds, headerFieldOrder, inlineV
3541
3675
  const voiceClef = headerVoice ? abcClefToMusicXml(headerVoice.clef) : void 0;
3542
3676
  const buildResult = buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDuration, voiceClef);
3543
3677
  parts.push({
3544
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3678
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3545
3679
  id: partId,
3546
3680
  measures: buildResult.measures
3547
3681
  });
@@ -3594,7 +3728,7 @@ function buildScore(header, voiceTokensList, voiceIds, headerFieldOrder, inlineV
3594
3728
  encoding.encoder = encoderValues;
3595
3729
  }
3596
3730
  return {
3597
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3731
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3598
3732
  metadata: {
3599
3733
  movementTitle: header.title,
3600
3734
  creators: creators.length > 0 ? creators : void 0,
@@ -3620,7 +3754,7 @@ function parseTempoToDirection(tempoStr) {
3620
3754
  if (found) beatUnit = found;
3621
3755
  }
3622
3756
  return {
3623
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3757
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3624
3758
  type: "direction",
3625
3759
  directionTypes: [{ kind: "metronome", beatUnit, perMinute }],
3626
3760
  placement: "above",
@@ -3676,7 +3810,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
3676
3810
  if (dynDir) currentEntries.push(dynDir);
3677
3811
  } else if (item.kind === "decoration") {
3678
3812
  const decoDir = {
3679
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3813
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3680
3814
  type: "direction",
3681
3815
  directionTypes: [{ kind: "words", text: item.value }]
3682
3816
  };
@@ -3687,13 +3821,13 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
3687
3821
  }
3688
3822
  function finalizeMeasure(endBarType) {
3689
3823
  const measure = {
3690
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3824
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3691
3825
  number: String(measureNumber),
3692
3826
  entries: currentEntries
3693
3827
  };
3694
3828
  if (isFirstMeasure) {
3695
3829
  measure.attributes = {
3696
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
3830
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3697
3831
  divisions: DIVISIONS,
3698
3832
  time: timeSignature,
3699
3833
  key: keySignature,
@@ -3703,7 +3837,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
3703
3837
  }
3704
3838
  if (pendingKeyChange) {
3705
3839
  if (!measure.attributes) {
3706
- measure.attributes = { _id: _chunkBQKGH2LTjs.generateId.call(void 0, ) };
3840
+ measure.attributes = { _id: _chunkJRXV2ECWjs.generateId.call(void 0, ) };
3707
3841
  }
3708
3842
  const kValue = pendingKeyChange.replace(/^K:\s*/, "");
3709
3843
  measure.attributes.key = parseKeySignature2(kValue);
@@ -3906,7 +4040,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
3906
4040
  const rightBl = _optionalChain([lastMeasure, 'access', _9 => _9.barlines, 'optionalAccess', _10 => _10.find, 'call', _11 => _11((b) => b.location === "right")]);
3907
4041
  if (rightBl) {
3908
4042
  const endingBarline2 = {
3909
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4043
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3910
4044
  location: "left",
3911
4045
  barStyle: rightBl.barStyle,
3912
4046
  repeat: rightBl.repeat,
@@ -3918,7 +4052,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
3918
4052
  }
3919
4053
  }
3920
4054
  const endingBarline = {
3921
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4055
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
3922
4056
  location: "left",
3923
4057
  ending: {
3924
4058
  number: token.value,
@@ -4021,7 +4155,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
4021
4155
  case "overlay": {
4022
4156
  if (currentPosition > 0) {
4023
4157
  const backupEntry = {
4024
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4158
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4025
4159
  type: "backup",
4026
4160
  duration: currentPosition
4027
4161
  };
@@ -4035,7 +4169,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
4035
4169
  if (lMatch) {
4036
4170
  currentUnitNote = { num: parseInt(lMatch[1], 10), den: parseInt(lMatch[2], 10) };
4037
4171
  const inlineEntry = {
4038
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4172
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4039
4173
  type: "direction",
4040
4174
  directionTypes: [{ kind: "words", text: `[L:${lMatch[1]}/${lMatch[2]}]` }]
4041
4175
  };
@@ -4054,7 +4188,7 @@ function buildMeasures(tokens, unitNote, keySignature, timeSignature, measureDur
4054
4188
  if (currentEntries.length > 0) {
4055
4189
  const breakText = token.value === "\\\n" ? "__abc_line_cont__" : "__abc_line_break__";
4056
4190
  const lineBreakDir = {
4057
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4191
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4058
4192
  type: "direction",
4059
4193
  directionTypes: [{ kind: "words", text: breakText }]
4060
4194
  };
@@ -4158,7 +4292,7 @@ function createNoteEntry(token, unitNote, _hasTieStop, isGrace, tupletState) {
4158
4292
  }
4159
4293
  const { noteType, dots } = durationToNoteType(isGrace ? lengthToDuration(num, den, unitNote) : duration);
4160
4294
  const entry = {
4161
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4295
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4162
4296
  type: "note",
4163
4297
  pitch: token.pitch,
4164
4298
  duration,
@@ -4212,7 +4346,7 @@ function createRestEntry(token, unitNote, tupletState, measureDuration) {
4212
4346
  }
4213
4347
  const { noteType, dots } = durationToNoteType(duration);
4214
4348
  const entry = {
4215
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4349
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4216
4350
  type: "note",
4217
4351
  rest: isWholeMeasure ? { measure: true } : {},
4218
4352
  duration,
@@ -4227,7 +4361,7 @@ function createRestEntry(token, unitNote, tupletState, measureDuration) {
4227
4361
  }
4228
4362
  function createBarline(barType, location, endingNumber) {
4229
4363
  const barline = {
4230
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4364
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4231
4365
  location
4232
4366
  };
4233
4367
  switch (barType) {
@@ -4318,7 +4452,7 @@ function createHarmonyEntry(chordStr) {
4318
4452
  break;
4319
4453
  }
4320
4454
  const entry = {
4321
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4455
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4322
4456
  type: "harmony",
4323
4457
  root: { rootStep, rootAlter: rootAlter !== void 0 ? rootAlter : void 0 },
4324
4458
  kind
@@ -4337,7 +4471,7 @@ function createHarmonyEntry(chordStr) {
4337
4471
  function createDynamicsDirection(dynamic) {
4338
4472
  if (!DYNAMICS_VALUES.has(dynamic)) return null;
4339
4473
  return {
4340
- _id: _chunkBQKGH2LTjs.generateId.call(void 0, ),
4474
+ _id: _chunkJRXV2ECWjs.generateId.call(void 0, ),
4341
4475
  type: "direction",
4342
4476
  directionTypes: [{
4343
4477
  kind: "dynamics",
@@ -4366,13 +4500,13 @@ function serialize(score, options = {}) {
4366
4500
  const version = options.version || score.version || "4.0";
4367
4501
  const indent = _nullishCoalesce(options.indent, () => ( " "));
4368
4502
  if (options.validate) {
4369
- const result = _chunkBQKGH2LTjs.validate.call(void 0, score, options.validateOptions);
4503
+ const result = _chunkJRXV2ECWjs.validate.call(void 0, score, options.validateOptions);
4370
4504
  if (options.onValidation) {
4371
4505
  options.onValidation(result);
4372
4506
  }
4373
4507
  if (!result.valid && options.throwOnValidationError) {
4374
4508
  const errorMessages = result.errors.map((e) => `[${e.code}] ${e.message}`).join("\n");
4375
- throw new (0, _chunkBQKGH2LTjs.ValidationException)(result.errors, `Score validation failed:
4509
+ throw new (0, _chunkJRXV2ECWjs.ValidationException)(result.errors, `Score validation failed:
4376
4510
  ${errorMessages}`);
4377
4511
  }
4378
4512
  }
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
 
11
11
 
12
- var _chunkC6ZNOTY2js = require('./chunk-C6ZNOTY2.js');
12
+ var _chunkUBN64UJKjs = require('./chunk-UBN64UJK.js');
13
13
 
14
14
 
15
15
 
@@ -168,7 +168,7 @@ var _chunkOEX7NVZNjs = require('./chunk-OEX7NVZN.js');
168
168
 
169
169
 
170
170
 
171
- var _chunkBQKGH2LTjs = require('./chunk-BQKGH2LT.js');
171
+ var _chunkJRXV2ECWjs = require('./chunk-JRXV2ECW.js');
172
172
 
173
173
 
174
174
 
@@ -263,14 +263,14 @@ async function parseFile(filePath) {
263
263
  const lowerPath = filePath.toLowerCase();
264
264
  if (lowerPath.endsWith(".abc")) {
265
265
  const data2 = await _promises.readFile.call(void 0, filePath, "utf-8");
266
- return _chunkC6ZNOTY2js.parseAbc.call(void 0, data2);
266
+ return _chunkUBN64UJKjs.parseAbc.call(void 0, data2);
267
267
  }
268
268
  const data = await _promises.readFile.call(void 0, filePath);
269
- if (_chunkC6ZNOTY2js.isCompressed.call(void 0, data)) {
270
- return _chunkC6ZNOTY2js.parseCompressed.call(void 0, data);
269
+ if (_chunkUBN64UJKjs.isCompressed.call(void 0, data)) {
270
+ return _chunkUBN64UJKjs.parseCompressed.call(void 0, data);
271
271
  }
272
272
  const xmlString = decodeBuffer(data);
273
- return _chunkC6ZNOTY2js.parse.call(void 0, xmlString);
273
+ return _chunkUBN64UJKjs.parse.call(void 0, xmlString);
274
274
  }
275
275
  function decodeBuffer(buffer) {
276
276
  if (buffer.length >= 2 && buffer[0] === 254 && buffer[1] === 255) {
@@ -287,16 +287,16 @@ function decodeBuffer(buffer) {
287
287
  async function serializeToFile(score, filePath, options = {}) {
288
288
  const lowerPath = filePath.toLowerCase();
289
289
  if (lowerPath.endsWith(".abc")) {
290
- const abcString = _chunkC6ZNOTY2js.serializeAbc.call(void 0, score);
290
+ const abcString = _chunkUBN64UJKjs.serializeAbc.call(void 0, score);
291
291
  await _promises.writeFile.call(void 0, filePath, abcString, "utf-8");
292
292
  } else if (lowerPath.endsWith(".mxl")) {
293
- const data = _chunkC6ZNOTY2js.serializeCompressed.call(void 0, score, options);
293
+ const data = _chunkUBN64UJKjs.serializeCompressed.call(void 0, score, options);
294
294
  await _promises.writeFile.call(void 0, filePath, data);
295
295
  } else if (lowerPath.endsWith(".mid") || lowerPath.endsWith(".midi")) {
296
- const data = _chunkC6ZNOTY2js.exportMidi.call(void 0, score, options);
296
+ const data = _chunkUBN64UJKjs.exportMidi.call(void 0, score, options);
297
297
  await _promises.writeFile.call(void 0, filePath, data);
298
298
  } else {
299
- const xmlString = _chunkC6ZNOTY2js.serialize.call(void 0, score, options);
299
+ const xmlString = _chunkUBN64UJKjs.serialize.call(void 0, score, options);
300
300
  await _promises.writeFile.call(void 0, filePath, xmlString, "utf-8");
301
301
  }
302
302
  }
@@ -554,4 +554,4 @@ async function serializeToFile(score, filePath, options = {}) {
554
554
 
555
555
 
556
556
 
557
- exports.STEPS = _chunkEWLB5X64js.STEPS; exports.STEP_SEMITONES = _chunkEWLB5X64js.STEP_SEMITONES; exports.ValidationException = _chunkBQKGH2LTjs.ValidationException; exports.addArticulation = _chunkBQKGH2LTjs.addArticulation; exports.addBeam = _chunkBQKGH2LTjs.addBeam; exports.addBowing = _chunkBQKGH2LTjs.addBowing; exports.addBreathMark = _chunkBQKGH2LTjs.addBreathMark; exports.addCaesura = _chunkBQKGH2LTjs.addCaesura; exports.addChord = _chunkBQKGH2LTjs.addChord; exports.addChordNote = _chunkBQKGH2LTjs.addChordNote; exports.addChordNoteChecked = _chunkBQKGH2LTjs.addChordNoteChecked; exports.addChordSymbol = _chunkBQKGH2LTjs.addChordSymbol; exports.addCoda = _chunkBQKGH2LTjs.addCoda; exports.addDaCapo = _chunkBQKGH2LTjs.addDaCapo; exports.addDalSegno = _chunkBQKGH2LTjs.addDalSegno; exports.addDynamics = _chunkBQKGH2LTjs.addDynamics; exports.addEnding = _chunkBQKGH2LTjs.addEnding; exports.addFermata = _chunkBQKGH2LTjs.addFermata; exports.addFine = _chunkBQKGH2LTjs.addFine; exports.addFingering = _chunkBQKGH2LTjs.addFingering; exports.addGraceNote = _chunkBQKGH2LTjs.addGraceNote; exports.addHarmony = _chunkBQKGH2LTjs.addHarmony; exports.addLyric = _chunkBQKGH2LTjs.addLyric; exports.addNote = _chunkBQKGH2LTjs.addNote; exports.addNoteChecked = _chunkBQKGH2LTjs.addNoteChecked; exports.addOctaveShift = _chunkBQKGH2LTjs.addOctaveShift; exports.addOrnament = _chunkBQKGH2LTjs.addOrnament; exports.addPart = _chunkBQKGH2LTjs.addPart; exports.addPedal = _chunkBQKGH2LTjs.addPedal; exports.addRehearsalMark = _chunkBQKGH2LTjs.addRehearsalMark; exports.addRepeat = _chunkBQKGH2LTjs.addRepeat; exports.addRepeatBarline = _chunkBQKGH2LTjs.addRepeatBarline; exports.addSegno = _chunkBQKGH2LTjs.addSegno; exports.addSlur = _chunkBQKGH2LTjs.addSlur; exports.addStringNumber = _chunkBQKGH2LTjs.addStringNumber; exports.addTempo = _chunkBQKGH2LTjs.addTempo; exports.addText = _chunkBQKGH2LTjs.addText; exports.addTextDirection = _chunkBQKGH2LTjs.addTextDirection; exports.addTie = _chunkBQKGH2LTjs.addTie; exports.addToCoda = _chunkBQKGH2LTjs.addToCoda; exports.addVoice = _chunkBQKGH2LTjs.addVoice; exports.addWedge = _chunkBQKGH2LTjs.addWedge; exports.assertMeasureValid = _chunkBQKGH2LTjs.assertMeasureValid; exports.assertValid = _chunkBQKGH2LTjs.assertValid; exports.autoBeam = _chunkBQKGH2LTjs.autoBeam; exports.buildVoiceToStaffMap = _chunkEWLB5X64js.buildVoiceToStaffMap; exports.buildVoiceToStaffMapForPart = _chunkEWLB5X64js.buildVoiceToStaffMapForPart; exports.changeBarline = _chunkBQKGH2LTjs.changeBarline; exports.changeClef = _chunkBQKGH2LTjs.changeClef; exports.changeKey = _chunkBQKGH2LTjs.changeKey; exports.changeNoteDuration = _chunkBQKGH2LTjs.changeNoteDuration; exports.changeTime = _chunkBQKGH2LTjs.changeTime; exports.convertToGrace = _chunkBQKGH2LTjs.convertToGrace; exports.copyNotes = _chunkBQKGH2LTjs.copyNotes; exports.copyNotesMultiMeasure = _chunkBQKGH2LTjs.copyNotesMultiMeasure; exports.countNotes = _chunkEWLB5X64js.countNotes; exports.createTuplet = _chunkBQKGH2LTjs.createTuplet; exports.cutNotes = _chunkBQKGH2LTjs.cutNotes; exports.decodeBuffer = decodeBuffer; exports.deleteMeasure = _chunkBQKGH2LTjs.deleteMeasure; exports.deleteNote = _chunkBQKGH2LTjs.deleteNote; exports.deleteNoteChecked = _chunkBQKGH2LTjs.deleteNoteChecked; exports.duplicatePart = _chunkBQKGH2LTjs.duplicatePart; exports.exportMidi = _chunkC6ZNOTY2js.exportMidi; exports.exportMidiWithTimingMap = _chunkC6ZNOTY2js.exportMidiWithTimingMap; exports.extractPlaybackControls = _chunkEWLB5X64js.extractPlaybackControls; exports.findBarlines = _chunkEWLB5X64js.findBarlines; exports.findDirectionsByType = _chunkEWLB5X64js.findDirectionsByType; exports.findNotes = _chunkEWLB5X64js.findNotes; exports.findNotesWithNotation = _chunkEWLB5X64js.findNotesWithNotation; exports.formatLocation = _chunkBQKGH2LTjs.formatLocation; exports.generateId = _chunkBQKGH2LTjs.generateId; exports.generatePlaybackSequence = _chunkEWLB5X64js.generatePlaybackSequence; exports.generatePlaybackTimeline = _chunkEWLB5X64js.generatePlaybackTimeline; exports.getAbsolutePosition = _chunkEWLB5X64js.getAbsolutePosition; exports.getAdjacentNotes = _chunkEWLB5X64js.getAdjacentNotes; exports.getAllNotes = _chunkEWLB5X64js.getAllNotes; exports.getAllPartInfos = _chunkOEX7NVZNjs.getAllPartInfos; exports.getAttributesAtMeasure = _chunkEWLB5X64js.getAttributesAtMeasure; exports.getBeamGroups = _chunkEWLB5X64js.getBeamGroups; exports.getChordProgression = _chunkEWLB5X64js.getChordProgression; exports.getChords = _chunkEWLB5X64js.getChords; exports.getClefChanges = _chunkEWLB5X64js.getClefChanges; exports.getClefForStaff = _chunkEWLB5X64js.getClefForStaff; exports.getDirectionOfKind = _chunkOEX7NVZNjs.getDirectionOfKind; exports.getDirections = _chunkEWLB5X64js.getDirections; exports.getDirectionsAtPosition = _chunkEWLB5X64js.getDirectionsAtPosition; exports.getDirectionsOfKind = _chunkOEX7NVZNjs.getDirectionsOfKind; exports.getDivisions = _chunkEWLB5X64js.getDivisions; exports.getDuration = _chunkEWLB5X64js.getDuration; exports.getDynamics = _chunkEWLB5X64js.getDynamics; exports.getEffectiveStaff = _chunkEWLB5X64js.getEffectiveStaff; exports.getEndings = _chunkEWLB5X64js.getEndings; exports.getEntriesAtPosition = _chunkEWLB5X64js.getEntriesAtPosition; exports.getEntriesForStaff = _chunkEWLB5X64js.getEntriesForStaff; exports.getEntriesInRange = _chunkEWLB5X64js.getEntriesInRange; exports.getHarmonies = _chunkEWLB5X64js.getHarmonies; exports.getHarmonyAtPosition = _chunkEWLB5X64js.getHarmonyAtPosition; exports.getKeyChanges = _chunkEWLB5X64js.getKeyChanges; exports.getLyricText = _chunkEWLB5X64js.getLyricText; exports.getLyrics = _chunkEWLB5X64js.getLyrics; exports.getMeasure = _chunkEWLB5X64js.getMeasure; exports.getMeasureByIndex = _chunkEWLB5X64js.getMeasureByIndex; exports.getMeasureContext = _chunkBQKGH2LTjs.getMeasureContext; exports.getMeasureCount = _chunkEWLB5X64js.getMeasureCount; exports.getMeasureEndPosition = _chunkEWLB5X64js.getMeasureEndPosition; exports.getNextNote = _chunkEWLB5X64js.getNextNote; exports.getNormalizedDuration = _chunkEWLB5X64js.getNormalizedDuration; exports.getNormalizedPosition = _chunkEWLB5X64js.getNormalizedPosition; exports.getNotesAtPosition = _chunkEWLB5X64js.getNotesAtPosition; exports.getNotesForStaff = _chunkEWLB5X64js.getNotesForStaff; exports.getNotesForVoice = _chunkEWLB5X64js.getNotesForVoice; exports.getNotesInRange = _chunkEWLB5X64js.getNotesInRange; exports.getOctaveShifts = _chunkEWLB5X64js.getOctaveShifts; exports.getPartAbbreviation = _chunkOEX7NVZNjs.getPartAbbreviation; exports.getPartById = _chunkEWLB5X64js.getPartById; exports.getPartByIndex = _chunkEWLB5X64js.getPartByIndex; exports.getPartCount = _chunkEWLB5X64js.getPartCount; exports.getPartIds = _chunkEWLB5X64js.getPartIds; exports.getPartIndex = _chunkEWLB5X64js.getPartIndex; exports.getPartInfo = _chunkOEX7NVZNjs.getPartInfo; exports.getPartName = _chunkOEX7NVZNjs.getPartName; exports.getPartNameMap = _chunkOEX7NVZNjs.getPartNameMap; exports.getPedalMarkings = _chunkEWLB5X64js.getPedalMarkings; exports.getPrevNote = _chunkEWLB5X64js.getPrevNote; exports.getRepeatStructure = _chunkEWLB5X64js.getRepeatStructure; exports.getSlurSpans = _chunkEWLB5X64js.getSlurSpans; exports.getSoundDamperPedal = _chunkOEX7NVZNjs.getSoundDamperPedal; exports.getSoundDynamics = _chunkOEX7NVZNjs.getSoundDynamics; exports.getSoundSoftPedal = _chunkOEX7NVZNjs.getSoundSoftPedal; exports.getSoundSostenutoPedal = _chunkOEX7NVZNjs.getSoundSostenutoPedal; exports.getSoundTempo = _chunkOEX7NVZNjs.getSoundTempo; exports.getStaffRange = _chunkEWLB5X64js.getStaffRange; exports.getStaveCount = _chunkEWLB5X64js.getStaveCount; exports.getStaves = _chunkEWLB5X64js.getStaves; exports.getStructuralChanges = _chunkEWLB5X64js.getStructuralChanges; exports.getTempoMarkings = _chunkEWLB5X64js.getTempoMarkings; exports.getTiedNoteGroups = _chunkEWLB5X64js.getTiedNoteGroups; exports.getTimeChanges = _chunkEWLB5X64js.getTimeChanges; exports.getTupletGroups = _chunkEWLB5X64js.getTupletGroups; exports.getVerseCount = _chunkEWLB5X64js.getVerseCount; exports.getVerticalSlice = _chunkEWLB5X64js.getVerticalSlice; exports.getVoiceLine = _chunkEWLB5X64js.getVoiceLine; exports.getVoiceLineInRange = _chunkEWLB5X64js.getVoiceLineInRange; exports.getVoices = _chunkEWLB5X64js.getVoices; exports.getVoicesForStaff = _chunkEWLB5X64js.getVoicesForStaff; exports.getWedges = _chunkEWLB5X64js.getWedges; exports.groupByStaff = _chunkEWLB5X64js.groupByStaff; exports.groupByVoice = _chunkEWLB5X64js.groupByVoice; exports.hasBeam = _chunkOEX7NVZNjs.hasBeam; exports.hasDirectionOfKind = _chunkOEX7NVZNjs.hasDirectionOfKind; exports.hasLyrics = _chunkOEX7NVZNjs.hasLyrics; exports.hasMultipleStaves = _chunkEWLB5X64js.hasMultipleStaves; exports.hasNotations = _chunkOEX7NVZNjs.hasNotations; exports.hasNotes = _chunkEWLB5X64js.hasNotes; exports.hasPlaybackControls = _chunkEWLB5X64js.hasPlaybackControls; exports.hasTie = _chunkOEX7NVZNjs.hasTie; exports.hasTieStart = _chunkOEX7NVZNjs.hasTieStart; exports.hasTieStop = _chunkOEX7NVZNjs.hasTieStop; exports.hasTuplet = _chunkOEX7NVZNjs.hasTuplet; exports.inferStaff = _chunkEWLB5X64js.inferStaff; exports.insertClefChange = _chunkBQKGH2LTjs.insertClefChange; exports.insertMeasure = _chunkBQKGH2LTjs.insertMeasure; exports.insertNote = _chunkBQKGH2LTjs.insertNote; exports.isChordNote = _chunkOEX7NVZNjs.isChordNote; exports.isCompressed = _chunkC6ZNOTY2js.isCompressed; exports.isCueNote = _chunkOEX7NVZNjs.isCueNote; exports.isGraceNote = _chunkOEX7NVZNjs.isGraceNote; exports.isPartInfo = _chunkOEX7NVZNjs.isPartInfo; exports.isPitchedNote = _chunkOEX7NVZNjs.isPitchedNote; exports.isRest = _chunkOEX7NVZNjs.isRest; exports.isRestMeasure = _chunkEWLB5X64js.isRestMeasure; exports.isUnpitchedNote = _chunkOEX7NVZNjs.isUnpitchedNote; exports.isValid = _chunkBQKGH2LTjs.isValid; exports.iterateEntries = _chunkEWLB5X64js.iterateEntries; exports.iterateNotes = _chunkEWLB5X64js.iterateNotes; exports.lowerAccidental = _chunkBQKGH2LTjs.lowerAccidental; exports.measureRoundtrip = _chunkEWLB5X64js.measureRoundtrip; exports.modifyDynamics = _chunkBQKGH2LTjs.modifyDynamics; exports.modifyNoteDuration = _chunkBQKGH2LTjs.modifyNoteDuration; exports.modifyNoteDurationChecked = _chunkBQKGH2LTjs.modifyNoteDurationChecked; exports.modifyNotePitch = _chunkBQKGH2LTjs.modifyNotePitch; exports.modifyNotePitchChecked = _chunkBQKGH2LTjs.modifyNotePitchChecked; exports.modifyTempo = _chunkBQKGH2LTjs.modifyTempo; exports.moveNoteToStaff = _chunkBQKGH2LTjs.moveNoteToStaff; exports.parse = _chunkC6ZNOTY2js.parse; exports.parseAbc = _chunkC6ZNOTY2js.parseAbc; exports.parseAuto = _chunkC6ZNOTY2js.parseAuto; exports.parseCompressed = _chunkC6ZNOTY2js.parseCompressed; exports.parseFile = parseFile; exports.pasteNotes = _chunkBQKGH2LTjs.pasteNotes; exports.pasteNotesMultiMeasure = _chunkBQKGH2LTjs.pasteNotesMultiMeasure; exports.pitchToSemitone = _chunkEWLB5X64js.pitchToSemitone; exports.raiseAccidental = _chunkBQKGH2LTjs.raiseAccidental; exports.removeArticulation = _chunkBQKGH2LTjs.removeArticulation; exports.removeBeam = _chunkBQKGH2LTjs.removeBeam; exports.removeBowing = _chunkBQKGH2LTjs.removeBowing; exports.removeBreathMark = _chunkBQKGH2LTjs.removeBreathMark; exports.removeCaesura = _chunkBQKGH2LTjs.removeCaesura; exports.removeChordSymbol = _chunkBQKGH2LTjs.removeChordSymbol; exports.removeDynamics = _chunkBQKGH2LTjs.removeDynamics; exports.removeEnding = _chunkBQKGH2LTjs.removeEnding; exports.removeFermata = _chunkBQKGH2LTjs.removeFermata; exports.removeFingering = _chunkBQKGH2LTjs.removeFingering; exports.removeGraceNote = _chunkBQKGH2LTjs.removeGraceNote; exports.removeHarmony = _chunkBQKGH2LTjs.removeHarmony; exports.removeLyric = _chunkBQKGH2LTjs.removeLyric; exports.removeNote = _chunkBQKGH2LTjs.removeNote; exports.removeOctaveShift = _chunkBQKGH2LTjs.removeOctaveShift; exports.removeOrnament = _chunkBQKGH2LTjs.removeOrnament; exports.removePart = _chunkBQKGH2LTjs.removePart; exports.removePedal = _chunkBQKGH2LTjs.removePedal; exports.removeRepeat = _chunkBQKGH2LTjs.removeRepeat; exports.removeRepeatBarline = _chunkBQKGH2LTjs.removeRepeatBarline; exports.removeSlur = _chunkBQKGH2LTjs.removeSlur; exports.removeStringNumber = _chunkBQKGH2LTjs.removeStringNumber; exports.removeTempo = _chunkBQKGH2LTjs.removeTempo; exports.removeTie = _chunkBQKGH2LTjs.removeTie; exports.removeTuplet = _chunkBQKGH2LTjs.removeTuplet; exports.removeWedge = _chunkBQKGH2LTjs.removeWedge; exports.scoresEqual = _chunkEWLB5X64js.scoresEqual; exports.serialize = _chunkC6ZNOTY2js.serialize; exports.serializeAbc = _chunkC6ZNOTY2js.serializeAbc; exports.serializeCompressed = _chunkC6ZNOTY2js.serializeCompressed; exports.serializeToFile = serializeToFile; exports.setBarline = _chunkBQKGH2LTjs.setBarline; exports.setBeaming = _chunkBQKGH2LTjs.setBeaming; exports.setNotePitch = _chunkBQKGH2LTjs.setNotePitch; exports.setNotePitchBySemitone = _chunkBQKGH2LTjs.setNotePitchBySemitone; exports.setStaves = _chunkBQKGH2LTjs.setStaves; exports.shiftNotePitch = _chunkBQKGH2LTjs.shiftNotePitch; exports.stopOctaveShift = _chunkBQKGH2LTjs.stopOctaveShift; exports.transpose = _chunkBQKGH2LTjs.transpose; exports.transposeChecked = _chunkBQKGH2LTjs.transposeChecked; exports.updateChordSymbol = _chunkBQKGH2LTjs.updateChordSymbol; exports.updateHarmony = _chunkBQKGH2LTjs.updateHarmony; exports.updateLyric = _chunkBQKGH2LTjs.updateLyric; exports.validate = _chunkBQKGH2LTjs.validate; exports.validateBackupForward = _chunkBQKGH2LTjs.validateBackupForward; exports.validateBeams = _chunkBQKGH2LTjs.validateBeams; exports.validateDivisions = _chunkBQKGH2LTjs.validateDivisions; exports.validateMeasureDuration = _chunkBQKGH2LTjs.validateMeasureDuration; exports.validateMeasureLocal = _chunkBQKGH2LTjs.validateMeasureLocal; exports.validatePartReferences = _chunkBQKGH2LTjs.validatePartReferences; exports.validatePartStructure = _chunkBQKGH2LTjs.validatePartStructure; exports.validateSlurs = _chunkBQKGH2LTjs.validateSlurs; exports.validateSlursAcrossMeasures = _chunkBQKGH2LTjs.validateSlursAcrossMeasures; exports.validateStaffStructure = _chunkBQKGH2LTjs.validateStaffStructure; exports.validateTies = _chunkBQKGH2LTjs.validateTies; exports.validateTiesAcrossMeasures = _chunkBQKGH2LTjs.validateTiesAcrossMeasures; exports.validateTuplets = _chunkBQKGH2LTjs.validateTuplets; exports.validateVoiceStaff = _chunkBQKGH2LTjs.validateVoiceStaff; exports.withAbsolutePositions = _chunkEWLB5X64js.withAbsolutePositions;
557
+ exports.STEPS = _chunkEWLB5X64js.STEPS; exports.STEP_SEMITONES = _chunkEWLB5X64js.STEP_SEMITONES; exports.ValidationException = _chunkJRXV2ECWjs.ValidationException; exports.addArticulation = _chunkJRXV2ECWjs.addArticulation; exports.addBeam = _chunkJRXV2ECWjs.addBeam; exports.addBowing = _chunkJRXV2ECWjs.addBowing; exports.addBreathMark = _chunkJRXV2ECWjs.addBreathMark; exports.addCaesura = _chunkJRXV2ECWjs.addCaesura; exports.addChord = _chunkJRXV2ECWjs.addChord; exports.addChordNote = _chunkJRXV2ECWjs.addChordNote; exports.addChordNoteChecked = _chunkJRXV2ECWjs.addChordNoteChecked; exports.addChordSymbol = _chunkJRXV2ECWjs.addChordSymbol; exports.addCoda = _chunkJRXV2ECWjs.addCoda; exports.addDaCapo = _chunkJRXV2ECWjs.addDaCapo; exports.addDalSegno = _chunkJRXV2ECWjs.addDalSegno; exports.addDynamics = _chunkJRXV2ECWjs.addDynamics; exports.addEnding = _chunkJRXV2ECWjs.addEnding; exports.addFermata = _chunkJRXV2ECWjs.addFermata; exports.addFine = _chunkJRXV2ECWjs.addFine; exports.addFingering = _chunkJRXV2ECWjs.addFingering; exports.addGraceNote = _chunkJRXV2ECWjs.addGraceNote; exports.addHarmony = _chunkJRXV2ECWjs.addHarmony; exports.addLyric = _chunkJRXV2ECWjs.addLyric; exports.addNote = _chunkJRXV2ECWjs.addNote; exports.addNoteChecked = _chunkJRXV2ECWjs.addNoteChecked; exports.addOctaveShift = _chunkJRXV2ECWjs.addOctaveShift; exports.addOrnament = _chunkJRXV2ECWjs.addOrnament; exports.addPart = _chunkJRXV2ECWjs.addPart; exports.addPedal = _chunkJRXV2ECWjs.addPedal; exports.addRehearsalMark = _chunkJRXV2ECWjs.addRehearsalMark; exports.addRepeat = _chunkJRXV2ECWjs.addRepeat; exports.addRepeatBarline = _chunkJRXV2ECWjs.addRepeatBarline; exports.addSegno = _chunkJRXV2ECWjs.addSegno; exports.addSlur = _chunkJRXV2ECWjs.addSlur; exports.addStringNumber = _chunkJRXV2ECWjs.addStringNumber; exports.addTempo = _chunkJRXV2ECWjs.addTempo; exports.addText = _chunkJRXV2ECWjs.addText; exports.addTextDirection = _chunkJRXV2ECWjs.addTextDirection; exports.addTie = _chunkJRXV2ECWjs.addTie; exports.addToCoda = _chunkJRXV2ECWjs.addToCoda; exports.addVoice = _chunkJRXV2ECWjs.addVoice; exports.addWedge = _chunkJRXV2ECWjs.addWedge; exports.assertMeasureValid = _chunkJRXV2ECWjs.assertMeasureValid; exports.assertValid = _chunkJRXV2ECWjs.assertValid; exports.autoBeam = _chunkJRXV2ECWjs.autoBeam; exports.buildVoiceToStaffMap = _chunkEWLB5X64js.buildVoiceToStaffMap; exports.buildVoiceToStaffMapForPart = _chunkEWLB5X64js.buildVoiceToStaffMapForPart; exports.changeBarline = _chunkJRXV2ECWjs.changeBarline; exports.changeClef = _chunkJRXV2ECWjs.changeClef; exports.changeKey = _chunkJRXV2ECWjs.changeKey; exports.changeNoteDuration = _chunkJRXV2ECWjs.changeNoteDuration; exports.changeTime = _chunkJRXV2ECWjs.changeTime; exports.convertToGrace = _chunkJRXV2ECWjs.convertToGrace; exports.copyNotes = _chunkJRXV2ECWjs.copyNotes; exports.copyNotesMultiMeasure = _chunkJRXV2ECWjs.copyNotesMultiMeasure; exports.countNotes = _chunkEWLB5X64js.countNotes; exports.createTuplet = _chunkJRXV2ECWjs.createTuplet; exports.cutNotes = _chunkJRXV2ECWjs.cutNotes; exports.decodeBuffer = decodeBuffer; exports.deleteMeasure = _chunkJRXV2ECWjs.deleteMeasure; exports.deleteNote = _chunkJRXV2ECWjs.deleteNote; exports.deleteNoteChecked = _chunkJRXV2ECWjs.deleteNoteChecked; exports.duplicatePart = _chunkJRXV2ECWjs.duplicatePart; exports.exportMidi = _chunkUBN64UJKjs.exportMidi; exports.exportMidiWithTimingMap = _chunkUBN64UJKjs.exportMidiWithTimingMap; exports.extractPlaybackControls = _chunkEWLB5X64js.extractPlaybackControls; exports.findBarlines = _chunkEWLB5X64js.findBarlines; exports.findDirectionsByType = _chunkEWLB5X64js.findDirectionsByType; exports.findNotes = _chunkEWLB5X64js.findNotes; exports.findNotesWithNotation = _chunkEWLB5X64js.findNotesWithNotation; exports.formatLocation = _chunkJRXV2ECWjs.formatLocation; exports.generateId = _chunkJRXV2ECWjs.generateId; exports.generatePlaybackSequence = _chunkEWLB5X64js.generatePlaybackSequence; exports.generatePlaybackTimeline = _chunkEWLB5X64js.generatePlaybackTimeline; exports.getAbsolutePosition = _chunkEWLB5X64js.getAbsolutePosition; exports.getAdjacentNotes = _chunkEWLB5X64js.getAdjacentNotes; exports.getAllNotes = _chunkEWLB5X64js.getAllNotes; exports.getAllPartInfos = _chunkOEX7NVZNjs.getAllPartInfos; exports.getAttributesAtMeasure = _chunkEWLB5X64js.getAttributesAtMeasure; exports.getBeamGroups = _chunkEWLB5X64js.getBeamGroups; exports.getChordProgression = _chunkEWLB5X64js.getChordProgression; exports.getChords = _chunkEWLB5X64js.getChords; exports.getClefChanges = _chunkEWLB5X64js.getClefChanges; exports.getClefForStaff = _chunkEWLB5X64js.getClefForStaff; exports.getDirectionOfKind = _chunkOEX7NVZNjs.getDirectionOfKind; exports.getDirections = _chunkEWLB5X64js.getDirections; exports.getDirectionsAtPosition = _chunkEWLB5X64js.getDirectionsAtPosition; exports.getDirectionsOfKind = _chunkOEX7NVZNjs.getDirectionsOfKind; exports.getDivisions = _chunkEWLB5X64js.getDivisions; exports.getDuration = _chunkEWLB5X64js.getDuration; exports.getDynamics = _chunkEWLB5X64js.getDynamics; exports.getEffectiveStaff = _chunkEWLB5X64js.getEffectiveStaff; exports.getEndings = _chunkEWLB5X64js.getEndings; exports.getEntriesAtPosition = _chunkEWLB5X64js.getEntriesAtPosition; exports.getEntriesForStaff = _chunkEWLB5X64js.getEntriesForStaff; exports.getEntriesInRange = _chunkEWLB5X64js.getEntriesInRange; exports.getHarmonies = _chunkEWLB5X64js.getHarmonies; exports.getHarmonyAtPosition = _chunkEWLB5X64js.getHarmonyAtPosition; exports.getKeyChanges = _chunkEWLB5X64js.getKeyChanges; exports.getLyricText = _chunkEWLB5X64js.getLyricText; exports.getLyrics = _chunkEWLB5X64js.getLyrics; exports.getMeasure = _chunkEWLB5X64js.getMeasure; exports.getMeasureByIndex = _chunkEWLB5X64js.getMeasureByIndex; exports.getMeasureContext = _chunkJRXV2ECWjs.getMeasureContext; exports.getMeasureCount = _chunkEWLB5X64js.getMeasureCount; exports.getMeasureEndPosition = _chunkEWLB5X64js.getMeasureEndPosition; exports.getNextNote = _chunkEWLB5X64js.getNextNote; exports.getNormalizedDuration = _chunkEWLB5X64js.getNormalizedDuration; exports.getNormalizedPosition = _chunkEWLB5X64js.getNormalizedPosition; exports.getNotesAtPosition = _chunkEWLB5X64js.getNotesAtPosition; exports.getNotesForStaff = _chunkEWLB5X64js.getNotesForStaff; exports.getNotesForVoice = _chunkEWLB5X64js.getNotesForVoice; exports.getNotesInRange = _chunkEWLB5X64js.getNotesInRange; exports.getOctaveShifts = _chunkEWLB5X64js.getOctaveShifts; exports.getPartAbbreviation = _chunkOEX7NVZNjs.getPartAbbreviation; exports.getPartById = _chunkEWLB5X64js.getPartById; exports.getPartByIndex = _chunkEWLB5X64js.getPartByIndex; exports.getPartCount = _chunkEWLB5X64js.getPartCount; exports.getPartIds = _chunkEWLB5X64js.getPartIds; exports.getPartIndex = _chunkEWLB5X64js.getPartIndex; exports.getPartInfo = _chunkOEX7NVZNjs.getPartInfo; exports.getPartName = _chunkOEX7NVZNjs.getPartName; exports.getPartNameMap = _chunkOEX7NVZNjs.getPartNameMap; exports.getPedalMarkings = _chunkEWLB5X64js.getPedalMarkings; exports.getPrevNote = _chunkEWLB5X64js.getPrevNote; exports.getRepeatStructure = _chunkEWLB5X64js.getRepeatStructure; exports.getSlurSpans = _chunkEWLB5X64js.getSlurSpans; exports.getSoundDamperPedal = _chunkOEX7NVZNjs.getSoundDamperPedal; exports.getSoundDynamics = _chunkOEX7NVZNjs.getSoundDynamics; exports.getSoundSoftPedal = _chunkOEX7NVZNjs.getSoundSoftPedal; exports.getSoundSostenutoPedal = _chunkOEX7NVZNjs.getSoundSostenutoPedal; exports.getSoundTempo = _chunkOEX7NVZNjs.getSoundTempo; exports.getStaffRange = _chunkEWLB5X64js.getStaffRange; exports.getStaveCount = _chunkEWLB5X64js.getStaveCount; exports.getStaves = _chunkEWLB5X64js.getStaves; exports.getStructuralChanges = _chunkEWLB5X64js.getStructuralChanges; exports.getTempoMarkings = _chunkEWLB5X64js.getTempoMarkings; exports.getTiedNoteGroups = _chunkEWLB5X64js.getTiedNoteGroups; exports.getTimeChanges = _chunkEWLB5X64js.getTimeChanges; exports.getTupletGroups = _chunkEWLB5X64js.getTupletGroups; exports.getVerseCount = _chunkEWLB5X64js.getVerseCount; exports.getVerticalSlice = _chunkEWLB5X64js.getVerticalSlice; exports.getVoiceLine = _chunkEWLB5X64js.getVoiceLine; exports.getVoiceLineInRange = _chunkEWLB5X64js.getVoiceLineInRange; exports.getVoices = _chunkEWLB5X64js.getVoices; exports.getVoicesForStaff = _chunkEWLB5X64js.getVoicesForStaff; exports.getWedges = _chunkEWLB5X64js.getWedges; exports.groupByStaff = _chunkEWLB5X64js.groupByStaff; exports.groupByVoice = _chunkEWLB5X64js.groupByVoice; exports.hasBeam = _chunkOEX7NVZNjs.hasBeam; exports.hasDirectionOfKind = _chunkOEX7NVZNjs.hasDirectionOfKind; exports.hasLyrics = _chunkOEX7NVZNjs.hasLyrics; exports.hasMultipleStaves = _chunkEWLB5X64js.hasMultipleStaves; exports.hasNotations = _chunkOEX7NVZNjs.hasNotations; exports.hasNotes = _chunkEWLB5X64js.hasNotes; exports.hasPlaybackControls = _chunkEWLB5X64js.hasPlaybackControls; exports.hasTie = _chunkOEX7NVZNjs.hasTie; exports.hasTieStart = _chunkOEX7NVZNjs.hasTieStart; exports.hasTieStop = _chunkOEX7NVZNjs.hasTieStop; exports.hasTuplet = _chunkOEX7NVZNjs.hasTuplet; exports.inferStaff = _chunkEWLB5X64js.inferStaff; exports.insertClefChange = _chunkJRXV2ECWjs.insertClefChange; exports.insertMeasure = _chunkJRXV2ECWjs.insertMeasure; exports.insertNote = _chunkJRXV2ECWjs.insertNote; exports.isChordNote = _chunkOEX7NVZNjs.isChordNote; exports.isCompressed = _chunkUBN64UJKjs.isCompressed; exports.isCueNote = _chunkOEX7NVZNjs.isCueNote; exports.isGraceNote = _chunkOEX7NVZNjs.isGraceNote; exports.isPartInfo = _chunkOEX7NVZNjs.isPartInfo; exports.isPitchedNote = _chunkOEX7NVZNjs.isPitchedNote; exports.isRest = _chunkOEX7NVZNjs.isRest; exports.isRestMeasure = _chunkEWLB5X64js.isRestMeasure; exports.isUnpitchedNote = _chunkOEX7NVZNjs.isUnpitchedNote; exports.isValid = _chunkJRXV2ECWjs.isValid; exports.iterateEntries = _chunkEWLB5X64js.iterateEntries; exports.iterateNotes = _chunkEWLB5X64js.iterateNotes; exports.lowerAccidental = _chunkJRXV2ECWjs.lowerAccidental; exports.measureRoundtrip = _chunkEWLB5X64js.measureRoundtrip; exports.modifyDynamics = _chunkJRXV2ECWjs.modifyDynamics; exports.modifyNoteDuration = _chunkJRXV2ECWjs.modifyNoteDuration; exports.modifyNoteDurationChecked = _chunkJRXV2ECWjs.modifyNoteDurationChecked; exports.modifyNotePitch = _chunkJRXV2ECWjs.modifyNotePitch; exports.modifyNotePitchChecked = _chunkJRXV2ECWjs.modifyNotePitchChecked; exports.modifyTempo = _chunkJRXV2ECWjs.modifyTempo; exports.moveNoteToStaff = _chunkJRXV2ECWjs.moveNoteToStaff; exports.parse = _chunkUBN64UJKjs.parse; exports.parseAbc = _chunkUBN64UJKjs.parseAbc; exports.parseAuto = _chunkUBN64UJKjs.parseAuto; exports.parseCompressed = _chunkUBN64UJKjs.parseCompressed; exports.parseFile = parseFile; exports.pasteNotes = _chunkJRXV2ECWjs.pasteNotes; exports.pasteNotesMultiMeasure = _chunkJRXV2ECWjs.pasteNotesMultiMeasure; exports.pitchToSemitone = _chunkEWLB5X64js.pitchToSemitone; exports.raiseAccidental = _chunkJRXV2ECWjs.raiseAccidental; exports.removeArticulation = _chunkJRXV2ECWjs.removeArticulation; exports.removeBeam = _chunkJRXV2ECWjs.removeBeam; exports.removeBowing = _chunkJRXV2ECWjs.removeBowing; exports.removeBreathMark = _chunkJRXV2ECWjs.removeBreathMark; exports.removeCaesura = _chunkJRXV2ECWjs.removeCaesura; exports.removeChordSymbol = _chunkJRXV2ECWjs.removeChordSymbol; exports.removeDynamics = _chunkJRXV2ECWjs.removeDynamics; exports.removeEnding = _chunkJRXV2ECWjs.removeEnding; exports.removeFermata = _chunkJRXV2ECWjs.removeFermata; exports.removeFingering = _chunkJRXV2ECWjs.removeFingering; exports.removeGraceNote = _chunkJRXV2ECWjs.removeGraceNote; exports.removeHarmony = _chunkJRXV2ECWjs.removeHarmony; exports.removeLyric = _chunkJRXV2ECWjs.removeLyric; exports.removeNote = _chunkJRXV2ECWjs.removeNote; exports.removeOctaveShift = _chunkJRXV2ECWjs.removeOctaveShift; exports.removeOrnament = _chunkJRXV2ECWjs.removeOrnament; exports.removePart = _chunkJRXV2ECWjs.removePart; exports.removePedal = _chunkJRXV2ECWjs.removePedal; exports.removeRepeat = _chunkJRXV2ECWjs.removeRepeat; exports.removeRepeatBarline = _chunkJRXV2ECWjs.removeRepeatBarline; exports.removeSlur = _chunkJRXV2ECWjs.removeSlur; exports.removeStringNumber = _chunkJRXV2ECWjs.removeStringNumber; exports.removeTempo = _chunkJRXV2ECWjs.removeTempo; exports.removeTie = _chunkJRXV2ECWjs.removeTie; exports.removeTuplet = _chunkJRXV2ECWjs.removeTuplet; exports.removeWedge = _chunkJRXV2ECWjs.removeWedge; exports.scoresEqual = _chunkEWLB5X64js.scoresEqual; exports.serialize = _chunkUBN64UJKjs.serialize; exports.serializeAbc = _chunkUBN64UJKjs.serializeAbc; exports.serializeCompressed = _chunkUBN64UJKjs.serializeCompressed; exports.serializeToFile = serializeToFile; exports.setBarline = _chunkJRXV2ECWjs.setBarline; exports.setBeaming = _chunkJRXV2ECWjs.setBeaming; exports.setNotePitch = _chunkJRXV2ECWjs.setNotePitch; exports.setNotePitchBySemitone = _chunkJRXV2ECWjs.setNotePitchBySemitone; exports.setStaves = _chunkJRXV2ECWjs.setStaves; exports.shiftNotePitch = _chunkJRXV2ECWjs.shiftNotePitch; exports.stopOctaveShift = _chunkJRXV2ECWjs.stopOctaveShift; exports.transpose = _chunkJRXV2ECWjs.transpose; exports.transposeChecked = _chunkJRXV2ECWjs.transposeChecked; exports.updateChordSymbol = _chunkJRXV2ECWjs.updateChordSymbol; exports.updateHarmony = _chunkJRXV2ECWjs.updateHarmony; exports.updateLyric = _chunkJRXV2ECWjs.updateLyric; exports.validate = _chunkJRXV2ECWjs.validate; exports.validateBackupForward = _chunkJRXV2ECWjs.validateBackupForward; exports.validateBeams = _chunkJRXV2ECWjs.validateBeams; exports.validateDivisions = _chunkJRXV2ECWjs.validateDivisions; exports.validateMeasureDuration = _chunkJRXV2ECWjs.validateMeasureDuration; exports.validateMeasureLocal = _chunkJRXV2ECWjs.validateMeasureLocal; exports.validatePartReferences = _chunkJRXV2ECWjs.validatePartReferences; exports.validatePartStructure = _chunkJRXV2ECWjs.validatePartStructure; exports.validateSlurs = _chunkJRXV2ECWjs.validateSlurs; exports.validateSlursAcrossMeasures = _chunkJRXV2ECWjs.validateSlursAcrossMeasures; exports.validateStaffStructure = _chunkJRXV2ECWjs.validateStaffStructure; exports.validateTies = _chunkJRXV2ECWjs.validateTies; exports.validateTiesAcrossMeasures = _chunkJRXV2ECWjs.validateTiesAcrossMeasures; exports.validateTuplets = _chunkJRXV2ECWjs.validateTuplets; exports.validateVoiceStaff = _chunkJRXV2ECWjs.validateVoiceStaff; exports.withAbsolutePositions = _chunkEWLB5X64js.withAbsolutePositions;