@coderline/alphatab 1.9.0-alpha.1813 → 1.9.0-alpha.1852

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
  /**
@@ -4952,6 +4974,16 @@ declare class Beat {
4952
4974
  * Whether this beat should rendered and played as "dead slapped".
4953
4975
  */
4954
4976
  deadSlapped: boolean;
4977
+ /**
4978
+ * Gets or sets the chromatic tone value (0–11) of the pitch at which this rest should be displayed.
4979
+ * A value of -1 means use the default position formula.
4980
+ */
4981
+ restDisplayTone: number;
4982
+ /**
4983
+ * Gets or sets the octave at which this rest should be displayed.
4984
+ * Only relevant when {@link restDisplayTone} is set. -1 means use the default position formula.
4985
+ */
4986
+ restDisplayOctave: number;
4955
4987
  /**
4956
4988
  * Gets or sets the brush type applied to the notes of this beat.
4957
4989
  */
@@ -5044,6 +5076,7 @@ declare class Beat {
5044
5076
  /**
5045
5077
  * The speed of the tremolo.
5046
5078
  * @deprecated Set {@link tremoloPicking} instead.
5079
+ * @json_read_only
5047
5080
  */
5048
5081
  get tremoloSpeed(): Duration | null;
5049
5082
  /**
@@ -6415,6 +6448,34 @@ export declare class DisplaySettings {
6415
6448
  * | ![Default](https://alphatab.net/img/reference/property/stretchforce-default.png) | ![0.5](https://alphatab.net/img/reference/property/stretchforce-half.png) |
6416
6449
  */
6417
6450
  stretchForce: number;
6451
+ /**
6452
+ * The proportional spacing ratio between successive note durations.
6453
+ * @since 1.9.0
6454
+ * @category Display
6455
+ * @defaultValue `Math.SQRT2` (≈ 1.414, matches Dorico's default)
6456
+ * @remarks
6457
+ * 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`.
6458
+ * AlphaTab uses a power-law spacing model (the same approach used by Dorico, MuseScore and Finale): doubling the note duration multiplies its
6459
+ * allocated horizontal space by `spacingRatio`.
6460
+ *
6461
+ * Reference values for cross-application comparison:
6462
+ *
6463
+ * | Application / Style | Ratio | Character |
6464
+ * |----------------------------|----------------------|------------------------------------|
6465
+ * | Dorico default | √2 ≈ 1.414 | Tight, efficient, orchestral |
6466
+ * | MuseScore default | 1.5 | Balanced, general-purpose |
6467
+ * | Finale default (Fibonacci) | φ ≈ 1.618 | Loose, traditional engraving |
6468
+ *
6469
+ * AlphaTab defaults to `√2` (Dorico's value). This produces tighter spacing at long
6470
+ * durations than the alternatives, which matters for guitar tablature where rest bars and
6471
+ * whole notes are common - looser ratios make those bars dominate system width.
6472
+ *
6473
+ * This setting is orthogonal to {@link stretchForce}: `spacingRatio` controls the *shape* of the spacing (proportions between durations),
6474
+ * `stretchForce` controls the overall *density* (how tightly or loosely the music is packed). Both can be adjusted independently.
6475
+ *
6476
+ * 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.
6477
+ */
6478
+ spacingRatio: number;
6418
6479
  /**
6419
6480
  * The layouting mode used to arrange the the notation.
6420
6481
  * @remarks
@@ -6480,19 +6541,60 @@ export declare class DisplaySettings {
6480
6541
  * setting controls how many bars are placed within such a partial.
6481
6542
  */
6482
6543
  barCountPerPartial: number;
6544
+ /**
6545
+ * The minimum fullness ratio at which the last system in a flow is justified to fill the
6546
+ * available staff width.
6547
+ * @since 1.9.0
6548
+ * @category Display
6549
+ * @defaultValue `1`
6550
+ * @remarks
6551
+ * The "fullness" of a system is its natural unjustified width divided by the available
6552
+ * staff width. The last system is stretched to full width only when its fullness is
6553
+ * **greater than or equal to** this threshold; otherwise it renders at its natural width.
6554
+ *
6555
+ * Following industry convention (Dorico, MuseScore), a sparsely populated final system
6556
+ * looks better compact than spread across the full page. The threshold lets users tune
6557
+ * where that boundary sits.
6558
+ *
6559
+ * Common values:
6560
+ *
6561
+ * - `1` (default) — never justify the last system. Equivalent to the legacy
6562
+ * `justifyLastSystem = false` behaviour.
6563
+ * - `0` — always justify the last system, even when sparse. Equivalent to the legacy
6564
+ * `justifyLastSystem = true` behaviour.
6565
+ * - `0.4`–`0.7` — Dorico/MuseScore-style: justify when the last system is reasonably full,
6566
+ * leave compact when only a few bars trail.
6567
+ *
6568
+ * The threshold is bypassed when the last system is naturally wider than the available
6569
+ * staff width - in that case the system still compresses to fit, since otherwise content
6570
+ * would overflow horizontally.
6571
+ *
6572
+ * Values outside `[0, 1]` are clamped.
6573
+ */
6574
+ lastSystemFillThreshold: number;
6483
6575
  /**
6484
6576
  * Whether to justify also the last system in page layouts.
6577
+ *
6485
6578
  * @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.
6579
+ * @deprecated Use {@link lastSystemFillThreshold} for fine-grained control over when the
6580
+ * last system is justified. This property is now a thin wrapper:
6581
+ *
6582
+ * - **Get** returns `true` when {@link lastSystemFillThreshold} is less than `1` (i.e. some
6583
+ * degree of last-system justification is enabled), `false` otherwise.
6584
+ * - **Set** to `true` writes `lastSystemFillThreshold = 0` (always justify regardless of
6585
+ * fullness). Set to `false` writes `lastSystemFillThreshold = 1` (never justify).
6586
+ *
6488
6587
  * | Justification Disabled | Justification Enabled |
6489
6588
  * |--------------------------------------------------------------|-------------------------------------------------------|
6490
6589
  * | ![Disabled](https://alphatab.net/img/reference/property/justify-last-system-false.png) | ![Enabled](https://alphatab.net/img/reference/property/justify-last-system-true.png) |
6590
+ *
6491
6591
  * @since 1.3.0
6492
6592
  * @category Display
6493
6593
  * @defaultValue `false`
6594
+ * @json_read_only
6494
6595
  */
6495
- justifyLastSystem: boolean;
6596
+ get justifyLastSystem(): boolean;
6597
+ set justifyLastSystem(value: boolean);
6496
6598
  /**
6497
6599
  * Allows adjusting of the used fonts and colors for rendering.
6498
6600
  * @json_partial_names
@@ -6594,6 +6696,13 @@ export declare class DisplaySettings {
6594
6696
  * @defaultValue `3`
6595
6697
  */
6596
6698
  accoladeBarPaddingRight: number;
6699
+ /**
6700
+ * The padding between inline tuning labels and the start of the tab staff.
6701
+ * @since 1.9.0
6702
+ * @category Display
6703
+ * @defaultValue `5`
6704
+ */
6705
+ inlineTuningPaddingRight: number;
6597
6706
  /**
6598
6707
  * The top padding applied to the first main notation staff (standard, tabs, numbered, slash).
6599
6708
  * @since 1.8.0
@@ -6655,10 +6764,14 @@ export declare class DisplaySettings {
6655
6764
  */
6656
6765
  staffPaddingLeft: number;
6657
6766
  /**
6658
- * The padding between individual effect bands.
6767
+ * Clearance applied around each effect band on its staff-facing side:
6768
+ * "bottom padding" for top bands (between the band and the staff or
6769
+ * the band stacked below it) and "top padding" for bottom bands
6770
+ * (mirrored). Also used as the inter-band gap when bands stack on
6771
+ * the same side.
6659
6772
  * @since 1.7.0
6660
6773
  * @category Display
6661
- * @defaultValue `2`
6774
+ * @defaultValue `5`
6662
6775
  */
6663
6776
  effectBandPaddingBottom: number;
6664
6777
  /**
@@ -6781,6 +6894,34 @@ declare interface DisplaySettingsJson {
6781
6894
  * | ![Default](https://alphatab.net/img/reference/property/stretchforce-default.png) | ![0.5](https://alphatab.net/img/reference/property/stretchforce-half.png) |
6782
6895
  */
6783
6896
  stretchForce?: number;
6897
+ /**
6898
+ * The proportional spacing ratio between successive note durations.
6899
+ * @since 1.9.0
6900
+ * @category Display
6901
+ * @defaultValue `Math.SQRT2` (≈ 1.414, matches Dorico's default)
6902
+ * @remarks
6903
+ * 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`.
6904
+ * AlphaTab uses a power-law spacing model (the same approach used by Dorico, MuseScore and Finale): doubling the note duration multiplies its
6905
+ * allocated horizontal space by `spacingRatio`.
6906
+ *
6907
+ * Reference values for cross-application comparison:
6908
+ *
6909
+ * | Application / Style | Ratio | Character |
6910
+ * |----------------------------|----------------------|------------------------------------|
6911
+ * | Dorico default | √2 ≈ 1.414 | Tight, efficient, orchestral |
6912
+ * | MuseScore default | 1.5 | Balanced, general-purpose |
6913
+ * | Finale default (Fibonacci) | φ ≈ 1.618 | Loose, traditional engraving |
6914
+ *
6915
+ * AlphaTab defaults to `√2` (Dorico's value). This produces tighter spacing at long
6916
+ * durations than the alternatives, which matters for guitar tablature where rest bars and
6917
+ * whole notes are common - looser ratios make those bars dominate system width.
6918
+ *
6919
+ * This setting is orthogonal to {@link stretchForce}: `spacingRatio` controls the *shape* of the spacing (proportions between durations),
6920
+ * `stretchForce` controls the overall *density* (how tightly or loosely the music is packed). Both can be adjusted independently.
6921
+ *
6922
+ * 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.
6923
+ */
6924
+ spacingRatio?: number;
6784
6925
  /**
6785
6926
  * The layouting mode used to arrange the the notation.
6786
6927
  * @remarks
@@ -6846,17 +6987,57 @@ declare interface DisplaySettingsJson {
6846
6987
  * setting controls how many bars are placed within such a partial.
6847
6988
  */
6848
6989
  barCountPerPartial?: number;
6990
+ /**
6991
+ * The minimum fullness ratio at which the last system in a flow is justified to fill the
6992
+ * available staff width.
6993
+ * @since 1.9.0
6994
+ * @category Display
6995
+ * @defaultValue `1`
6996
+ * @remarks
6997
+ * The "fullness" of a system is its natural unjustified width divided by the available
6998
+ * staff width. The last system is stretched to full width only when its fullness is
6999
+ * **greater than or equal to** this threshold; otherwise it renders at its natural width.
7000
+ *
7001
+ * Following industry convention (Dorico, MuseScore), a sparsely populated final system
7002
+ * looks better compact than spread across the full page. The threshold lets users tune
7003
+ * where that boundary sits.
7004
+ *
7005
+ * Common values:
7006
+ *
7007
+ * - `1` (default) — never justify the last system. Equivalent to the legacy
7008
+ * `justifyLastSystem = false` behaviour.
7009
+ * - `0` — always justify the last system, even when sparse. Equivalent to the legacy
7010
+ * `justifyLastSystem = true` behaviour.
7011
+ * - `0.4`–`0.7` — Dorico/MuseScore-style: justify when the last system is reasonably full,
7012
+ * leave compact when only a few bars trail.
7013
+ *
7014
+ * The threshold is bypassed when the last system is naturally wider than the available
7015
+ * staff width - in that case the system still compresses to fit, since otherwise content
7016
+ * would overflow horizontally.
7017
+ *
7018
+ * Values outside `[0, 1]` are clamped.
7019
+ */
7020
+ lastSystemFillThreshold?: number;
6849
7021
  /**
6850
7022
  * Whether to justify also the last system in page layouts.
7023
+ *
6851
7024
  * @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.
7025
+ * @deprecated Use {@link lastSystemFillThreshold} for fine-grained control over when the
7026
+ * last system is justified. This property is now a thin wrapper:
7027
+ *
7028
+ * - **Get** returns `true` when {@link lastSystemFillThreshold} is less than `1` (i.e. some
7029
+ * degree of last-system justification is enabled), `false` otherwise.
7030
+ * - **Set** to `true` writes `lastSystemFillThreshold = 0` (always justify regardless of
7031
+ * fullness). Set to `false` writes `lastSystemFillThreshold = 1` (never justify).
7032
+ *
6854
7033
  * | Justification Disabled | Justification Enabled |
6855
7034
  * |--------------------------------------------------------------|-------------------------------------------------------|
6856
7035
  * | ![Disabled](https://alphatab.net/img/reference/property/justify-last-system-false.png) | ![Enabled](https://alphatab.net/img/reference/property/justify-last-system-true.png) |
7036
+ *
6857
7037
  * @since 1.3.0
6858
7038
  * @category Display
6859
7039
  * @defaultValue `false`
7040
+ * @json_read_only
6860
7041
  */
6861
7042
  justifyLastSystem?: boolean;
6862
7043
  /**
@@ -6960,6 +7141,13 @@ declare interface DisplaySettingsJson {
6960
7141
  * @defaultValue `3`
6961
7142
  */
6962
7143
  accoladeBarPaddingRight?: number;
7144
+ /**
7145
+ * The padding between inline tuning labels and the start of the tab staff.
7146
+ * @since 1.9.0
7147
+ * @category Display
7148
+ * @defaultValue `5`
7149
+ */
7150
+ inlineTuningPaddingRight?: number;
6963
7151
  /**
6964
7152
  * The top padding applied to the first main notation staff (standard, tabs, numbered, slash).
6965
7153
  * @since 1.8.0
@@ -7021,10 +7209,14 @@ declare interface DisplaySettingsJson {
7021
7209
  */
7022
7210
  staffPaddingLeft?: number;
7023
7211
  /**
7024
- * The padding between individual effect bands.
7212
+ * Clearance applied around each effect band on its staff-facing side:
7213
+ * "bottom padding" for top bands (between the band and the staff or
7214
+ * the band stacked below it) and "top padding" for bottom bands
7215
+ * (mirrored). Also used as the inter-band gap when bands stack on
7216
+ * the same side.
7025
7217
  * @since 1.7.0
7026
7218
  * @category Display
7027
- * @defaultValue `2`
7219
+ * @defaultValue `5`
7028
7220
  */
7029
7221
  effectBandPaddingBottom?: number;
7030
7222
  /**
@@ -7259,6 +7451,34 @@ declare enum DynamicValue {
7259
7451
  SFZP = 25
7260
7452
  }
7261
7453
 
7454
+ /**
7455
+ * Per-axis visibility / placement / system-display selector for an
7456
+ * element on a staff type. Used as the value type for the clef,
7457
+ * key signature, time signature, and rests entries on the per-staff-type
7458
+ * configuration carriers.
7459
+ *
7460
+ * Each axis is independently optional. An `undefined` axis defers to
7461
+ * the outer layer in the three-layer resolution chain (per-bar →
7462
+ * per-staff → score-wide stylesheet).
7463
+ * @record
7464
+ * @json
7465
+ * @public
7466
+ */
7467
+ declare interface ElementDisplay {
7468
+ /**
7469
+ * Whether to paint the element at all.
7470
+ */
7471
+ isVisible?: boolean;
7472
+ /**
7473
+ * Spatial selector across the staves of a system.
7474
+ */
7475
+ staffPlacement?: StaffPlacement;
7476
+ /**
7477
+ * Temporal selector across the systems of the score.
7478
+ */
7479
+ systemDisplay?: SystemDisplay;
7480
+ }
7481
+
7262
7482
  /**
7263
7483
  * Defines the custom styles for an element in the music sheet (like bars, voices, notes etc).
7264
7484
  * @public
@@ -10743,6 +10963,7 @@ declare class MasterBar {
10743
10963
  /**
10744
10964
  * The key signature used on all bars.
10745
10965
  * @deprecated Use key signatures on bar level
10966
+ * @json_read_only
10746
10967
  */
10747
10968
  get keySignature(): KeySignature;
10748
10969
  /**
@@ -10753,6 +10974,7 @@ declare class MasterBar {
10753
10974
  /**
10754
10975
  * The type of key signature (major/minor)
10755
10976
  * @deprecated Use key signatures on bar level
10977
+ * @json_read_only
10756
10978
  */
10757
10979
  get keySignatureType(): KeySignatureType;
10758
10980
  /**
@@ -11711,6 +11933,7 @@ export declare namespace model {
11711
11933
  TrackNamePolicy,
11712
11934
  TrackNameMode,
11713
11935
  TrackNameOrientation,
11936
+ TuningDisplayMode,
11714
11937
  BarNumberDisplay,
11715
11938
  RepeatGroup,
11716
11939
  Score,
@@ -11735,7 +11958,18 @@ export declare namespace model {
11735
11958
  WahPedal,
11736
11959
  WhammyType,
11737
11960
  ElementStyle,
11738
- BackingTrack
11961
+ BackingTrack,
11962
+ StaffPlacement,
11963
+ SystemDisplay,
11964
+ ElementDisplay,
11965
+ ScoreStaffConfig,
11966
+ TabStaffConfig,
11967
+ SlashStaffConfig,
11968
+ NumberedStaffConfig,
11969
+ ScoreBarOverride,
11970
+ TabBarOverride,
11971
+ SlashBarOverride,
11972
+ NumberedBarOverride
11739
11973
  }
11740
11974
  }
11741
11975
 
@@ -13351,6 +13585,30 @@ declare enum NoteSubElement {
13351
13585
  NumberedEffects = 10
13352
13586
  }
13353
13587
 
13588
+ /**
13589
+ * Per-bar override for the numbered (jianpu) staff's display.
13590
+ * @record
13591
+ * @json
13592
+ * @public
13593
+ */
13594
+ declare interface NumberedBarOverride {
13595
+ timeSignature?: ElementDisplay;
13596
+ barNumber?: BarNumberDisplay;
13597
+ }
13598
+
13599
+ /**
13600
+ * Per-staff-type display configuration for the numbered (jianpu) staff.
13601
+ * The "1=X" key designation is rendered as an above-staff effect-band
13602
+ * label, not a header glyph, so this config has no `keySignature` field.
13603
+ * @record
13604
+ * @json
13605
+ * @public
13606
+ */
13607
+ declare interface NumberedStaffConfig {
13608
+ timeSignature?: ElementDisplay;
13609
+ barNumber?: BarNumberDisplay;
13610
+ }
13611
+
13354
13612
  /**
13355
13613
  * Lists all ottavia.
13356
13614
  * @public
@@ -14420,6 +14678,7 @@ export declare class RenderingResources {
14420
14678
  * @defaultValue `bold 12px Arial, sans-serif`
14421
14679
  * @since 0.9.6
14422
14680
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreCopyright}
14681
+ * @json_read_only
14423
14682
  */
14424
14683
  get copyrightFont(): Font;
14425
14684
  /**
@@ -14431,6 +14690,7 @@ export declare class RenderingResources {
14431
14690
  * @defaultValue `32px Georgia, serif`
14432
14691
  * @since 0.9.6
14433
14692
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreTitle}
14693
+ * @json_read_only
14434
14694
  */
14435
14695
  get titleFont(): Font;
14436
14696
  /**
@@ -14442,6 +14702,7 @@ export declare class RenderingResources {
14442
14702
  * @defaultValue `20px Georgia, serif`
14443
14703
  * @since 0.9.6
14444
14704
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreSubTitle}
14705
+ * @json_read_only
14445
14706
  */
14446
14707
  get subTitleFont(): Font;
14447
14708
  /**
@@ -14453,6 +14714,7 @@ export declare class RenderingResources {
14453
14714
  * @defaultValue `15px Arial, sans-serif`
14454
14715
  * @since 0.9.6
14455
14716
  * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreWords}
14717
+ * @json_read_only
14456
14718
  */
14457
14719
  get wordsFont(): Font;
14458
14720
  /**
@@ -14464,6 +14726,7 @@ export declare class RenderingResources {
14464
14726
  * @defaultValue `12px Georgia, serif`
14465
14727
  * @since 1.4.0
14466
14728
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectBeatTimer}
14729
+ * @json_read_only
14467
14730
  */
14468
14731
  get timerFont(): Font;
14469
14732
  /**
@@ -14475,6 +14738,7 @@ export declare class RenderingResources {
14475
14738
  * @defaultValue `14px Georgia, serif`
14476
14739
  * @since 1.4.0
14477
14740
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectDirections}
14741
+ * @json_read_only
14478
14742
  */
14479
14743
  get directionsFont(): Font;
14480
14744
  /**
@@ -14486,6 +14750,7 @@ export declare class RenderingResources {
14486
14750
  * @defaultValue `11px Arial, sans-serif`
14487
14751
  * @since 0.9.6
14488
14752
  * @deprecated use {@link elementFonts} with {@link NotationElement.ChordDiagramFretboardNumbers}
14753
+ * @json_read_only
14489
14754
  */
14490
14755
  get fretboardNumberFont(): Font;
14491
14756
  /**
@@ -14513,6 +14778,7 @@ export declare class RenderingResources {
14513
14778
  * @defaultValue `bold 14px Georgia, serif`
14514
14779
  * @since 0.9.6
14515
14780
  * @deprecated use {@link elementFonts} with {@link NotationElement.EffectMarker}
14781
+ * @json_read_only
14516
14782
  */
14517
14783
  get markerFont(): Font;
14518
14784
  /**
@@ -14532,6 +14798,7 @@ export declare class RenderingResources {
14532
14798
  * @defaultValue `11px Arial, sans-serif`
14533
14799
  * @since 0.9.6
14534
14800
  * @deprecated use {@link elementFonts} with {@link NotationElement.BarNumber}
14801
+ * @json_read_only
14535
14802
  */
14536
14803
  get barNumberFont(): Font;
14537
14804
  /**
@@ -14622,29 +14889,77 @@ declare interface RenderingResourcesJson {
14622
14889
  */
14623
14890
  engravingSettings?: EngravingSettingsJson;
14624
14891
  /**
14625
- * Unused, see deprecation note.
14626
- * @defaultValue `14px Georgia, serif`
14892
+ * The font to use for displaying the songs copyright information in the header of the music sheet.
14893
+ * @defaultValue `bold 12px Arial, sans-serif`
14627
14894
  * @since 0.9.6
14628
- * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
14629
- * @json_ignore
14895
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreCopyright}
14896
+ * @json_read_only
14630
14897
  */
14631
- fingeringFont?: FontJson;
14898
+ copyrightFont?: FontJson;
14632
14899
  /**
14633
- * Unused, see deprecation note.
14900
+ * The font to use for displaying the songs title in the header of the music sheet.
14901
+ * @defaultValue `32px Georgia, serif`
14902
+ * @since 0.9.6
14903
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreTitle}
14904
+ * @json_read_only
14905
+ */
14906
+ titleFont?: FontJson;
14907
+ /**
14908
+ * The font to use for displaying the songs subtitle in the header of the music sheet.
14909
+ * @defaultValue `20px Georgia, serif`
14910
+ * @since 0.9.6
14911
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreSubTitle}
14912
+ * @json_read_only
14913
+ */
14914
+ subTitleFont?: FontJson;
14915
+ /**
14916
+ * The font to use for displaying the lyrics information in the header of the music sheet.
14917
+ * @defaultValue `15px Arial, sans-serif`
14918
+ * @since 0.9.6
14919
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ScoreWords}
14920
+ * @json_read_only
14921
+ */
14922
+ wordsFont?: FontJson;
14923
+ /**
14924
+ * The font to use for displaying beat time information in the music sheet.
14634
14925
  * @defaultValue `12px Georgia, serif`
14635
14926
  * @since 1.4.0
14636
- * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
14637
- * @json_ignore
14927
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectBeatTimer}
14928
+ * @json_read_only
14638
14929
  */
14639
- inlineFingeringFont?: FontJson;
14930
+ timerFont?: FontJson;
14640
14931
  /**
14641
- * Ununsed, see deprecation note.
14642
- * @defaultValue `italic 12px Georgia, serif`
14932
+ * The font to use for displaying the directions texts.
14933
+ * @defaultValue `14px Georgia, serif`
14934
+ * @since 1.4.0
14935
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectDirections}
14936
+ * @json_read_only
14937
+ */
14938
+ directionsFont?: FontJson;
14939
+ /**
14940
+ * The font to use for displaying the fretboard numbers in chord diagrams.
14941
+ * @defaultValue `11px Arial, sans-serif`
14643
14942
  * @since 0.9.6
14644
- * @deprecated use {@link elementFonts} with the respective
14645
- * @json_ignore
14943
+ * @deprecated use {@link elementFonts} with {@link NotationElement.ChordDiagramFretboardNumbers}
14944
+ * @json_read_only
14945
+ */
14946
+ fretboardNumberFont?: FontJson;
14947
+ /**
14948
+ * The font to use for section marker labels shown above the music sheet.
14949
+ * @defaultValue `bold 14px Georgia, serif`
14950
+ * @since 0.9.6
14951
+ * @deprecated use {@link elementFonts} with {@link NotationElement.EffectMarker}
14952
+ * @json_read_only
14646
14953
  */
14647
- effectFont?: FontJson;
14954
+ markerFont?: FontJson;
14955
+ /**
14956
+ * The font to use for displaying the bar numbers above the music sheet.
14957
+ * @defaultValue `11px Arial, sans-serif`
14958
+ * @since 0.9.6
14959
+ * @deprecated use {@link elementFonts} with {@link NotationElement.BarNumber}
14960
+ * @json_read_only
14961
+ */
14962
+ barNumberFont?: FontJson;
14648
14963
  /**
14649
14964
  * The fonts used by individual elements. Check `defaultFonts` for the elements which have custom fonts.
14650
14965
  * Removing fonts from this map can lead to unexpected side effects and errors. Only update it with new values.
@@ -14737,6 +15052,10 @@ declare class RenderStylesheet {
14737
15052
  * Whether to show the tuning.
14738
15053
  */
14739
15054
  globalDisplayTuning: boolean;
15055
+ /**
15056
+ * The place where tuning information is displayed.
15057
+ */
15058
+ tuningDisplayMode: TuningDisplayMode;
14740
15059
  /**
14741
15060
  * Whether to show the tuning.(per-track)
14742
15061
  */
@@ -14807,9 +15126,30 @@ declare class RenderStylesheet {
14807
15126
  */
14808
15127
  showSingleStaffBrackets: boolean;
14809
15128
  /**
14810
- * How bar numbers should be displayed.
15129
+ * How bar numbers should be displayed score-wide.
15130
+ * @deprecated Use {@link scoreConfig}, {@link tabConfig},
15131
+ * {@link slashConfig}, or {@link numberedConfig} `.barNumber` for
15132
+ * per-staff-type control. The setter broadcasts to all four
15133
+ * staff-type entries.
15134
+ */
15135
+ get barNumberDisplay(): BarNumberDisplay;
15136
+ set barNumberDisplay(value: BarNumberDisplay);
15137
+ /**
15138
+ * Score-wide display configuration for the standard-notation staff.
14811
15139
  */
14812
- barNumberDisplay: BarNumberDisplay;
15140
+ scoreConfig: ScoreStaffConfig;
15141
+ /**
15142
+ * Score-wide display configuration for the tablature staff.
15143
+ */
15144
+ tabConfig: TabStaffConfig;
15145
+ /**
15146
+ * Score-wide display configuration for the slash staff.
15147
+ */
15148
+ slashConfig: SlashStaffConfig;
15149
+ /**
15150
+ * Score-wide display configuration for the numbered (jianpu) staff.
15151
+ */
15152
+ numberedConfig: NumberedStaffConfig;
14813
15153
  }
14814
15154
 
14815
15155
  /**
@@ -14982,6 +15322,19 @@ declare class Score {
14982
15322
  exportFlatSyncPoints(): FlatSyncPoint[];
14983
15323
  }
14984
15324
 
15325
+ /**
15326
+ * Per-bar override for the standard-notation staff's display.
15327
+ * @record
15328
+ * @json
15329
+ * @public
15330
+ */
15331
+ declare interface ScoreBarOverride {
15332
+ clef?: ElementDisplay;
15333
+ keySignature?: ElementDisplay;
15334
+ timeSignature?: ElementDisplay;
15335
+ barNumber?: BarNumberDisplay;
15336
+ }
15337
+
14985
15338
  /**
14986
15339
  * This is the base class for creating new song exporters which
14987
15340
  * enable writing scores to a binary datasink.
@@ -15103,6 +15456,19 @@ declare class ScoreRenderer implements IScoreRenderer {
15103
15456
  private _onRenderFinished;
15104
15457
  }
15105
15458
 
15459
+ /**
15460
+ * Per-staff-type display configuration for the standard-notation staff.
15461
+ * @record
15462
+ * @json
15463
+ * @public
15464
+ */
15465
+ declare interface ScoreStaffConfig {
15466
+ clef?: ElementDisplay;
15467
+ keySignature?: ElementDisplay;
15468
+ timeSignature?: ElementDisplay;
15469
+ barNumber?: BarNumberDisplay;
15470
+ }
15471
+
15106
15472
  /**
15107
15473
  * Defines the custom styles for Scores.
15108
15474
  * @json
@@ -15330,6 +15696,30 @@ declare enum SimileMark {
15330
15696
  SecondOfDouble = 3
15331
15697
  }
15332
15698
 
15699
+ /**
15700
+ * Per-bar override for the slash staff's display.
15701
+ * @record
15702
+ * @json
15703
+ * @public
15704
+ */
15705
+ declare interface SlashBarOverride {
15706
+ keySignature?: ElementDisplay;
15707
+ timeSignature?: ElementDisplay;
15708
+ barNumber?: BarNumberDisplay;
15709
+ }
15710
+
15711
+ /**
15712
+ * Per-staff-type display configuration for the slash staff.
15713
+ * @record
15714
+ * @json
15715
+ * @public
15716
+ */
15717
+ declare interface SlashStaffConfig {
15718
+ keySignature?: ElementDisplay;
15719
+ timeSignature?: ElementDisplay;
15720
+ barNumber?: BarNumberDisplay;
15721
+ }
15722
+
15333
15723
  /**
15334
15724
  * This public enum lists all different types of finger slide-ins on a string.
15335
15725
  * @public
@@ -15609,6 +15999,22 @@ declare class Staff {
15609
15999
  * Gets or sets whether the standard notation is shown.
15610
16000
  */
15611
16001
  showStandardNotation: boolean;
16002
+ /**
16003
+ * Per-{@link Staff} override for the standard-notation staff's display.
16004
+ */
16005
+ scoreConfig?: ScoreStaffConfig;
16006
+ /**
16007
+ * Per-{@link Staff} override for the tablature staff's display.
16008
+ */
16009
+ tabConfig?: TabStaffConfig;
16010
+ /**
16011
+ * Per-{@link Staff} override for the slash staff's display.
16012
+ */
16013
+ slashConfig?: SlashStaffConfig;
16014
+ /**
16015
+ * Per-{@link Staff} override for the numbered (jianpu) staff's display.
16016
+ */
16017
+ numberedConfig?: NumberedStaffConfig;
15612
16018
  /**
15613
16019
  * Gets or sets whether the staff contains percussion notation
15614
16020
  */
@@ -15631,6 +16037,26 @@ declare class Staff {
15631
16037
  addBar(bar: Bar): void;
15632
16038
  }
15633
16039
 
16040
+ /**
16041
+ * Spatial selector for an element across the staves of a system.
16042
+ *
16043
+ * One axis of {@link ElementDisplay}. The renderer dispatches per-staff
16044
+ * on this axis to decide which staves paint the element.
16045
+ * @public
16046
+ */
16047
+ declare enum StaffPlacement {
16048
+ /**
16049
+ * Paint the element on every staff whose
16050
+ * {@link ElementDisplay.isVisible} resolves to `true`.
16051
+ */
16052
+ AllStaves = 0,
16053
+ /**
16054
+ * Paint only on the cascade-primary render-staff for each model
16055
+ * {@link Staff}. Priority: `score → tab → slash → numbered`.
16056
+ */
16057
+ Primary = 1
16058
+ }
16059
+
15634
16060
  /**
15635
16061
  * Represents the bounds of a staff system.
15636
16062
  * @public
@@ -15829,6 +16255,24 @@ declare enum SystemCommonType {
15829
16255
  SystemExclusive2 = 247
15830
16256
  }
15831
16257
 
16258
+ /**
16259
+ * Temporal selector for an element across the systems of the score.
16260
+ *
16261
+ * One axis of {@link ElementDisplay}. Independent of
16262
+ * {@link StaffPlacement}.
16263
+ * @public
16264
+ */
16265
+ declare enum SystemDisplay {
16266
+ /**
16267
+ * Restate the element at the start of every system.
16268
+ */
16269
+ AllSystems = 0,
16270
+ /**
16271
+ * Show only on the first system; subsequent systems do not restate.
16272
+ */
16273
+ FirstSystemOnly = 1
16274
+ }
16275
+
15832
16276
  /**
15833
16277
  * @deprecated Move to the new concrete Midi Event Types.
15834
16278
  * @public
@@ -15859,6 +16303,18 @@ export declare enum SystemsLayoutMode {
15859
16303
  UseModelLayout = 1
15860
16304
  }
15861
16305
 
16306
+ /**
16307
+ * Per-bar override for the tablature staff's display.
16308
+ * @record
16309
+ * @json
16310
+ * @public
16311
+ */
16312
+ declare interface TabBarOverride {
16313
+ clef?: ElementDisplay;
16314
+ timeSignature?: ElementDisplay;
16315
+ barNumber?: BarNumberDisplay;
16316
+ }
16317
+
15862
16318
  /**
15863
16319
  * Lists the different modes on how rhythm notation is shown on the tab staff.
15864
16320
  * @public
@@ -15883,6 +16339,20 @@ export declare enum TabRhythmMode {
15883
16339
  Automatic = 3
15884
16340
  }
15885
16341
 
16342
+ /**
16343
+ * Per-staff-type display configuration for the tablature staff.
16344
+ * @record
16345
+ * @json
16346
+ * @public
16347
+ */
16348
+ declare interface TabStaffConfig {
16349
+ clef?: ElementDisplay;
16350
+ timeSignature?: ElementDisplay;
16351
+ barNumber?: BarNumberDisplay;
16352
+ rhythm?: TabRhythmMode;
16353
+ rests?: ElementDisplay;
16354
+ }
16355
+
15886
16356
  /**
15887
16357
  * This public enum lists all base line modes
15888
16358
  * @public
@@ -16306,6 +16776,21 @@ declare class Tuning {
16306
16776
  finish(): void;
16307
16777
  }
16308
16778
 
16779
+ /**
16780
+ * Lists the different places where string tuning information is displayed.
16781
+ * @public
16782
+ */
16783
+ declare enum TuningDisplayMode {
16784
+ /**
16785
+ * Tuning information is displayed above the score.
16786
+ */
16787
+ Score = 0,
16788
+ /**
16789
+ * Tuning note names are displayed beside the corresponding tab staff lines.
16790
+ */
16791
+ Staff = 1
16792
+ }
16793
+
16309
16794
  /**
16310
16795
  * Represents a list of beats that are grouped within the same tuplet.
16311
16796
  * @public