@coderline/alphatab 1.6.0-alpha.1435 → 1.6.0-alpha.1444
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.core.min.mjs +2 -2
- package/dist/alphaTab.core.mjs +40 -31
- package/dist/alphaTab.d.ts +3 -2
- package/dist/alphaTab.js +40 -31
- package/dist/alphaTab.min.js +2 -2
- package/dist/alphaTab.min.mjs +1 -1
- package/dist/alphaTab.mjs +1 -1
- package/dist/alphaTab.vite.js +1 -1
- package/dist/alphaTab.vite.mjs +1 -1
- package/dist/alphaTab.webpack.js +1 -1
- package/dist/alphaTab.webpack.mjs +1 -1
- package/dist/alphaTab.worker.min.mjs +1 -1
- package/dist/alphaTab.worker.mjs +1 -1
- package/dist/alphaTab.worklet.min.mjs +1 -1
- package/dist/alphaTab.worklet.mjs +1 -1
- package/package.json +1 -1
package/dist/alphaTab.core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* alphaTab v1.6.0-alpha.
|
|
2
|
+
* alphaTab v1.6.0-alpha.1444 (develop, build 1444)
|
|
3
3
|
*
|
|
4
4
|
* Copyright © 2025, Daniel Kuschny and Contributors, All rights reserved.
|
|
5
5
|
*
|
|
@@ -13662,7 +13662,7 @@ class BinaryStylesheet {
|
|
|
13662
13662
|
}
|
|
13663
13663
|
switch (score.stylesheet.multiTrackTrackNamePolicy) {
|
|
13664
13664
|
case TrackNamePolicy.Hidden:
|
|
13665
|
-
binaryStylesheet.addValue('System/
|
|
13665
|
+
binaryStylesheet.addValue('System/showTrackNameMulti', false, DataType.Boolean);
|
|
13666
13666
|
break;
|
|
13667
13667
|
case TrackNamePolicy.FirstSystem:
|
|
13668
13668
|
binaryStylesheet.addValue('System/trackNameModeMulti', 0, DataType.Integer);
|
|
@@ -30215,7 +30215,7 @@ class PlayerSettings {
|
|
|
30215
30215
|
/**
|
|
30216
30216
|
* Whether playback cursors should be displayed.
|
|
30217
30217
|
* @since 0.9.6
|
|
30218
|
-
* @defaultValue `true`
|
|
30218
|
+
* @defaultValue `true` (if player is not disabled)
|
|
30219
30219
|
* @category Player
|
|
30220
30220
|
* @remarks
|
|
30221
30221
|
* This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
|
|
@@ -40913,9 +40913,7 @@ class AlphaTabApiBase {
|
|
|
40913
40913
|
}
|
|
40914
40914
|
set playbackRange(value) {
|
|
40915
40915
|
this._player.playbackRange = value;
|
|
40916
|
-
|
|
40917
|
-
this.updateSelectionCursor(value);
|
|
40918
|
-
}
|
|
40916
|
+
this.updateSelectionCursor(value);
|
|
40919
40917
|
}
|
|
40920
40918
|
/**
|
|
40921
40919
|
* The current playback speed as percentage
|
|
@@ -41453,7 +41451,8 @@ class AlphaTabApiBase {
|
|
|
41453
41451
|
this._selectionWrapper = null;
|
|
41454
41452
|
}
|
|
41455
41453
|
updateCursors() {
|
|
41456
|
-
|
|
41454
|
+
const enable = this.hasCursor;
|
|
41455
|
+
if (enable && !this._cursorWrapper) {
|
|
41457
41456
|
//
|
|
41458
41457
|
// Create cursors
|
|
41459
41458
|
const cursors = this.uiFacade.createCursors();
|
|
@@ -41469,7 +41468,7 @@ class AlphaTabApiBase {
|
|
|
41469
41468
|
this.cursorUpdateBeat(this._currentBeat, false, this._previousTick > 10, 1, true);
|
|
41470
41469
|
}
|
|
41471
41470
|
}
|
|
41472
|
-
else if (!
|
|
41471
|
+
else if (!enable && this._cursorWrapper) {
|
|
41473
41472
|
this.destroyCursors();
|
|
41474
41473
|
}
|
|
41475
41474
|
}
|
|
@@ -41697,12 +41696,14 @@ class AlphaTabApiBase {
|
|
|
41697
41696
|
this.activeBeatsChanged.trigger(e);
|
|
41698
41697
|
this.uiFacade.triggerEvent(this.container, 'activeBeatsChanged', e);
|
|
41699
41698
|
}
|
|
41699
|
+
get hasCursor() {
|
|
41700
|
+
return this.settings.player.playerMode !== PlayerMode.Disabled && this.settings.player.enableCursor;
|
|
41701
|
+
}
|
|
41700
41702
|
onBeatMouseDown(originalEvent, beat) {
|
|
41701
41703
|
if (this._isDestroyed) {
|
|
41702
41704
|
return;
|
|
41703
41705
|
}
|
|
41704
|
-
if (this.
|
|
41705
|
-
this.settings.player.enableCursor &&
|
|
41706
|
+
if (this.hasCursor &&
|
|
41706
41707
|
this.settings.player.enableUserInteraction) {
|
|
41707
41708
|
this._selectionStart = new SelectionInfo(beat);
|
|
41708
41709
|
this._selectionEnd = null;
|
|
@@ -41743,8 +41744,7 @@ class AlphaTabApiBase {
|
|
|
41743
41744
|
if (this._isDestroyed) {
|
|
41744
41745
|
return;
|
|
41745
41746
|
}
|
|
41746
|
-
if (this.
|
|
41747
|
-
this.settings.player.enableCursor &&
|
|
41747
|
+
if (this.hasCursor &&
|
|
41748
41748
|
this.settings.player.enableUserInteraction) {
|
|
41749
41749
|
if (this._selectionEnd) {
|
|
41750
41750
|
const startTick = this._tickCache?.getBeatStart(this._selectionStart.beat) ??
|
|
@@ -41876,8 +41876,7 @@ class AlphaTabApiBase {
|
|
|
41876
41876
|
});
|
|
41877
41877
|
this._renderer.postRenderFinished.on(() => {
|
|
41878
41878
|
if (!this._selectionStart ||
|
|
41879
|
-
this.
|
|
41880
|
-
!this.settings.player.enableCursor ||
|
|
41879
|
+
!this.hasCursor ||
|
|
41881
41880
|
!this.settings.player.enableUserInteraction) {
|
|
41882
41881
|
return;
|
|
41883
41882
|
}
|
|
@@ -61276,9 +61275,9 @@ class VersionInfo {
|
|
|
61276
61275
|
print(`build date: ${VersionInfo.date}`);
|
|
61277
61276
|
}
|
|
61278
61277
|
}
|
|
61279
|
-
VersionInfo.version = '1.6.0-alpha.
|
|
61280
|
-
VersionInfo.date = '2025-06-
|
|
61281
|
-
VersionInfo.commit = '
|
|
61278
|
+
VersionInfo.version = '1.6.0-alpha.1444';
|
|
61279
|
+
VersionInfo.date = '2025-06-11T15:11:50.582Z';
|
|
61280
|
+
VersionInfo.commit = '17557bdb7620020690fced1bc051d8a683a02c2b';
|
|
61282
61281
|
|
|
61283
61282
|
/**
|
|
61284
61283
|
* A factory for custom layout engines.
|
|
@@ -61770,17 +61769,27 @@ class Environment {
|
|
|
61770
61769
|
* @target web
|
|
61771
61770
|
*/
|
|
61772
61771
|
static detectWebPlatform() {
|
|
61773
|
-
|
|
61774
|
-
|
|
61775
|
-
|
|
61776
|
-
|
|
61777
|
-
|
|
61778
|
-
|
|
61779
|
-
|
|
61780
|
-
|
|
61772
|
+
// There might be polyfills or platforms like Electron which have a global process object defined even in the browser.
|
|
61773
|
+
// We need to differenciate between those platforms and a real nodejs
|
|
61774
|
+
// the webPlatform is currently only relevant on the main process side and not within workers/worklets
|
|
61775
|
+
// so it is OK if we wrongly detect node.js inside them.
|
|
61776
|
+
const isBrowserLike =
|
|
61777
|
+
// browser UI thread
|
|
61778
|
+
typeof Environment.globalThis.Window !== 'undefined' &&
|
|
61779
|
+
Environment.globalThis instanceof Environment.globalThis.Window;
|
|
61780
|
+
if (!isBrowserLike) {
|
|
61781
|
+
try {
|
|
61782
|
+
// Credit of the node.js detection goes to
|
|
61783
|
+
// https://github.com/iliakan/detect-node
|
|
61784
|
+
// MIT License
|
|
61785
|
+
// Copyright (c) 2017 Ilya Kantor
|
|
61786
|
+
// tslint:disable-next-line: strict-type-predicates
|
|
61787
|
+
if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {
|
|
61788
|
+
return WebPlatform.NodeJs;
|
|
61789
|
+
}
|
|
61790
|
+
}
|
|
61791
|
+
catch (e) {
|
|
61781
61792
|
}
|
|
61782
|
-
}
|
|
61783
|
-
catch (e) {
|
|
61784
61793
|
}
|
|
61785
61794
|
try {
|
|
61786
61795
|
// @ts-ignore
|
|
@@ -61843,7 +61852,7 @@ class Environment {
|
|
|
61843
61852
|
}
|
|
61844
61853
|
// Solidjs unwrap: the symbol required to access the raw object is unfortunately hidden and we cannot unwrap it without importing
|
|
61845
61854
|
// import { unwrap } from "solid-js/store"
|
|
61846
|
-
// alternative for users is to replace this method during runtime.
|
|
61855
|
+
// alternative for users is to replace this method during runtime.
|
|
61847
61856
|
return object;
|
|
61848
61857
|
}
|
|
61849
61858
|
}
|
|
@@ -62979,9 +62988,9 @@ class GpifWriter {
|
|
|
62979
62988
|
value.addElement('BarOccurrence').innerText = syncPoint.syncPointValue.barOccurence.toString();
|
|
62980
62989
|
value.addElement('ModifiedTempo').innerText = modifiedTempoLookup.value.get(syncPoint).syncBpm.toString();
|
|
62981
62990
|
value.addElement('OriginalTempo').innerText = score.tempo.toString();
|
|
62982
|
-
|
|
62983
|
-
GpifWriter.SampleRate)
|
|
62984
|
-
|
|
62991
|
+
let frameOffset = (((syncPoint.syncPointValue.millisecondOffset - millisecondPadding) / 1000) *
|
|
62992
|
+
GpifWriter.SampleRate);
|
|
62993
|
+
frameOffset = Math.floor(frameOffset + 0.5);
|
|
62985
62994
|
value.addElement('FrameOffset').innerText = frameOffset.toString();
|
|
62986
62995
|
}
|
|
62987
62996
|
}
|
package/dist/alphaTab.d.ts
CHANGED
|
@@ -2074,6 +2074,7 @@ export declare class AlphaTabApiBase<TSettings> {
|
|
|
2074
2074
|
*
|
|
2075
2075
|
*/
|
|
2076
2076
|
noteMouseUp: IEventEmitterOfT<Note | null>;
|
|
2077
|
+
private get hasCursor();
|
|
2077
2078
|
private onBeatMouseDown;
|
|
2078
2079
|
private onNoteMouseDown;
|
|
2079
2080
|
private onBeatMouseMove;
|
|
@@ -11729,7 +11730,7 @@ export declare class PlayerSettings {
|
|
|
11729
11730
|
/**
|
|
11730
11731
|
* Whether playback cursors should be displayed.
|
|
11731
11732
|
* @since 0.9.6
|
|
11732
|
-
* @defaultValue `true`
|
|
11733
|
+
* @defaultValue `true` (if player is not disabled)
|
|
11733
11734
|
* @category Player
|
|
11734
11735
|
* @remarks
|
|
11735
11736
|
* This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
|
|
@@ -12000,7 +12001,7 @@ declare interface PlayerSettingsJson {
|
|
|
12000
12001
|
/**
|
|
12001
12002
|
* Whether playback cursors should be displayed.
|
|
12002
12003
|
* @since 0.9.6
|
|
12003
|
-
* @defaultValue `true`
|
|
12004
|
+
* @defaultValue `true` (if player is not disabled)
|
|
12004
12005
|
* @category Player
|
|
12005
12006
|
* @remarks
|
|
12006
12007
|
* This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
|
package/dist/alphaTab.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* alphaTab v1.6.0-alpha.
|
|
2
|
+
* alphaTab v1.6.0-alpha.1444 (develop, build 1444)
|
|
3
3
|
*
|
|
4
4
|
* Copyright © 2025, Daniel Kuschny and Contributors, All rights reserved.
|
|
5
5
|
*
|
|
@@ -13668,7 +13668,7 @@
|
|
|
13668
13668
|
}
|
|
13669
13669
|
switch (score.stylesheet.multiTrackTrackNamePolicy) {
|
|
13670
13670
|
case TrackNamePolicy.Hidden:
|
|
13671
|
-
binaryStylesheet.addValue('System/
|
|
13671
|
+
binaryStylesheet.addValue('System/showTrackNameMulti', false, DataType.Boolean);
|
|
13672
13672
|
break;
|
|
13673
13673
|
case TrackNamePolicy.FirstSystem:
|
|
13674
13674
|
binaryStylesheet.addValue('System/trackNameModeMulti', 0, DataType.Integer);
|
|
@@ -30221,7 +30221,7 @@
|
|
|
30221
30221
|
/**
|
|
30222
30222
|
* Whether playback cursors should be displayed.
|
|
30223
30223
|
* @since 0.9.6
|
|
30224
|
-
* @defaultValue `true`
|
|
30224
|
+
* @defaultValue `true` (if player is not disabled)
|
|
30225
30225
|
* @category Player
|
|
30226
30226
|
* @remarks
|
|
30227
30227
|
* This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
|
|
@@ -40919,9 +40919,7 @@
|
|
|
40919
40919
|
}
|
|
40920
40920
|
set playbackRange(value) {
|
|
40921
40921
|
this._player.playbackRange = value;
|
|
40922
|
-
|
|
40923
|
-
this.updateSelectionCursor(value);
|
|
40924
|
-
}
|
|
40922
|
+
this.updateSelectionCursor(value);
|
|
40925
40923
|
}
|
|
40926
40924
|
/**
|
|
40927
40925
|
* The current playback speed as percentage
|
|
@@ -41459,7 +41457,8 @@
|
|
|
41459
41457
|
this._selectionWrapper = null;
|
|
41460
41458
|
}
|
|
41461
41459
|
updateCursors() {
|
|
41462
|
-
|
|
41460
|
+
const enable = this.hasCursor;
|
|
41461
|
+
if (enable && !this._cursorWrapper) {
|
|
41463
41462
|
//
|
|
41464
41463
|
// Create cursors
|
|
41465
41464
|
const cursors = this.uiFacade.createCursors();
|
|
@@ -41475,7 +41474,7 @@
|
|
|
41475
41474
|
this.cursorUpdateBeat(this._currentBeat, false, this._previousTick > 10, 1, true);
|
|
41476
41475
|
}
|
|
41477
41476
|
}
|
|
41478
|
-
else if (!
|
|
41477
|
+
else if (!enable && this._cursorWrapper) {
|
|
41479
41478
|
this.destroyCursors();
|
|
41480
41479
|
}
|
|
41481
41480
|
}
|
|
@@ -41703,12 +41702,14 @@
|
|
|
41703
41702
|
this.activeBeatsChanged.trigger(e);
|
|
41704
41703
|
this.uiFacade.triggerEvent(this.container, 'activeBeatsChanged', e);
|
|
41705
41704
|
}
|
|
41705
|
+
get hasCursor() {
|
|
41706
|
+
return this.settings.player.playerMode !== exports.PlayerMode.Disabled && this.settings.player.enableCursor;
|
|
41707
|
+
}
|
|
41706
41708
|
onBeatMouseDown(originalEvent, beat) {
|
|
41707
41709
|
if (this._isDestroyed) {
|
|
41708
41710
|
return;
|
|
41709
41711
|
}
|
|
41710
|
-
if (this.
|
|
41711
|
-
this.settings.player.enableCursor &&
|
|
41712
|
+
if (this.hasCursor &&
|
|
41712
41713
|
this.settings.player.enableUserInteraction) {
|
|
41713
41714
|
this._selectionStart = new SelectionInfo(beat);
|
|
41714
41715
|
this._selectionEnd = null;
|
|
@@ -41749,8 +41750,7 @@
|
|
|
41749
41750
|
if (this._isDestroyed) {
|
|
41750
41751
|
return;
|
|
41751
41752
|
}
|
|
41752
|
-
if (this.
|
|
41753
|
-
this.settings.player.enableCursor &&
|
|
41753
|
+
if (this.hasCursor &&
|
|
41754
41754
|
this.settings.player.enableUserInteraction) {
|
|
41755
41755
|
if (this._selectionEnd) {
|
|
41756
41756
|
const startTick = this._tickCache?.getBeatStart(this._selectionStart.beat) ??
|
|
@@ -41882,8 +41882,7 @@
|
|
|
41882
41882
|
});
|
|
41883
41883
|
this._renderer.postRenderFinished.on(() => {
|
|
41884
41884
|
if (!this._selectionStart ||
|
|
41885
|
-
this.
|
|
41886
|
-
!this.settings.player.enableCursor ||
|
|
41885
|
+
!this.hasCursor ||
|
|
41887
41886
|
!this.settings.player.enableUserInteraction) {
|
|
41888
41887
|
return;
|
|
41889
41888
|
}
|
|
@@ -61282,9 +61281,9 @@
|
|
|
61282
61281
|
print(`build date: ${VersionInfo.date}`);
|
|
61283
61282
|
}
|
|
61284
61283
|
}
|
|
61285
|
-
VersionInfo.version = '1.6.0-alpha.
|
|
61286
|
-
VersionInfo.date = '2025-06-
|
|
61287
|
-
VersionInfo.commit = '
|
|
61284
|
+
VersionInfo.version = '1.6.0-alpha.1444';
|
|
61285
|
+
VersionInfo.date = '2025-06-11T15:11:50.582Z';
|
|
61286
|
+
VersionInfo.commit = '17557bdb7620020690fced1bc051d8a683a02c2b';
|
|
61288
61287
|
|
|
61289
61288
|
/**
|
|
61290
61289
|
* A factory for custom layout engines.
|
|
@@ -61776,17 +61775,27 @@
|
|
|
61776
61775
|
* @target web
|
|
61777
61776
|
*/
|
|
61778
61777
|
static detectWebPlatform() {
|
|
61779
|
-
|
|
61780
|
-
|
|
61781
|
-
|
|
61782
|
-
|
|
61783
|
-
|
|
61784
|
-
|
|
61785
|
-
|
|
61786
|
-
|
|
61778
|
+
// There might be polyfills or platforms like Electron which have a global process object defined even in the browser.
|
|
61779
|
+
// We need to differenciate between those platforms and a real nodejs
|
|
61780
|
+
// the webPlatform is currently only relevant on the main process side and not within workers/worklets
|
|
61781
|
+
// so it is OK if we wrongly detect node.js inside them.
|
|
61782
|
+
const isBrowserLike =
|
|
61783
|
+
// browser UI thread
|
|
61784
|
+
typeof Environment.globalThis.Window !== 'undefined' &&
|
|
61785
|
+
Environment.globalThis instanceof Environment.globalThis.Window;
|
|
61786
|
+
if (!isBrowserLike) {
|
|
61787
|
+
try {
|
|
61788
|
+
// Credit of the node.js detection goes to
|
|
61789
|
+
// https://github.com/iliakan/detect-node
|
|
61790
|
+
// MIT License
|
|
61791
|
+
// Copyright (c) 2017 Ilya Kantor
|
|
61792
|
+
// tslint:disable-next-line: strict-type-predicates
|
|
61793
|
+
if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {
|
|
61794
|
+
return exports.WebPlatform.NodeJs;
|
|
61795
|
+
}
|
|
61796
|
+
}
|
|
61797
|
+
catch (e) {
|
|
61787
61798
|
}
|
|
61788
|
-
}
|
|
61789
|
-
catch (e) {
|
|
61790
61799
|
}
|
|
61791
61800
|
try {
|
|
61792
61801
|
// @ts-ignore
|
|
@@ -61849,7 +61858,7 @@
|
|
|
61849
61858
|
}
|
|
61850
61859
|
// Solidjs unwrap: the symbol required to access the raw object is unfortunately hidden and we cannot unwrap it without importing
|
|
61851
61860
|
// import { unwrap } from "solid-js/store"
|
|
61852
|
-
// alternative for users is to replace this method during runtime.
|
|
61861
|
+
// alternative for users is to replace this method during runtime.
|
|
61853
61862
|
return object;
|
|
61854
61863
|
}
|
|
61855
61864
|
}
|
|
@@ -62985,9 +62994,9 @@
|
|
|
62985
62994
|
value.addElement('BarOccurrence').innerText = syncPoint.syncPointValue.barOccurence.toString();
|
|
62986
62995
|
value.addElement('ModifiedTempo').innerText = modifiedTempoLookup.value.get(syncPoint).syncBpm.toString();
|
|
62987
62996
|
value.addElement('OriginalTempo').innerText = score.tempo.toString();
|
|
62988
|
-
|
|
62989
|
-
GpifWriter.SampleRate)
|
|
62990
|
-
|
|
62997
|
+
let frameOffset = (((syncPoint.syncPointValue.millisecondOffset - millisecondPadding) / 1000) *
|
|
62998
|
+
GpifWriter.SampleRate);
|
|
62999
|
+
frameOffset = Math.floor(frameOffset + 0.5);
|
|
62991
63000
|
value.addElement('FrameOffset').innerText = frameOffset.toString();
|
|
62992
63001
|
}
|
|
62993
63002
|
}
|