@coderline/alphatab 1.9.0-alpha.1806 → 1.9.0-alpha.1848

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.
@@ -4503,10 +4503,31 @@ declare class Bar {
4503
4503
  */
4504
4504
  keySignatureType: KeySignatureType;
4505
4505
  /**
4506
- * How bar numbers should be displayed.
4507
- * If specified, overrides the value from the stylesheet on score level.
4506
+ * How bar numbers should be displayed on this specific bar.
4507
+ * @deprecated Use {@link scoreDisplay}, {@link tabDisplay},
4508
+ * {@link slashDisplay}, or {@link numberedDisplay} `.barNumber` for
4509
+ * per-staff-type per-bar control. The setter broadcasts the value
4510
+ * to all four override bags (lazy-creating each); on `undefined`
4511
+ * it clears `.barNumber` on each existing bag without removing it.
4508
4512
  */
4509
- barNumberDisplay?: BarNumberDisplay;
4513
+ get barNumberDisplay(): BarNumberDisplay | undefined;
4514
+ set barNumberDisplay(value: BarNumberDisplay | undefined);
4515
+ /**
4516
+ * Per-bar override for the standard-notation staff's display.
4517
+ */
4518
+ scoreDisplay?: ScoreBarOverride;
4519
+ /**
4520
+ * Per-bar override for the tablature staff's display.
4521
+ */
4522
+ tabDisplay?: TabBarOverride;
4523
+ /**
4524
+ * Per-bar override for the slash staff's display.
4525
+ */
4526
+ slashDisplay?: SlashBarOverride;
4527
+ /**
4528
+ * Per-bar override for the numbered (jianpu) staff's display.
4529
+ */
4530
+ numberedDisplay?: NumberedBarOverride;
4510
4531
  /**
4511
4532
  * The bar line to draw on the left side of the bar with an "automatic" type resolved to the actual one.
4512
4533
  * @param isFirstOfSystem Whether the bar is the first one in the system.
@@ -4909,6 +4930,7 @@ declare class Beat {
4909
4930
  /**
4910
4931
  * Gets a value indicating whether this beat is fade-in.
4911
4932
  * @deprecated Use `fade`
4933
+ * @json_read_only
4912
4934
  */
4913
4935
  get fadeIn(): boolean;
4914
4936
  /**
@@ -5044,6 +5066,7 @@ declare class Beat {
5044
5066
  /**
5045
5067
  * The speed of the tremolo.
5046
5068
  * @deprecated Set {@link tremoloPicking} instead.
5069
+ * @json_read_only
5047
5070
  */
5048
5071
  get tremoloSpeed(): Duration | null;
5049
5072
  /**
@@ -6415,6 +6438,34 @@ export declare class DisplaySettings {
6415
6438
  * | ![Default](https://alphatab.net/img/reference/property/stretchforce-default.png) | ![0.5](https://alphatab.net/img/reference/property/stretchforce-half.png) |
6416
6439
  */
6417
6440
  stretchForce: number;
6441
+ /**
6442
+ * The proportional spacing ratio between successive note durations.
6443
+ * @since 1.9.0
6444
+ * @category Display
6445
+ * @defaultValue `Math.SQRT2` (≈ 1.414, matches Dorico's default)
6446
+ * @remarks
6447
+ * Controls the *shape* of the horizontal spacing curve - how much wider a note of duration `2d` is rendered relative to a note of duration `d`.
6448
+ * AlphaTab uses a power-law spacing model (the same approach used by Dorico, MuseScore and Finale): doubling the note duration multiplies its
6449
+ * allocated horizontal space by `spacingRatio`.
6450
+ *
6451
+ * Reference values for cross-application comparison:
6452
+ *
6453
+ * | Application / Style | Ratio | Character |
6454
+ * |----------------------------|----------------------|------------------------------------|
6455
+ * | Dorico default | √2 ≈ 1.414 | Tight, efficient, orchestral |
6456
+ * | MuseScore default | 1.5 | Balanced, general-purpose |
6457
+ * | Finale default (Fibonacci) | φ ≈ 1.618 | Loose, traditional engraving |
6458
+ *
6459
+ * AlphaTab defaults to `√2` (Dorico's value). This produces tighter spacing at long
6460
+ * durations than the alternatives, which matters for guitar tablature where rest bars and
6461
+ * whole notes are common - looser ratios make those bars dominate system width.
6462
+ *
6463
+ * This setting is orthogonal to {@link stretchForce}: `spacingRatio` controls the *shape* of the spacing (proportions between durations),
6464
+ * `stretchForce` controls the overall *density* (how tightly or loosely the music is packed). Both can be adjusted independently.
6465
+ *
6466
+ * Values are clamped to the range `[1.2, 2.0]`. A value of `1.0` would produce equal spacing for all durations and is rejected.
6467
+ */
6468
+ spacingRatio: number;
6418
6469
  /**
6419
6470
  * The layouting mode used to arrange the the notation.
6420
6471
  * @remarks
@@ -6480,19 +6531,60 @@ export declare class DisplaySettings {
6480
6531
  * setting controls how many bars are placed within such a partial.
6481
6532
  */
6482
6533
  barCountPerPartial: number;
6534
+ /**
6535
+ * The minimum fullness ratio at which the last system in a flow is justified to fill the
6536
+ * available staff width.
6537
+ * @since 1.9.0
6538
+ * @category Display
6539
+ * @defaultValue `1`
6540
+ * @remarks
6541
+ * The "fullness" of a system is its natural unjustified width divided by the available
6542
+ * staff width. The last system is stretched to full width only when its fullness is
6543
+ * **greater than or equal to** this threshold; otherwise it renders at its natural width.
6544
+ *
6545
+ * Following industry convention (Dorico, MuseScore), a sparsely populated final system
6546
+ * looks better compact than spread across the full page. The threshold lets users tune
6547
+ * where that boundary sits.
6548
+ *
6549
+ * Common values:
6550
+ *
6551
+ * - `1` (default) — never justify the last system. Equivalent to the legacy
6552
+ * `justifyLastSystem = false` behaviour.
6553
+ * - `0` — always justify the last system, even when sparse. Equivalent to the legacy
6554
+ * `justifyLastSystem = true` behaviour.
6555
+ * - `0.4`–`0.7` — Dorico/MuseScore-style: justify when the last system is reasonably full,
6556
+ * leave compact when only a few bars trail.
6557
+ *
6558
+ * The threshold is bypassed when the last system is naturally wider than the available
6559
+ * staff width - in that case the system still compresses to fit, since otherwise content
6560
+ * would overflow horizontally.
6561
+ *
6562
+ * Values outside `[0, 1]` are clamped.
6563
+ */
6564
+ lastSystemFillThreshold: number;
6483
6565
  /**
6484
6566
  * Whether to justify also the last system in page layouts.
6567
+ *
6485
6568
  * @remarks
6486
- * Setting this option to `true` tells alphaTab to also justify the last system (row) like it
6487
- * already does for the systems which are full.
6569
+ * @deprecated Use {@link lastSystemFillThreshold} for fine-grained control over when the
6570
+ * last system is justified. This property is now a thin wrapper:
6571
+ *
6572
+ * - **Get** returns `true` when {@link lastSystemFillThreshold} is less than `1` (i.e. some
6573
+ * degree of last-system justification is enabled), `false` otherwise.
6574
+ * - **Set** to `true` writes `lastSystemFillThreshold = 0` (always justify regardless of
6575
+ * fullness). Set to `false` writes `lastSystemFillThreshold = 1` (never justify).
6576
+ *
6488
6577
  * | Justification Disabled | Justification Enabled |
6489
6578
  * |--------------------------------------------------------------|-------------------------------------------------------|
6490
6579
  * | ![Disabled](https://alphatab.net/img/reference/property/justify-last-system-false.png) | ![Enabled](https://alphatab.net/img/reference/property/justify-last-system-true.png) |
6580
+ *
6491
6581
  * @since 1.3.0
6492
6582
  * @category Display
6493
6583
  * @defaultValue `false`
6584
+ * @json_read_only
6494
6585
  */
6495
- justifyLastSystem: boolean;
6586
+ get justifyLastSystem(): boolean;
6587
+ set justifyLastSystem(value: boolean);
6496
6588
  /**
6497
6589
  * Allows adjusting of the used fonts and colors for rendering.
6498
6590
  * @json_partial_names
@@ -6655,10 +6747,14 @@ export declare class DisplaySettings {
6655
6747
  */
6656
6748
  staffPaddingLeft: number;
6657
6749
  /**
6658
- * The padding between individual effect bands.
6750
+ * Clearance applied around each effect band on its staff-facing side:
6751
+ * "bottom padding" for top bands (between the band and the staff or
6752
+ * the band stacked below it) and "top padding" for bottom bands
6753
+ * (mirrored). Also used as the inter-band gap when bands stack on
6754
+ * the same side.
6659
6755
  * @since 1.7.0
6660
6756
  * @category Display
6661
- * @defaultValue `2`
6757
+ * @defaultValue `5`
6662
6758
  */
6663
6759
  effectBandPaddingBottom: number;
6664
6760
  /**
@@ -6781,6 +6877,34 @@ declare interface DisplaySettingsJson {
6781
6877
  * | ![Default](https://alphatab.net/img/reference/property/stretchforce-default.png) | ![0.5](https://alphatab.net/img/reference/property/stretchforce-half.png) |
6782
6878
  */
6783
6879
  stretchForce?: number;
6880
+ /**
6881
+ * The proportional spacing ratio between successive note durations.
6882
+ * @since 1.9.0
6883
+ * @category Display
6884
+ * @defaultValue `Math.SQRT2` (≈ 1.414, matches Dorico's default)
6885
+ * @remarks
6886
+ * Controls the *shape* of the horizontal spacing curve - how much wider a note of duration `2d` is rendered relative to a note of duration `d`.
6887
+ * AlphaTab uses a power-law spacing model (the same approach used by Dorico, MuseScore and Finale): doubling the note duration multiplies its
6888
+ * allocated horizontal space by `spacingRatio`.
6889
+ *
6890
+ * Reference values for cross-application comparison:
6891
+ *
6892
+ * | Application / Style | Ratio | Character |
6893
+ * |----------------------------|----------------------|------------------------------------|
6894
+ * | Dorico default | √2 ≈ 1.414 | Tight, efficient, orchestral |
6895
+ * | MuseScore default | 1.5 | Balanced, general-purpose |
6896
+ * | Finale default (Fibonacci) | φ ≈ 1.618 | Loose, traditional engraving |
6897
+ *
6898
+ * AlphaTab defaults to `√2` (Dorico's value). This produces tighter spacing at long
6899
+ * durations than the alternatives, which matters for guitar tablature where rest bars and
6900
+ * whole notes are common - looser ratios make those bars dominate system width.
6901
+ *
6902
+ * This setting is orthogonal to {@link stretchForce}: `spacingRatio` controls the *shape* of the spacing (proportions between durations),
6903
+ * `stretchForce` controls the overall *density* (how tightly or loosely the music is packed). Both can be adjusted independently.
6904
+ *
6905
+ * Values are clamped to the range `[1.2, 2.0]`. A value of `1.0` would produce equal spacing for all durations and is rejected.
6906
+ */
6907
+ spacingRatio?: number;
6784
6908
  /**
6785
6909
  * The layouting mode used to arrange the the notation.
6786
6910
  * @remarks
@@ -6846,17 +6970,57 @@ declare interface DisplaySettingsJson {
6846
6970
  * setting controls how many bars are placed within such a partial.
6847
6971
  */
6848
6972
  barCountPerPartial?: number;
6973
+ /**
6974
+ * The minimum fullness ratio at which the last system in a flow is justified to fill the
6975
+ * available staff width.
6976
+ * @since 1.9.0
6977
+ * @category Display
6978
+ * @defaultValue `1`
6979
+ * @remarks
6980
+ * The "fullness" of a system is its natural unjustified width divided by the available
6981
+ * staff width. The last system is stretched to full width only when its fullness is
6982
+ * **greater than or equal to** this threshold; otherwise it renders at its natural width.
6983
+ *
6984
+ * Following industry convention (Dorico, MuseScore), a sparsely populated final system
6985
+ * looks better compact than spread across the full page. The threshold lets users tune
6986
+ * where that boundary sits.
6987
+ *
6988
+ * Common values:
6989
+ *
6990
+ * - `1` (default) — never justify the last system. Equivalent to the legacy
6991
+ * `justifyLastSystem = false` behaviour.
6992
+ * - `0` — always justify the last system, even when sparse. Equivalent to the legacy
6993
+ * `justifyLastSystem = true` behaviour.
6994
+ * - `0.4`–`0.7` — Dorico/MuseScore-style: justify when the last system is reasonably full,
6995
+ * leave compact when only a few bars trail.
6996
+ *
6997
+ * The threshold is bypassed when the last system is naturally wider than the available
6998
+ * staff width - in that case the system still compresses to fit, since otherwise content
6999
+ * would overflow horizontally.
7000
+ *
7001
+ * Values outside `[0, 1]` are clamped.
7002
+ */
7003
+ lastSystemFillThreshold?: number;
6849
7004
  /**
6850
7005
  * Whether to justify also the last system in page layouts.
7006
+ *
6851
7007
  * @remarks
6852
- * Setting this option to `true` tells alphaTab to also justify the last system (row) like it
6853
- * already does for the systems which are full.
7008
+ * @deprecated Use {@link lastSystemFillThreshold} for fine-grained control over when the
7009
+ * last system is justified. This property is now a thin wrapper:
7010
+ *
7011
+ * - **Get** returns `true` when {@link lastSystemFillThreshold} is less than `1` (i.e. some
7012
+ * degree of last-system justification is enabled), `false` otherwise.
7013
+ * - **Set** to `true` writes `lastSystemFillThreshold = 0` (always justify regardless of
7014
+ * fullness). Set to `false` writes `lastSystemFillThreshold = 1` (never justify).
7015
+ *
6854
7016
  * | Justification Disabled | Justification Enabled |
6855
7017
  * |--------------------------------------------------------------|-------------------------------------------------------|
6856
7018
  * | ![Disabled](https://alphatab.net/img/reference/property/justify-last-system-false.png) | ![Enabled](https://alphatab.net/img/reference/property/justify-last-system-true.png) |
7019
+ *
6857
7020
  * @since 1.3.0
6858
7021
  * @category Display
6859
7022
  * @defaultValue `false`
7023
+ * @json_read_only
6860
7024
  */
6861
7025
  justifyLastSystem?: boolean;
6862
7026
  /**
@@ -7021,10 +7185,14 @@ declare interface DisplaySettingsJson {
7021
7185
  */
7022
7186
  staffPaddingLeft?: number;
7023
7187
  /**
7024
- * The padding between individual effect bands.
7188
+ * Clearance applied around each effect band on its staff-facing side:
7189
+ * "bottom padding" for top bands (between the band and the staff or
7190
+ * the band stacked below it) and "top padding" for bottom bands
7191
+ * (mirrored). Also used as the inter-band gap when bands stack on
7192
+ * the same side.
7025
7193
  * @since 1.7.0
7026
7194
  * @category Display
7027
- * @defaultValue `2`
7195
+ * @defaultValue `5`
7028
7196
  */
7029
7197
  effectBandPaddingBottom?: number;
7030
7198
  /**
@@ -7259,6 +7427,34 @@ declare enum DynamicValue {
7259
7427
  SFZP = 25
7260
7428
  }
7261
7429
 
7430
+ /**
7431
+ * Per-axis visibility / placement / system-display selector for an
7432
+ * element on a staff type. Used as the value type for the clef,
7433
+ * key signature, time signature, and rests entries on the per-staff-type
7434
+ * configuration carriers.
7435
+ *
7436
+ * Each axis is independently optional. An `undefined` axis defers to
7437
+ * the outer layer in the three-layer resolution chain (per-bar →
7438
+ * per-staff → score-wide stylesheet).
7439
+ * @record
7440
+ * @json
7441
+ * @public
7442
+ */
7443
+ declare interface ElementDisplay {
7444
+ /**
7445
+ * Whether to paint the element at all.
7446
+ */
7447
+ isVisible?: boolean;
7448
+ /**
7449
+ * Spatial selector across the staves of a system.
7450
+ */
7451
+ staffPlacement?: StaffPlacement;
7452
+ /**
7453
+ * Temporal selector across the systems of the score.
7454
+ */
7455
+ systemDisplay?: SystemDisplay;
7456
+ }
7457
+
7262
7458
  /**
7263
7459
  * Defines the custom styles for an element in the music sheet (like bars, voices, notes etc).
7264
7460
  * @public
@@ -10743,6 +10939,7 @@ declare class MasterBar {
10743
10939
  /**
10744
10940
  * The key signature used on all bars.
10745
10941
  * @deprecated Use key signatures on bar level
10942
+ * @json_read_only
10746
10943
  */
10747
10944
  get keySignature(): KeySignature;
10748
10945
  /**
@@ -10753,6 +10950,7 @@ declare class MasterBar {
10753
10950
  /**
10754
10951
  * The type of key signature (major/minor)
10755
10952
  * @deprecated Use key signatures on bar level
10953
+ * @json_read_only
10756
10954
  */
10757
10955
  get keySignatureType(): KeySignatureType;
10758
10956
  /**
@@ -11735,7 +11933,18 @@ export declare namespace model {
11735
11933
  WahPedal,
11736
11934
  WhammyType,
11737
11935
  ElementStyle,
11738
- BackingTrack
11936
+ BackingTrack,
11937
+ StaffPlacement,
11938
+ SystemDisplay,
11939
+ ElementDisplay,
11940
+ ScoreStaffConfig,
11941
+ TabStaffConfig,
11942
+ SlashStaffConfig,
11943
+ NumberedStaffConfig,
11944
+ ScoreBarOverride,
11945
+ TabBarOverride,
11946
+ SlashBarOverride,
11947
+ NumberedBarOverride
11739
11948
  }
11740
11949
  }
11741
11950
 
@@ -13351,6 +13560,30 @@ declare enum NoteSubElement {
13351
13560
  NumberedEffects = 10
13352
13561
  }
13353
13562
 
13563
+ /**
13564
+ * Per-bar override for the numbered (jianpu) staff's display.
13565
+ * @record
13566
+ * @json
13567
+ * @public
13568
+ */
13569
+ declare interface NumberedBarOverride {
13570
+ timeSignature?: ElementDisplay;
13571
+ barNumber?: BarNumberDisplay;
13572
+ }
13573
+
13574
+ /**
13575
+ * Per-staff-type display configuration for the numbered (jianpu) staff.
13576
+ * The "1=X" key designation is rendered as an above-staff effect-band
13577
+ * label, not a header glyph, so this config has no `keySignature` field.
13578
+ * @record
13579
+ * @json
13580
+ * @public
13581
+ */
13582
+ declare interface NumberedStaffConfig {
13583
+ timeSignature?: ElementDisplay;
13584
+ barNumber?: BarNumberDisplay;
13585
+ }
13586
+
13354
13587
  /**
13355
13588
  * Lists all ottavia.
13356
13589
  * @public
@@ -14420,6 +14653,7 @@ export declare class RenderingResources {
14420
14653
  * @defaultValue `bold 12px Arial, sans-serif`
14421
14654
  * @since 0.9.6
14422
14655
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreCopyright}
14656
+ * @json_read_only
14423
14657
  */
14424
14658
  get copyrightFont(): Font;
14425
14659
  /**
@@ -14431,6 +14665,7 @@ export declare class RenderingResources {
14431
14665
  * @defaultValue `32px Georgia, serif`
14432
14666
  * @since 0.9.6
14433
14667
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreTitle}
14668
+ * @json_read_only
14434
14669
  */
14435
14670
  get titleFont(): Font;
14436
14671
  /**
@@ -14442,6 +14677,7 @@ export declare class RenderingResources {
14442
14677
  * @defaultValue `20px Georgia, serif`
14443
14678
  * @since 0.9.6
14444
14679
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreSubTitle}
14680
+ * @json_read_only
14445
14681
  */
14446
14682
  get subTitleFont(): Font;
14447
14683
  /**
@@ -14453,6 +14689,7 @@ export declare class RenderingResources {
14453
14689
  * @defaultValue `15px Arial, sans-serif`
14454
14690
  * @since 0.9.6
14455
14691
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreWords}
14692
+ * @json_read_only
14456
14693
  */
14457
14694
  get wordsFont(): Font;
14458
14695
  /**
@@ -14464,6 +14701,7 @@ export declare class RenderingResources {
14464
14701
  * @defaultValue `12px Georgia, serif`
14465
14702
  * @since 1.4.0
14466
14703
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectBeatTimer}
14704
+ * @json_read_only
14467
14705
  */
14468
14706
  get timerFont(): Font;
14469
14707
  /**
@@ -14475,6 +14713,7 @@ export declare class RenderingResources {
14475
14713
  * @defaultValue `14px Georgia, serif`
14476
14714
  * @since 1.4.0
14477
14715
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectDirections}
14716
+ * @json_read_only
14478
14717
  */
14479
14718
  get directionsFont(): Font;
14480
14719
  /**
@@ -14486,6 +14725,7 @@ export declare class RenderingResources {
14486
14725
  * @defaultValue `11px Arial, sans-serif`
14487
14726
  * @since 0.9.6
14488
14727
  * @deprecated use {@link elementFonts} with {@link NotationElement.ChordDiagramFretboardNumbers}
14728
+ * @json_read_only
14489
14729
  */
14490
14730
  get fretboardNumberFont(): Font;
14491
14731
  /**
@@ -14513,6 +14753,7 @@ export declare class RenderingResources {
14513
14753
  * @defaultValue `bold 14px Georgia, serif`
14514
14754
  * @since 0.9.6
14515
14755
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectMarker}
14756
+ * @json_read_only
14516
14757
  */
14517
14758
  get markerFont(): Font;
14518
14759
  /**
@@ -14532,6 +14773,7 @@ export declare class RenderingResources {
14532
14773
  * @defaultValue `11px Arial, sans-serif`
14533
14774
  * @since 0.9.6
14534
14775
  * @deprecated use {@link elementFonts} with {@link NotationElement.BarNumber}
14776
+ * @json_read_only
14535
14777
  */
14536
14778
  get barNumberFont(): Font;
14537
14779
  /**
@@ -14622,29 +14864,77 @@ declare interface RenderingResourcesJson {
14622
14864
  */
14623
14865
  engravingSettings?: EngravingSettingsJson;
14624
14866
  /**
14625
- * Unused, see deprecation note.
14626
- * @defaultValue `14px Georgia, serif`
14867
+ * The font to use for displaying the songs copyright information in the header of the music sheet.
14868
+ * @defaultValue `bold 12px Arial, sans-serif`
14627
14869
  * @since 0.9.6
14628
- * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
14629
- * @json_ignore
14870
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreCopyright}
14871
+ * @json_read_only
14630
14872
  */
14631
- fingeringFont?: FontJson;
14873
+ copyrightFont?: FontJson;
14632
14874
  /**
14633
- * Unused, see deprecation note.
14875
+ * The font to use for displaying the songs title in the header of the music sheet.
14876
+ * @defaultValue `32px Georgia, serif`
14877
+ * @since 0.9.6
14878
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreTitle}
14879
+ * @json_read_only
14880
+ */
14881
+ titleFont?: FontJson;
14882
+ /**
14883
+ * The font to use for displaying the songs subtitle in the header of the music sheet.
14884
+ * @defaultValue `20px Georgia, serif`
14885
+ * @since 0.9.6
14886
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreSubTitle}
14887
+ * @json_read_only
14888
+ */
14889
+ subTitleFont?: FontJson;
14890
+ /**
14891
+ * The font to use for displaying the lyrics information in the header of the music sheet.
14892
+ * @defaultValue `15px Arial, sans-serif`
14893
+ * @since 0.9.6
14894
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreWords}
14895
+ * @json_read_only
14896
+ */
14897
+ wordsFont?: FontJson;
14898
+ /**
14899
+ * The font to use for displaying beat time information in the music sheet.
14634
14900
  * @defaultValue `12px Georgia, serif`
14635
14901
  * @since 1.4.0
14636
- * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
14637
- * @json_ignore
14902
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectBeatTimer}
14903
+ * @json_read_only
14638
14904
  */
14639
- inlineFingeringFont?: FontJson;
14905
+ timerFont?: FontJson;
14640
14906
  /**
14641
- * Ununsed, see deprecation note.
14642
- * @defaultValue `italic 12px Georgia, serif`
14907
+ * The font to use for displaying the directions texts.
14908
+ * @defaultValue `14px Georgia, serif`
14909
+ * @since 1.4.0
14910
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectDirections}
14911
+ * @json_read_only
14912
+ */
14913
+ directionsFont?: FontJson;
14914
+ /**
14915
+ * The font to use for displaying the fretboard numbers in chord diagrams.
14916
+ * @defaultValue `11px Arial, sans-serif`
14643
14917
  * @since 0.9.6
14644
- * @deprecated use {@link elementFonts} with the respective
14645
- * @json_ignore
14918
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ChordDiagramFretboardNumbers}
14919
+ * @json_read_only
14920
+ */
14921
+ fretboardNumberFont?: FontJson;
14922
+ /**
14923
+ * The font to use for section marker labels shown above the music sheet.
14924
+ * @defaultValue `bold 14px Georgia, serif`
14925
+ * @since 0.9.6
14926
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectMarker}
14927
+ * @json_read_only
14646
14928
  */
14647
- effectFont?: FontJson;
14929
+ markerFont?: FontJson;
14930
+ /**
14931
+ * The font to use for displaying the bar numbers above the music sheet.
14932
+ * @defaultValue `11px Arial, sans-serif`
14933
+ * @since 0.9.6
14934
+ * @deprecated use {@link elementFonts} with {@link NotationElement.BarNumber}
14935
+ * @json_read_only
14936
+ */
14937
+ barNumberFont?: FontJson;
14648
14938
  /**
14649
14939
  * The fonts used by individual elements. Check `defaultFonts` for the elements which have custom fonts.
14650
14940
  * Removing fonts from this map can lead to unexpected side effects and errors. Only update it with new values.
@@ -14807,9 +15097,30 @@ declare class RenderStylesheet {
14807
15097
  */
14808
15098
  showSingleStaffBrackets: boolean;
14809
15099
  /**
14810
- * How bar numbers should be displayed.
15100
+ * How bar numbers should be displayed score-wide.
15101
+ * @deprecated Use {@link scoreConfig}, {@link tabConfig},
15102
+ * {@link slashConfig}, or {@link numberedConfig} `.barNumber` for
15103
+ * per-staff-type control. The setter broadcasts to all four
15104
+ * staff-type entries.
14811
15105
  */
14812
- barNumberDisplay: BarNumberDisplay;
15106
+ get barNumberDisplay(): BarNumberDisplay;
15107
+ set barNumberDisplay(value: BarNumberDisplay);
15108
+ /**
15109
+ * Score-wide display configuration for the standard-notation staff.
15110
+ */
15111
+ scoreConfig: ScoreStaffConfig;
15112
+ /**
15113
+ * Score-wide display configuration for the tablature staff.
15114
+ */
15115
+ tabConfig: TabStaffConfig;
15116
+ /**
15117
+ * Score-wide display configuration for the slash staff.
15118
+ */
15119
+ slashConfig: SlashStaffConfig;
15120
+ /**
15121
+ * Score-wide display configuration for the numbered (jianpu) staff.
15122
+ */
15123
+ numberedConfig: NumberedStaffConfig;
14813
15124
  }
