@coderline/alphatab 1.9.0-alpha.1803 → 1.9.0-alpha.1804

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * alphaTab v1.9.0-alpha.1803 (develop, build 1803)
2
+ * alphaTab v1.9.0-alpha.1804 (develop, build 1804)
3
3
  *
4
4
  * Copyright © 2026, Daniel Kuschny and Contributors, All rights reserved.
5
5
  *
@@ -203,9 +203,9 @@ class AlphaTabError extends Error {
203
203
  * @internal
204
204
  */
205
205
  class VersionInfo {
206
- static version = '1.9.0-alpha.1803';
207
- static date = '2026-05-15T04:13:04.606Z';
208
- static commit = 'a87a8635a0a0306cdab1c7fe2e9e72576ed6f795';
206
+ static version = '1.9.0-alpha.1804';
207
+ static date = '2026-05-16T03:54:50.685Z';
208
+ static commit = '6e757c0cbec66598a7fa5327abc9d05616984486';
209
209
  static print(print) {
210
210
  print(`alphaTab ${VersionInfo.version}`);
211
211
  print(`commit: ${VersionInfo.commit}`);
@@ -10315,7 +10315,7 @@ class IOHelper {
10315
10315
  encoding = 'utf-8';
10316
10316
  }
10317
10317
  const decoder = new TextDecoder(encoding);
10318
- return decoder.decode(data.buffer);
10318
+ return decoder.decode(data);
10319
10319
  }
10320
10320
  static _detectEncoding(data) {
10321
10321
  if (data.length > 2 && data[0] === 0xfe && data[1] === 0xff) {
@@ -19745,7 +19745,7 @@ class Gp3To5Importer extends ScoreImporter {
19745
19745
  static _versionString = 'FICHIER GUITAR PRO ';
19746
19746
  // NOTE: General Midi only defines percussion instruments from 35-81
19747
19747
  // Guitar Pro 5 allowed GS extensions (27-34 and 82-87)
19748
- // GP7-8 do not have all these definitions anymore, this lookup ensures some fallback
19748
+ // GP7-8 do not have all these definitions anymore, this lookup ensures some fallback
19749
19749
  // (even if they are not correct)
19750
19750
  // we can support this properly in future when we allow custom alphaTex articulation definitions
19751
19751
  // then we don't need to rely on GP specifics anymore but handle things on export/import
@@ -21136,12 +21136,13 @@ class GpBinaryHelpers {
21136
21136
  * @returns
21137
21137
  */
21138
21138
  static gpReadStringByteLength(data, length, encoding) {
21139
+ // Fixed-width string field: 1 length byte + `length` data bytes, decoded
21140
+ // up to min(stringLength, length). Always consumes 1 + length bytes.
21139
21141
  const stringLength = data.readByte();
21140
- const s = GpBinaryHelpers.gpReadString(data, stringLength, encoding);
21141
- if (stringLength < length) {
21142
- data.skip(length - stringLength);
21143
- }
21144
- return s;
21142
+ const fieldBytes = new Uint8Array(length);
21143
+ data.read(fieldBytes, 0, length);
21144
+ const effectiveLength = Math.min(stringLength, length);
21145
+ return IOHelper.toString(fieldBytes.subarray(0, effectiveLength), encoding);
21145
21146
  }
21146
21147
  }
21147
21148
  /**
@@ -24361,6 +24362,10 @@ class GpifParser {
24361
24362
  }
24362
24363
  // build masterbar automations
24363
24364
  for (const [barNumber, automations] of this._masterTrackAutomations) {
24365
+ if (barNumber < 0 || barNumber >= this.score.masterBars.length) {
24366
+ // automation references a bar that is not in the score's masterBars list
24367
+ continue;
24368
+ }
24364
24369
  const masterBar = this.score.masterBars[barNumber];
24365
24370
  for (let i = 0, j = automations.length; i < j; i++) {
24366
24371
  const automation = automations[i];
package/dist/alphaTab.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * alphaTab v1.9.0-alpha.1803 (develop, build 1803)
2
+ * alphaTab v1.9.0-alpha.1804 (develop, build 1804)
3
3
  *
4
4
  * Copyright © 2026, Daniel Kuschny and Contributors, All rights reserved.
5
5
  *
@@ -209,9 +209,9 @@
209
209
  * @internal
210
210
  */
211
211
  class VersionInfo {
212
- static version = '1.9.0-alpha.1803';
213
- static date = '2026-05-15T04:13:04.606Z';
214
- static commit = 'a87a8635a0a0306cdab1c7fe2e9e72576ed6f795';
212
+ static version = '1.9.0-alpha.1804';
213
+ static date = '2026-05-16T03:54:50.685Z';
214
+ static commit = '6e757c0cbec66598a7fa5327abc9d05616984486';
215
215
  static print(print) {
216
216
  print(`alphaTab ${VersionInfo.version}`);
217
217
  print(`commit: ${VersionInfo.commit}`);
@@ -10321,7 +10321,7 @@
10321
10321
  encoding = 'utf-8';
10322
10322
  }
10323
10323
  const decoder = new TextDecoder(encoding);
10324
- return decoder.decode(data.buffer);
10324
+ return decoder.decode(data);
10325
10325
  }
10326
10326
  static _detectEncoding(data) {
10327
10327
  if (data.length > 2 && data[0] === 0xfe && data[1] === 0xff) {
@@ -19751,7 +19751,7 @@
19751
19751
  static _versionString = 'FICHIER GUITAR PRO ';
19752
19752
  // NOTE: General Midi only defines percussion instruments from 35-81
19753
19753
  // Guitar Pro 5 allowed GS extensions (27-34 and 82-87)
19754
- // GP7-8 do not have all these definitions anymore, this lookup ensures some fallback
19754
+ // GP7-8 do not have all these definitions anymore, this lookup ensures some fallback
19755
19755
  // (even if they are not correct)
19756
19756
  // we can support this properly in future when we allow custom alphaTex articulation definitions
19757
19757
  // then we don't need to rely on GP specifics anymore but handle things on export/import
@@ -21142,12 +21142,13 @@
21142
21142
  * @returns
21143
21143
  */
21144
21144
  static gpReadStringByteLength(data, length, encoding) {
21145
+ // Fixed-width string field: 1 length byte + `length` data bytes, decoded
21146
+ // up to min(stringLength, length). Always consumes 1 + length bytes.
21145
21147
  const stringLength = data.readByte();
21146
- const s = GpBinaryHelpers.gpReadString(data, stringLength, encoding);
21147
- if (stringLength < length) {
21148
- data.skip(length - stringLength);
21149
- }
21150
- return s;
21148
+ const fieldBytes = new Uint8Array(length);
21149
+ data.read(fieldBytes, 0, length);
21150
+ const effectiveLength = Math.min(stringLength, length);
21151
+ return IOHelper.toString(fieldBytes.subarray(0, effectiveLength), encoding);
21151
21152
  }
21152
21153
  }
21153
21154
  /**
@@ -24367,6 +24368,10 @@
24367
24368
  }
24368
24369
  // build masterbar automations
24369
24370
  for (const [barNumber, automations] of this._masterTrackAutomations) {
24371
+ if (barNumber < 0 || barNumber >= this.score.masterBars.length) {
24372
+ // automation references a bar that is not in the score's masterBars list
24373
+ continue;
24374
+ }
24370
24375
  const masterBar = this.score.masterBars[barNumber];
24371
24376
  for (let i = 0, j = automations.length; i < j; i++) {
24372
24377
  const automation = automations[i];