@coderline/alphatab 1.7.0-alpha.1522 → 1.7.0-alpha.1527

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.
package/dist/alphaTab.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * alphaTab v1.7.0-alpha.1522 (develop, build 1522)
2
+ * alphaTab v1.7.0-alpha.1527 (develop, build 1527)
3
3
  *
4
4
  * Copyright © 2025, Daniel Kuschny and Contributors, All rights reserved.
5
5
  *
@@ -203,9 +203,9 @@
203
203
  print(`build date: ${VersionInfo.date}`);
204
204
  }
205
205
  }
206
- VersionInfo.version = '1.7.0-alpha.1522';
207
- VersionInfo.date = '2025-08-24T02:21:16.522Z';
208
- VersionInfo.commit = 'c80b4a66eae6b73cb2d7dacaaf74c8f9cce16318';
206
+ VersionInfo.version = '1.7.0-alpha.1527';
207
+ VersionInfo.date = '2025-08-29T02:00:51.139Z';
208
+ VersionInfo.commit = 'fb7020e4a8b90820f267c8d99ccaa18c43057db8';
209
209
 
210
210
  /**
211
211
  * This public class provides names for all general midi instruments.
@@ -3530,7 +3530,7 @@
3530
3530
  return null;
3531
3531
  }
3532
3532
  const result = new TuningParseResult();
3533
- result.octave = Number.parseInt(octave) + 1;
3533
+ result.octave = Number.parseInt(octave, 10) + 1;
3534
3534
  result.note = note.toLowerCase();
3535
3535
  result.tone = ModelUtils.getToneForText(result.note);
3536
3536
  // if tone.noteValue is negative (eg. on Cb note)
@@ -3979,7 +3979,7 @@
3979
3979
  for (const keySignatureText of transpose) {
3980
3980
  const keySignature =
3981
3981
  // digit
3982
- (Number.parseInt(keySignatureText.charAt(0)) *
3982
+ (Number.parseInt(keySignatureText.charAt(0), 10) *
3983
3983
  // b -> negative, # positive
3984
3984
  (keySignatureText.charAt(1) === 'b' ? -1 : 1));
3985
3985
  transposeValues.push(keySignature);
@@ -8138,10 +8138,10 @@
8138
8138
  }
8139
8139
  const numbers = json.substring(start + 1, end).split(',');
8140
8140
  if (numbers.length === 3) {
8141
- return new Color(Number.parseInt(numbers[0]), Number.parseInt(numbers[1]), Number.parseInt(numbers[2]));
8141
+ return new Color(Number.parseInt(numbers[0], 10), Number.parseInt(numbers[1], 10), Number.parseInt(numbers[2], 10));
8142
8142
  }
8143
8143
  if (numbers.length === 4) {
8144
- return new Color(Number.parseInt(numbers[0]), Number.parseInt(numbers[1]), Number.parseInt(numbers[2]), Number.parseFloat(numbers[3]) * 255);
8144
+ return new Color(Number.parseInt(numbers[0], 10), Number.parseInt(numbers[1], 10), Number.parseInt(numbers[2], 10), Number.parseFloat(numbers[3]) * 255);
8145
8145
  }
8146
8146
  }
8147
8147
  return null;
@@ -9459,7 +9459,7 @@
9459
9459
  this.syData = str;
9460
9460
  }
9461
9461
  else {
9462
- this.syData = allowFloat ? Number.parseFloat(str) : Number.parseInt(str);
9462
+ this.syData = allowFloat ? Number.parseFloat(str) : Number.parseInt(str, 10);
9463
9463
  }
9464
9464
  return;
9465
9465
  }
@@ -13648,8 +13648,8 @@
13648
13648
  const s = str.substr(start, p - start);
13649
13649
  if (s.charCodeAt(0) === XmlParser.CharCodeSharp) {
13650
13650
  const code = s.charCodeAt(1) === XmlParser.CharCodeLowerX
13651
- ? Number.parseInt(`0${s.substr(1, s.length - 1)}`)
13652
- : Number.parseInt(s.substr(1, s.length - 1));
13651
+ ? Number.parseInt(`0${s.substr(1, s.length - 1)}`, 10)
13652
+ : Number.parseInt(s.substr(1, s.length - 1), 10);
13653
13653
  buf += String.fromCharCode(code);
13654
13654
  }
13655
13655
  else if (XmlParser.Escapes.has(s)) {
@@ -14165,8 +14165,8 @@
14165
14165
  }
14166
14166
  parseBracket(element) {
14167
14167
  const bracket = new Bracket();
14168
- bracket.from = Number.parseInt(element.getAttribute('from'));
14169
- bracket.to = Number.parseInt(element.getAttribute('to'));
14168
+ bracket.from = Number.parseInt(element.getAttribute('from'), 10);
14169
+ bracket.to = Number.parseInt(element.getAttribute('to'), 10);
14170
14170
  if (element.attributes.has('curly')) {
14171
14171
  bracket.curly = element.attributes.get('curly') === 'true';
14172
14172
  }
@@ -14196,13 +14196,13 @@
14196
14196
  layout.percussion = c.attributes.get('percussion') === 'true';
14197
14197
  }
14198
14198
  if (c.attributes.has('instr')) {
14199
- layout.instrument = Number.parseInt(c.attributes.get('instr'));
14199
+ layout.instrument = Number.parseInt(c.attributes.get('instr'), 10);
14200
14200
  }
14201
14201
  if (c.attributes.has('volume')) {
14202
- layout.volume = Number.parseInt(c.attributes.get('volume'));
14202
+ layout.volume = Number.parseInt(c.attributes.get('volume'), 10);
14203
14203
  }
14204
14204
  if (c.attributes.has('transpose')) {
14205
- layout.transpose = Number.parseInt(c.attributes.get('transpose'));
14205
+ layout.transpose = Number.parseInt(c.attributes.get('transpose'), 10);
14206
14206
  }
14207
14207
  break;
14208
14208
  }
@@ -14245,7 +14245,7 @@
14245
14245
  parseSystem(element) {
14246
14246
  if (element.attributes.has('tempo')) {
14247
14247
  if (this.score.masterBars.length === 0) {
14248
- this.score.tempo = Number.parseInt(element.attributes.get('tempo'));
14248
+ this.score.tempo = Number.parseInt(element.attributes.get('tempo'), 10);
14249
14249
  }
14250
14250
  }
14251
14251
  if (element.getAttribute('beamGrouping') === '0') {
@@ -14308,8 +14308,8 @@
14308
14308
  default:
14309
14309
  if (value.indexOf('/') > 0) {
14310
14310
  const parts = value.split('/');
14311
- this._timeSignature.timeSignatureNumerator = Number.parseInt(parts[0]);
14312
- this._timeSignature.timeSignatureDenominator = Number.parseInt(parts[1]);
14311
+ this._timeSignature.timeSignatureNumerator = Number.parseInt(parts[0], 10);
14312
+ this._timeSignature.timeSignatureDenominator = Number.parseInt(parts[1], 10);
14313
14313
  this._timeSignature.timeSignatureCommon = false;
14314
14314
  }
14315
14315
  break;
@@ -14404,7 +14404,7 @@
14404
14404
  const automation = new Automation();
14405
14405
  automation.isLinear = true;
14406
14406
  automation.type = AutomationType.Tempo;
14407
- automation.value = Number.parseInt(systemElement.attributes.get('tempo'));
14407
+ automation.value = Number.parseInt(systemElement.attributes.get('tempo'), 10);
14408
14408
  automation.ratioPosition =
14409
14409
  this._currentVoiceState.currentPosition / this._currentVoiceState.currentBarDuration;
14410
14410
  this._currentBar.masterBar.tempoAutomations.push(automation);
@@ -14420,7 +14420,7 @@
14420
14420
  this._currentBar.clefOttava = this.parseClefOttava(c.getAttribute('clef'));
14421
14421
  break;
14422
14422
  case 'keySign':
14423
- this._currentBar.keySignature = Number.parseInt(c.getAttribute('fifths'));
14423
+ this._currentBar.keySignature = Number.parseInt(c.getAttribute('fifths'), 10);
14424
14424
  break;
14425
14425
  case 'timeSign':
14426
14426
  this.parseTime(c.getAttribute('time'));
@@ -14621,7 +14621,7 @@
14621
14621
  switch (c.localName) {
14622
14622
  case 'alter':
14623
14623
  if (c.attributes.has('step')) {
14624
- note.tone += Number.parseInt(c.attributes.get('step'));
14624
+ note.tone += Number.parseInt(c.attributes.get('step'), 10);
14625
14625
  }
14626
14626
  break;
14627
14627
  case 'tie':
@@ -14774,7 +14774,7 @@
14774
14774
  return restBeat;
14775
14775
  }
14776
14776
  // for
14777
- const fullBars = Number.parseInt(durationBase);
14777
+ const fullBars = Number.parseInt(durationBase, 10);
14778
14778
  if (fullBars === 1) {
14779
14779
  const restBeat = new Beat();
14780
14780
  restBeat.beamingMode = this._beamingMode;
@@ -14814,11 +14814,11 @@
14814
14814
  const durationBase = element.getAttribute('base');
14815
14815
  beat.duration = this.parseDurationValue(durationBase);
14816
14816
  if (element.attributes.has('dots')) {
14817
- beat.dots = Number.parseInt(element.attributes.get('dots'));
14817
+ beat.dots = Number.parseInt(element.attributes.get('dots'), 10);
14818
14818
  }
14819
14819
  const tuplet = element.findChildElement('tuplet');
14820
14820
  if (tuplet) {
14821
- beat.tupletNumerator = Number.parseInt(tuplet.getAttribute('count'));
14821
+ beat.tupletNumerator = Number.parseInt(tuplet.getAttribute('count'), 10);
14822
14822
  const tripartiteMultiplicator = tuplet.getAttribute('tripartite') === 'true' ? 3 : 1;
14823
14823
  const prolongDiff = tuplet.getAttribute('prolong') === 'true' ? 0 : 1;
14824
14824
  let power = 0;
@@ -14902,7 +14902,7 @@
14902
14902
  break;
14903
14903
  case 'basic':
14904
14904
  if (c.attributes.has('noteRange')) {
14905
- noteRange = Number.parseInt(c.attributes.get('noteRange'));
14905
+ noteRange = Number.parseInt(c.attributes.get('noteRange'), 10);
14906
14906
  }
14907
14907
  break;
14908
14908
  }
@@ -14919,7 +14919,7 @@
14919
14919
  parseOctaveClef(element) {
14920
14920
  const obj = new OctaveClefDrawObject();
14921
14921
  if (element.attributes.has('octave')) {
14922
- obj.octave = Number.parseInt(element.attributes.get('octave'));
14922
+ obj.octave = Number.parseInt(element.attributes.get('octave'), 10);
14923
14923
  }
14924
14924
  return obj;
14925
14925
  }
@@ -14927,10 +14927,10 @@
14927
14927
  const obj = new VoltaDrawObject();
14928
14928
  obj.allNumbers = element.attributes.get('allNumbers') === 'true';
14929
14929
  if (element.attributes.has('firstNumber')) {
14930
- obj.firstNumber = Number.parseInt(element.attributes.get('firstNumber'));
14930
+ obj.firstNumber = Number.parseInt(element.attributes.get('firstNumber'), 10);
14931
14931
  }
14932
14932
  if (element.attributes.has('lastNumber')) {
14933
- obj.lastNumber = Number.parseInt(element.attributes.get('lastNumber'));
14933
+ obj.lastNumber = Number.parseInt(element.attributes.get('lastNumber'), 10);
14934
14934
  }
14935
14935
  return obj;
14936
14936
  }
@@ -14942,7 +14942,7 @@
14942
14942
  parseTupletBracket(element) {
14943
14943
  const obj = new TupletBracketDrawObject();
14944
14944
  if (element.attributes.has('number')) {
14945
- obj.number = Number.parseInt(element.attributes.get('number'));
14945
+ obj.number = Number.parseInt(element.attributes.get('number'), 10);
14946
14946
  }
14947
14947
  return obj;
14948
14948
  }
@@ -14962,7 +14962,7 @@
14962
14962
  obj.chord.strings.push(0);
14963
14963
  }
14964
14964
  else {
14965
- obj.chord.strings.push(Number.parseInt(strings.charAt(i)));
14965
+ obj.chord.strings.push(Number.parseInt(strings.charAt(i), 10));
14966
14966
  }
14967
14967
  }
14968
14968
  return obj;
@@ -15006,10 +15006,10 @@
15006
15006
  case 'font':
15007
15007
  obj.fontFace = c.getAttribute('face');
15008
15008
  if (c.attributes.has('weight')) {
15009
- obj.weight = Number.parseInt(c.attributes.get('weight'));
15009
+ obj.weight = Number.parseInt(c.attributes.get('weight'), 10);
15010
15010
  }
15011
15011
  if (c.attributes.has('height')) {
15012
- obj.height = Number.parseInt(c.attributes.get('height'));
15012
+ obj.height = Number.parseInt(c.attributes.get('height'), 10);
15013
15013
  }
15014
15014
  break;
15015
15015
  case 'content':
@@ -15211,7 +15211,7 @@
15211
15211
  }
15212
15212
  version = version.substr(Gp3To5Importer.VersionString.length + 1);
15213
15213
  const dot = version.indexOf(String.fromCharCode(46));
15214
- this._versionNumber = 100 * Number.parseInt(version.substr(0, dot)) + Number.parseInt(version.substr(dot + 1));
15214
+ this._versionNumber = 100 * Number.parseInt(version.substr(0, dot), 10) + Number.parseInt(version.substr(dot + 1), 10);
15215
15215
  Logger.debug(this.name, `Guitar Pro version ${version} detected`);
15216
15216
  }
15217
15217
  readScoreInformation() {
@@ -17239,7 +17239,7 @@
17239
17239
  if (!text) {
17240
17240
  return fallback;
17241
17241
  }
17242
- const i = Number.parseInt(text);
17242
+ const i = Number.parseInt(text, 10);
17243
17243
  if (!Number.isNaN(i)) {
17244
17244
  return i;
17245
17245
  }
@@ -21081,17 +21081,17 @@
21081
21081
  for (const c of element.childElements()) {
21082
21082
  switch (c.localName) {
21083
21083
  case 'midi-channel':
21084
- articulation.outputMidiChannel = Number.parseInt(c.innerText) - 1;
21084
+ articulation.outputMidiChannel = Number.parseInt(c.innerText, 10) - 1;
21085
21085
  break;
21086
21086
  // case 'midi-name': Ignored
21087
21087
  case 'midi-bank':
21088
- articulation.outputMidiBank = Number.parseInt(c.innerText) - 1;
21088
+ articulation.outputMidiBank = Number.parseInt(c.innerText, 10) - 1;
21089
21089
  break;
21090
21090
  case 'midi-program':
21091
- articulation.outputMidiProgram = Number.parseInt(c.innerText) - 1;
21091
+ articulation.outputMidiProgram = Number.parseInt(c.innerText, 10) - 1;
21092
21092
  break;
21093
21093
  case 'midi-unpitched':
21094
- articulation.outputMidiNumber = Number.parseInt(c.innerText) - 1;
21094
+ articulation.outputMidiNumber = Number.parseInt(c.innerText, 10) - 1;
21095
21095
  break;
21096
21096
  case 'volume':
21097
21097
  articulation.outputVolume = MusicXmlImporter.interpolatePercent(Number.parseFloat(c.innerText));
@@ -21422,7 +21422,7 @@
21422
21422
  }
21423
21423
  parseRepeat(element, masterBar) {
21424
21424
  const direction = element.getAttribute('direction');
21425
- let times = Number.parseInt(element.getAttribute('times'));
21425
+ let times = Number.parseInt(element.getAttribute('times'), 10);
21426
21426
  if (times < 0 || Number.isNaN(times)) {
21427
21427
  times = 2;
21428
21428
  }
@@ -21437,7 +21437,7 @@
21437
21437
  const numbers = element
21438
21438
  .getAttribute('number')
21439
21439
  .split(',')
21440
- .map(v => Number.parseInt(v));
21440
+ .map(v => Number.parseInt(v, 10));
21441
21441
  let flags = 0;
21442
21442
  for (const num of numbers) {
21443
21443
  flags = flags | ((0x01 << (num - 1)) & 0xff);
@@ -21572,10 +21572,10 @@
21572
21572
  masterBar.tripletFeel = TripletFeel.NoTripletFeel;
21573
21573
  return;
21574
21574
  case 'first':
21575
- first = Number.parseInt(c.innerText);
21575
+ first = Number.parseInt(c.innerText, 10);
21576
21576
  break;
21577
21577
  case 'second':
21578
- second = Number.parseInt(c.innerText);
21578
+ second = Number.parseInt(c.innerText, 10);
21579
21579
  break;
21580
21580
  case 'swing-type':
21581
21581
  swingType = this.parseBeatDuration(c);
@@ -21622,7 +21622,7 @@
21622
21622
  }
21623
21623
  automation = new Automation();
21624
21624
  automation.type = AutomationType.Bank;
21625
- automation.value = Number.parseInt(c.innerText) - 1;
21625
+ automation.value = Number.parseInt(c.innerText, 10) - 1;
21626
21626
  this._nextBeatAutomations.push(automation);
21627
21627
  break;
21628
21628
  case 'midi-program':
@@ -21631,7 +21631,7 @@
21631
21631
  }
21632
21632
  automation = new Automation();
21633
21633
  automation.type = AutomationType.Instrument;
21634
- automation.value = Number.parseInt(c.innerText) - 1;
21634
+ automation.value = Number.parseInt(c.innerText, 10) - 1;
21635
21635
  this._nextBeatAutomations.push(automation);
21636
21636
  break;
21637
21637
  // case 'midi-unpitched': Ignored
@@ -21856,7 +21856,7 @@
21856
21856
  for (const frameChild of xmlNode.childElements()) {
21857
21857
  switch (frameChild.localName) {
21858
21858
  case 'frame-strings':
21859
- const stringsCount = Number.parseInt(frameChild.innerText);
21859
+ const stringsCount = Number.parseInt(frameChild.innerText, 10);
21860
21860
  chord.strings = new Array(stringsCount);
21861
21861
  for (let i = 0; i < stringsCount; i++) {
21862
21862
  // set strings unplayed as default
@@ -21864,7 +21864,7 @@
21864
21864
  }
21865
21865
  break;
21866
21866
  case 'first-fret':
21867
- chord.firstFret = Number.parseInt(frameChild.innerText);
21867
+ chord.firstFret = Number.parseInt(frameChild.innerText, 10);
21868
21868
  break;
21869
21869
  case 'frame-note':
21870
21870
  let stringNo = null;
@@ -21872,10 +21872,10 @@
21872
21872
  for (const noteChild of frameChild.childElements()) {
21873
21873
  switch (noteChild.localName) {
21874
21874
  case 'string':
21875
- stringNo = Number.parseInt(noteChild.innerText);
21875
+ stringNo = Number.parseInt(noteChild.innerText, 10);
21876
21876
  break;
21877
21877
  case 'fret':
21878
- fretNo = Number.parseInt(noteChild.innerText);
21878
+ fretNo = Number.parseInt(noteChild.innerText, 10);
21879
21879
  if (stringNo && fretNo >= 0) {
21880
21880
  chord.strings[stringNo - 1] = fretNo;
21881
21881
  }
@@ -21912,18 +21912,18 @@
21912
21912
  break;
21913
21913
  case 'staves':
21914
21914
  // will create staves
21915
- track.ensureStaveCount(Number.parseInt(c.innerText));
21915
+ track.ensureStaveCount(Number.parseInt(c.innerText, 10));
21916
21916
  break;
21917
21917
  // case 'part-symbol': Ignored (https://github.com/CoderLine/alphaTab/issues/1989)
21918
21918
  // case 'instruments': Ignored, auto-detected via `note/instrument` and handled via instrument articulations
21919
21919
  case 'clef':
21920
- staffIndex = Number.parseInt(c.getAttribute('number', '1')) - 1;
21920
+ staffIndex = Number.parseInt(c.getAttribute('number', '1'), 10) - 1;
21921
21921
  staff = this.getOrCreateStaff(track, staffIndex);
21922
21922
  bar = this.getOrCreateBar(staff, masterBar);
21923
21923
  this.parseClef(c, bar);
21924
21924
  break;
21925
21925
  case 'staff-details':
21926
- staffIndex = Number.parseInt(c.getAttribute('number', '1')) - 1;
21926
+ staffIndex = Number.parseInt(c.getAttribute('number', '1'), 10) - 1;
21927
21927
  staff = this.getOrCreateStaff(track, staffIndex);
21928
21928
  this.parseStaffDetails(c, staff);
21929
21929
  break;
@@ -21973,7 +21973,7 @@
21973
21973
  let simileMark = null;
21974
21974
  switch (c.getAttribute('type')) {
21975
21975
  case 'start':
21976
- switch (Number.parseInt(c.getAttribute('slashes', '1'))) {
21976
+ switch (Number.parseInt(c.getAttribute('slashes', '1'), 10)) {
21977
21977
  case 1:
21978
21978
  simileMark = SimileMark.Simple;
21979
21979
  break;
@@ -21988,7 +21988,7 @@
21988
21988
  }
21989
21989
  if (element.attributes.has('number')) {
21990
21990
  this._simileMarkPerStaff = this._simileMarkPerStaff ?? new Map();
21991
- const staff = Number.parseInt(element.attributes.get('number')) - 1;
21991
+ const staff = Number.parseInt(element.attributes.get('number'), 10) - 1;
21992
21992
  if (simileMark == null) {
21993
21993
  this._simileMarkPerStaff.delete(staff);
21994
21994
  }
@@ -22031,7 +22031,7 @@
22031
22031
  }
22032
22032
  }
22033
22033
  if (element.attributes.has('number')) {
22034
- const staff = this.getOrCreateStaff(track, Number.parseInt(element.attributes.get('number')) - 1);
22034
+ const staff = this.getOrCreateStaff(track, Number.parseInt(element.attributes.get('number'), 10) - 1);
22035
22035
  this.getStaffContext(staff).transpose = semitones;
22036
22036
  staff.displayTranspositionPitch = semitones;
22037
22037
  }
@@ -22047,14 +22047,14 @@
22047
22047
  switch (c.localName) {
22048
22048
  // case 'staff-type': Ignored
22049
22049
  case 'staff-lines':
22050
- staff.standardNotationLineCount = Number.parseInt(c.innerText);
22050
+ staff.standardNotationLineCount = Number.parseInt(c.innerText, 10);
22051
22051
  break;
22052
22052
  // case 'line-detail': Not supported
22053
22053
  case 'staff-tuning':
22054
22054
  this.parseStaffTuning(c, staff);
22055
22055
  break;
22056
22056
  case 'capo':
22057
- staff.capo = Number.parseInt(c.innerText);
22057
+ staff.capo = Number.parseInt(c.innerText, 10);
22058
22058
  break;
22059
22059
  // case 'staff-size': Not supported
22060
22060
  }
@@ -22066,7 +22066,7 @@
22066
22066
  staff.showStandardNotation = false;
22067
22067
  staff.stringTuning.tunings = new Array(staff.standardNotationLineCount).fill(0);
22068
22068
  }
22069
- const line = Number.parseInt(element.getAttribute('line'));
22069
+ const line = Number.parseInt(element.getAttribute('line'), 10);
22070
22070
  let tuningStep = 'C';
22071
22071
  let tuningOctave = '';
22072
22072
  let tuningAlter = 0;
@@ -22095,10 +22095,10 @@
22095
22095
  sign = c.innerText.toLowerCase();
22096
22096
  break;
22097
22097
  case 'line':
22098
- line = Number.parseInt(c.innerText);
22098
+ line = Number.parseInt(c.innerText, 10);
22099
22099
  break;
22100
22100
  case 'clef-octave-change':
22101
- switch (Number.parseInt(c.innerText)) {
22101
+ switch (Number.parseInt(c.innerText, 10)) {
22102
22102
  case -2:
22103
22103
  bar.clefOttava = Ottavia._15mb;
22104
22104
  break;
@@ -22152,12 +22152,12 @@
22152
22152
  case 'beats':
22153
22153
  if (!beatsParsed) {
22154
22154
  if (v.indexOf('+') === -1) {
22155
- masterBar.timeSignatureNumerator = Number.parseInt(v);
22155
+ masterBar.timeSignatureNumerator = Number.parseInt(v, 10);
22156
22156
  }
22157
22157
  else {
22158
22158
  masterBar.timeSignatureNumerator = v
22159
22159
  .split('+')
22160
- .map(v => Number.parseInt(v))
22160
+ .map(v => Number.parseInt(v, 10))
22161
22161
  .reduce((sum, v) => v + sum, 0);
22162
22162
  }
22163
22163
  beatsParsed = true;
@@ -22166,12 +22166,12 @@
22166
22166
  case 'beat-type':
22167
22167
  if (!beatTypeParsed) {
22168
22168
  if (v.indexOf('+') === -1) {
22169
- masterBar.timeSignatureDenominator = Number.parseInt(v);
22169
+ masterBar.timeSignatureDenominator = Number.parseInt(v, 10);
22170
22170
  }
22171
22171
  else {
22172
22172
  masterBar.timeSignatureDenominator = v
22173
22173
  .split('+')
22174
- .map(v => Number.parseInt(v))
22174
+ .map(v => Number.parseInt(v, 10))
22175
22175
  .reduce((sum, v) => v + sum, 0);
22176
22176
  }
22177
22177
  beatTypeParsed = true;
@@ -22199,7 +22199,7 @@
22199
22199
  switch (c.localName) {
22200
22200
  // case 'cancel': not supported
22201
22201
  case 'fifths':
22202
- fifths = Number.parseInt(c.innerText);
22202
+ fifths = Number.parseInt(c.innerText, 10);
22203
22203
  break;
22204
22204
  case 'mode':
22205
22205
  mode = c.innerText;
@@ -22225,7 +22225,7 @@
22225
22225
  keySignatureType = KeySignatureType.Major;
22226
22226
  }
22227
22227
  if (element.attributes.has('number')) {
22228
- const staff = this.getOrCreateStaff(track, Number.parseInt(element.attributes.get('number')) - 1);
22228
+ const staff = this.getOrCreateStaff(track, Number.parseInt(element.attributes.get('number'), 10) - 1);
22229
22229
  const bar = this.getOrCreateBar(staff, masterBar);
22230
22230
  bar.keySignature = keySignature;
22231
22231
  bar.keySignatureType = keySignatureType;
@@ -22266,7 +22266,7 @@
22266
22266
  // voiceIndex = parseInt(c.innerText) - 1;
22267
22267
  break;
22268
22268
  case 'staff':
22269
- staffIndex = Number.parseInt(c.innerText) - 1;
22269
+ staffIndex = Number.parseInt(c.innerText, 10) - 1;
22270
22270
  break;
22271
22271
  case 'sound':
22272
22272
  if (c.attributes.has('tempo')) {
@@ -22396,7 +22396,7 @@
22396
22396
  }
22397
22397
  parseOctaveShift(element) {
22398
22398
  const type = element.getAttribute('type');
22399
- const size = Number.parseInt(element.getAttribute('size', '8'));
22399
+ const size = Number.parseInt(element.getAttribute('size', '8'), 10);
22400
22400
  switch (size) {
22401
22401
  case 15:
22402
22402
  switch (type) {
@@ -22821,7 +22821,7 @@
22821
22821
  // case 'footnote': Ignored
22822
22822
  // case 'level': Ignored
22823
22823
  case 'voice':
22824
- voiceIndex = Number.parseInt(c.innerText);
22824
+ voiceIndex = Number.parseInt(c.innerText, 10);
22825
22825
  if (Number.isNaN(voiceIndex)) {
22826
22826
  Logger.warning('MusicXML', 'Voices need to be specified as numbers');
22827
22827
  voiceIndex = 0;
@@ -22848,10 +22848,10 @@
22848
22848
  for (const tmc of c.childElements()) {
22849
22849
  switch (tmc.localName) {
22850
22850
  case 'actual-notes':
22851
- tupletNumerator = Number.parseInt(tmc.innerText);
22851
+ tupletNumerator = Number.parseInt(tmc.innerText, 10);
22852
22852
  break;
22853
22853
  case 'normal-notes':
22854
- tupletDenominator = Number.parseInt(tmc.innerText);
22854
+ tupletDenominator = Number.parseInt(tmc.innerText, 10);
22855
22855
  break;
22856
22856
  // case 'normal-type': not supported
22857
22857
  // case 'normal-dot': not supported
@@ -22871,7 +22871,7 @@
22871
22871
  break;
22872
22872
  // case 'notehead-text': Not supported
22873
22873
  case 'staff':
22874
- staffIndex = Number.parseInt(c.innerText) - 1;
22874
+ staffIndex = Number.parseInt(c.innerText, 10) - 1;
22875
22875
  break;
22876
22876
  case 'beam':
22877
22877
  // use the first beam as indicator whether to beam or split
@@ -23361,12 +23361,12 @@
23361
23361
  // case 'snap-pizzicato': Not supported
23362
23362
  case 'fret':
23363
23363
  if (note) {
23364
- note.fret = Number.parseInt(c.innerText);
23364
+ note.fret = Number.parseInt(c.innerText, 10);
23365
23365
  }
23366
23366
  break;
23367
23367
  case 'string':
23368
23368
  if (note) {
23369
- note.string = beat.voice.bar.staff.tuning.length - Number.parseInt(c.innerText) + 1;
23369
+ note.string = beat.voice.bar.staff.tuning.length - Number.parseInt(c.innerText, 10) + 1;
23370
23370
  }
23371
23371
  break;
23372
23372
  case 'hammer-on':
@@ -23484,7 +23484,7 @@
23484
23484
  for (const c of element.childElements()) {
23485
23485
  switch (c.localName) {
23486
23486
  case 'trill-mark':
23487
- currentTrillStep = Number.parseInt(c.getAttribute('trill-step', '2'));
23487
+ currentTrillStep = Number.parseInt(c.getAttribute('trill-step', '2'), 10);
23488
23488
  if (note.isStringed) {
23489
23489
  note.trillValue = note.stringTuning + currentTrillStep;
23490
23490
  }
@@ -23699,7 +23699,7 @@
23699
23699
  break;
23700
23700
  case 'display-octave':
23701
23701
  // 0-9, 4 for middle C
23702
- octave = Number.parseInt(c.innerText) + 1;
23702
+ octave = Number.parseInt(c.innerText, 10) + 1;
23703
23703
  break;
23704
23704
  }
23705
23705
  }
@@ -23733,7 +23733,7 @@
23733
23733
  break;
23734
23734
  case 'octave':
23735
23735
  // 0-9, 4 for middle C
23736
- octave = Number.parseInt(c.innerText) + 1;
23736
+ octave = Number.parseInt(c.innerText, 10) + 1;
23737
23737
  break;
23738
23738
  }
23739
23739
  }
@@ -31606,7 +31606,7 @@
31606
31606
  static parseEnum(s, enumType) {
31607
31607
  switch (typeof s) {
31608
31608
  case 'string':
31609
- const num = Number.parseInt(s);
31609
+ const num = Number.parseInt(s, 10);
31610
31610
  return Number.isNaN(num)
31611
31611
  ? enumType[Object.keys(enumType).find(k => k.toLowerCase() === s.toLowerCase())]
31612
31612
  : num;
@@ -49479,7 +49479,7 @@
49479
49479
  value = item.index;
49480
49480
  }
49481
49481
  else {
49482
- value = Number.parseInt(item.toString());
49482
+ value = Number.parseInt(item.toString(), 10);
49483
49483
  }
49484
49484
  if (value >= 0 || value === -1) {
49485
49485
  tracks.push(value);
@@ -65677,7 +65677,6 @@
65677
65677
  // <script type="module">
65678
65678
  // import * as alphaTab from 'dist/alphaTab.js';
65679
65679
  try {
65680
- // @ts-ignore
65681
65680
  const importUrl = {};
65682
65681
  // avoid using file:// urls in case of
65683
65682
  // bundlers like webpack
@@ -66046,7 +66045,7 @@
66046
66045
  */
66047
66046
  static detectWebPack() {
66048
66047
  try {
66049
- // @ts-ignore
66048
+ // @ts-expect-error
66050
66049
  if (typeof __webpack_require__ === 'function') {
66051
66050
  return true;
66052
66051
  }
@@ -66060,7 +66059,7 @@
66060
66059
  */
66061
66060
  static detectVite() {
66062
66061
  try {
66063
- // @ts-ignore
66062
+ // @ts-expect-error
66064
66063
  if (typeof __BASE__ === 'string') {
66065
66064
  return true;
66066
66065
  }
@@ -66096,7 +66095,6 @@
66096
66095
  }
66097
66096
  }
66098
66097
  try {
66099
- // @ts-ignore
66100
66098
  const url = {};
66101
66099
  if (url && typeof url === 'string' && !url.startsWith('file://')) {
66102
66100
  return exports.WebPlatform.BrowserModule;