14814
15125
 
14815
15126
  /**
@@ -14982,6 +15293,19 @@ declare class Score {
14982
15293
  exportFlatSyncPoints(): FlatSyncPoint[];
14983
15294
  }
14984
15295
 
15296
+ /**
15297
+ * Per-bar override for the standard-notation staff's display.
15298
+ * @record
15299
+ * @json
15300
+ * @public
15301
+ */
15302
+ declare interface ScoreBarOverride {
15303
+ clef?: ElementDisplay;
15304
+ keySignature?: ElementDisplay;
15305
+ timeSignature?: ElementDisplay;
15306
+ barNumber?: BarNumberDisplay;
15307
+ }
15308
+
14985
15309
  /**
14986
15310
  * This is the base class for creating new song exporters which
14987
15311
  * enable writing scores to a binary datasink.
@@ -15103,6 +15427,19 @@ declare class ScoreRenderer implements IScoreRenderer {
15103
15427
  private _onRenderFinished;
15104
15428
  }
15105
15429
 
15430
+ /**
15431
+ * Per-staff-type display configuration for the standard-notation staff.
15432
+ * @record
15433
+ * @json
15434
+ * @public
15435
+ */
15436
+ declare interface ScoreStaffConfig {
15437
+ clef?: ElementDisplay;
15438
+ keySignature?: ElementDisplay;
15439
+ timeSignature?: ElementDisplay;
15440
+ barNumber?: BarNumberDisplay;
15441
+ }
15442
+
15106
15443
  /**
15107
15444
  * Defines the custom styles for Scores.
15108
15445
  * @json
@@ -15330,6 +15667,30 @@ declare enum SimileMark {
15330
15667
  SecondOfDouble = 3
15331
15668
  }
15332
15669
 
15670
+ /**
15671
+ * Per-bar override for the slash staff's display.
15672
+ * @record
15673
+ * @json
15674
+ * @public
15675
+ */
15676
+ declare interface SlashBarOverride {
15677
+ keySignature?: ElementDisplay;
15678
+ timeSignature?: ElementDisplay;
15679
+ barNumber?: BarNumberDisplay;
15680
+ }
15681
+
15682
+ /**
15683
+ * Per-staff-type display configuration for the slash staff.
15684
+ * @record
15685
+ * @json
15686
+ * @public
15687
+ */
15688
+ declare interface SlashStaffConfig {
15689
+ keySignature?: ElementDisplay;
15690
+ timeSignature?: ElementDisplay;
15691
+ barNumber?: BarNumberDisplay;
15692
+ }
15693
+
15333
15694
  /**
15334
15695
  * This public enum lists all different types of finger slide-ins on a string.
15335
15696
  * @public
@@ -15609,6 +15970,22 @@ declare class Staff {
15609
15970
  * Gets or sets whether the standard notation is shown.
15610
15971
  */
15611
15972
  showStandardNotation: boolean;
15973
+ /**
15974
+ * Per-{@link Staff} override for the standard-notation staff's display.
15975
+ */
15976
+ scoreConfig?: ScoreStaffConfig;
15977
+ /**
15978
+ * Per-{@link Staff} override for the tablature staff's display.
15979
+ */
15980
+ tabConfig?: TabStaffConfig;
15981
+ /**
15982
+ * Per-{@link Staff} override for the slash staff's display.
15983
+ */
15984
+ slashConfig?: SlashStaffConfig;
15985
+ /**
15986
+ * Per-{@link Staff} override for the numbered (jianpu) staff's display.
15987
+ */
15988
+ numberedConfig?: NumberedStaffConfig;
15612
15989
  /**
15613
15990
  * Gets or sets whether the staff contains percussion notation
15614
15991
  */
@@ -15631,6 +16008,26 @@ declare class Staff {
15631
16008
  addBar(bar: Bar): void;
15632
16009
  }
15633
16010
 
16011
+ /**
16012
+ * Spatial selector for an element across the staves of a system.
16013
+ *
16014
+ * One axis of {@link ElementDisplay}. The renderer dispatches per-staff
16015
+ * on this axis to decide which staves paint the element.
16016
+ * @public
16017
+ */
16018
+ declare enum StaffPlacement {
16019
+ /**
16020
+ * Paint the element on every staff whose
16021
+ * {@link ElementDisplay.isVisible} resolves to `true`.
16022
+ */
16023
+ AllStaves = 0,
16024
+ /**
16025
+ * Paint only on the cascade-primary render-staff for each model
16026
+ * {@link Staff}. Priority: `score → tab → slash → numbered`.
16027
+ */
16028
+ Primary = 1
16029
+ }
16030
+
15634
16031
  /**
15635
16032
  * Represents the bounds of a staff system.
15636
16033
  * @public
@@ -15829,6 +16226,24 @@ declare enum SystemCommonType {
15829
16226
  SystemExclusive2 = 247
15830
16227
  }
15831
16228
 
16229
+ /**
16230
+ * Temporal selector for an element across the systems of the score.
16231
+ *
16232
+ * One axis of {@link ElementDisplay}. Independent of
16233
+ * {@link StaffPlacement}.
16234
+ * @public
16235
+ */
16236
+ declare enum SystemDisplay {
16237
+ /**
16238
+ * Restate the element at the start of every system.
16239
+ */
16240
+ AllSystems = 0,
16241
+ /**
16242
+ * Show only on the first system; subsequent systems do not restate.
16243
+ */
16244
+ FirstSystemOnly = 1
16245
+ }
16246
+
15832
16247
  /**
15833
16248
  * @deprecated Move to the new concrete Midi Event Types.
15834
16249
  * @public
@@ -15859,6 +16274,18 @@ export declare enum SystemsLayoutMode {
15859
16274
  UseModelLayout = 1
15860
16275
  }
15861
16276
 
16277
+ /**
16278
+ * Per-bar override for the tablature staff's display.
16279
+ * @record
16280
+ * @json
16281
+ * @public
16282
+ */
16283
+ declare interface TabBarOverride {
16284
+ clef?: ElementDisplay;
16285
+ timeSignature?: ElementDisplay;
16286
+ barNumber?: BarNumberDisplay;
16287
+ }
16288
+
15862
16289
  /**
15863
16290
  * Lists the different modes on how rhythm notation is shown on the tab staff.
15864
16291
  * @public
@@ -15883,6 +16310,20 @@ export declare enum TabRhythmMode {
15883
16310
  Automatic = 3
15884
16311
  }
15885
16312
 
16313
+ /**
16314
+ * Per-staff-type display configuration for the tablature staff.
16315
+ * @record
16316
+ * @json
16317
+ * @public
16318
+ */
16319
+ declare interface TabStaffConfig {
16320
+ clef?: ElementDisplay;
16321
+ timeSignature?: ElementDisplay;
16322
+ barNumber?: BarNumberDisplay;
16323
+ rhythm?: TabRhythmMode;
16324
+ rests?: ElementDisplay;
16325
+ }
16326
+
15886
16327
  /**
15887
16328
  * This public enum lists all base line modes
15888
16329
  * @public