@coderline/alphatab 1.7.0-alpha.1504 → 1.7.0-alpha.1511

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.
@@ -264,7 +264,7 @@ declare abstract class AlphaSynthWebAudioOutputBase implements ISynthOutput {
264
264
  get sampleRate(): number;
265
265
  activate(resumedCallback?: () => void): void;
266
266
  private patchIosSampleRate;
267
- open(bufferTimeInMilliseconds: number): void;
267
+ open(_bufferTimeInMilliseconds: number): void;
268
268
  private registerResumeHandler;
269
269
  private unregisterResumeHandler;
270
270
  play(): void;
@@ -3066,7 +3066,9 @@ declare class AlphaTexImporter extends ScoreImporter {
3066
3066
  private _currentDynamics;
3067
3067
  private _currentTuplet;
3068
3068
  private _lyrics;
3069
+ private _ignoredInitialVoice;
3069
3070
  private _staffHasExplicitDisplayTransposition;
3071
+ private _staffDisplayTranspositionApplied;
3070
3072
  private _staffHasExplicitTuning;
3071
3073
  private _staffTuningApplied;
3072
3074
  private _percussionArticulationNames;
@@ -3514,7 +3516,6 @@ declare class Bar {
3514
3516
  getActualBarLineLeft(isFirstOfSystem: boolean): BarLineStyle;
3515
3517
  /**
3516
3518
  * The bar line to draw on the right side of the bar with an "automatic" type resolved to the actual one.
3517
- * @param isFirstOfSystem Whether the bar is the first one in the system.
3518
3519
  */
3519
3520
  getActualBarLineRight(): BarLineStyle;
3520
3521
  private static automaticToActualType;
@@ -3655,11 +3656,6 @@ declare enum BarLineStyle {
3655
3656
  * This is the base public class for creating blocks which can render bars.
3656
3657
  */
3657
3658
  declare class BarRendererBase {
3658
- protected static readonly RawLineSpacing: number;
3659
- static readonly StemWidth: number;
3660
- static readonly StaffLineThickness: number;
3661
- static readonly BeamThickness: number;
3662
- static readonly BeamSpacing: number;
3663
3659
  private _preBeatGlyphs;
3664
3660
  private _voiceContainers;
3665
3661
  private _postBeatGlyphs;
@@ -3700,6 +3696,7 @@ declare class BarRendererBase {
3700
3696
  registerOverflowBottom(bottomOverflow: number): boolean;
3701
3697
  scaleToWidth(width: number): void;
3702
3698
  get resources(): RenderingResources;
3699
+ get smuflMetrics(): EngravingSettings;
3703
3700
  get settings(): Settings;
3704
3701
  /**
3705
3702
  * Gets the scale with which the bar should be displayed in case the model
@@ -3745,7 +3742,7 @@ declare class BarRendererBase {
3745
3742
  protected addPostBeatGlyph(g: Glyph): void;
3746
3743
  protected createPreBeatGlyphs(): void;
3747
3744
  protected createBeatGlyphs(): void;
3748
- protected createVoiceGlyphs(v: Voice): void;
3745
+ protected createVoiceGlyphs(_v: Voice): void;
3749
3746
  protected createPostBeatGlyphs(): void;
3750
3747
  get beatGlyphsStart(): number;
3751
3748
  get postBeatGlyphsStart(): number;
@@ -3756,7 +3753,7 @@ declare class BarRendererBase {
3756
3753
  reLayout(): void;
3757
3754
  protected recreatePreBeatGlyphs(): void;
3758
3755
  protected paintSimileMark(cx: number, cy: number, canvas: ICanvas): void;
3759
- completeBeamingHelper(helper: BeamingHelper): void;
3756
+ completeBeamingHelper(_helper: BeamingHelper): void;
3760
3757
  getBeatDirection(beat: Beat): BeamDirection;
3761
3758
  }
3762
3759
 
@@ -3771,7 +3768,7 @@ declare abstract class BarRendererFactory {
3771
3768
  abstract get staffId(): string;
3772
3769
  abstract getStaffPaddingTop(staff: RenderStaff): number;
3773
3770
  abstract getStaffPaddingBottom(staff: RenderStaff): number;
3774
- canCreate(track: Track, staff: Staff): boolean;
3771
+ canCreate(_track: Track, staff: Staff): boolean;
3775
3772
  abstract create(renderer: ScoreRenderer, bar: Bar): BarRendererBase;
3776
3773
  }
3777
3774
 
@@ -3920,22 +3917,19 @@ declare class BeamingHelper {
3920
3917
  voice: Voice | null;
3921
3918
  beats: Beat[];
3922
3919
  shortestDuration: Duration;
3920
+ tremoloDuration?: Duration;
3923
3921
  /**
3924
3922
  * an indicator whether any beat has a tuplet on it.
3925
3923
  */
3926
3924
  hasTuplet: boolean;
3927
3925
  slashBeats: Beat[];
3928
- private _firstBeatLowestNoteCompareValue;
3929
- private _firstBeatHighestNoteCompareValue;
3930
- private _lastBeatLowestNoteCompareValue;
3931
- private _lastBeatHighestNoteCompareValue;
3932
3926
  lowestNoteInHelper: Note | null;
3933
3927
  private _lowestNoteCompareValueInHelper;
3934
3928
  highestNoteInHelper: Note | null;
3935
3929
  private _highestNoteCompareValueInHelper;
3936
3930
  invertBeamDirection: boolean;
3937
3931
  preferredBeamDirection: BeamDirection | null;
3938
- isGrace: boolean;
3932
+ graceType: GraceType;
3939
3933
  minRestLine: number | null;
3940
3934
  beatOfMinRestLine: Beat | null;
3941
3935
  maxRestLine: number | null;
@@ -4460,7 +4454,6 @@ declare class BeatBounds {
4460
4454
  }
4461
4455
 
4462
4456
  declare class BeatContainerGlyph extends Glyph {
4463
- static readonly GraceBeatPadding: number;
4464
4457
  voiceContainer: VoiceContainerGlyph;
4465
4458
  beat: Beat;
4466
4459
  preNotes: BeatGlyphBase;
@@ -4472,14 +4465,14 @@ declare class BeatContainerGlyph extends Glyph {
4472
4465
  addTie(tie: Glyph): void;
4473
4466
  protected drawBeamHelperAsFlags(helper: BeamingHelper): boolean;
4474
4467
  registerLayoutingInfo(layoutings: BarLayoutingInfo): void;
4475
- applyLayoutingInfo(info: BarLayoutingInfo): void;
4468
+ applyLayoutingInfo(_info: BarLayoutingInfo): void;
4476
4469
  doLayout(): void;
4477
4470
  protected updateWidth(): void;
4478
4471
  scaleToWidth(beatWidth: number): void;
4479
- protected createTies(n: Note): void;
4472
+ protected createTies(_n: Note): void;
4480
4473
  static getGroupId(beat: Beat): string;
4481
4474
  paint(cx: number, cy: number, canvas: ICanvas): void;
4482
- buildBoundingsLookup(barBounds: BarBounds, cx: number, cy: number, isEmptyBar: boolean): void;
4475
+ buildBoundingsLookup(barBounds: BarBounds, cx: number, cy: number, _isEmptyBar: boolean): void;
4483
4476
  }
4484
4477
 
4485
4478
  declare class BeatGlyphBase extends GlyphGroup {
@@ -4502,9 +4495,11 @@ declare class BeatOnNoteGlyphBase extends BeatGlyphBase {
4502
4495
  beamingHelper: BeamingHelper;
4503
4496
  centerX: number;
4504
4497
  updateBeamingHelper(): void;
4505
- buildBoundingsLookup(beatBounds: BeatBounds, cx: number, cy: number): void;
4506
- getNoteX(note: Note, requestedPosition: NoteXPosition): number;
4507
- getNoteY(note: Note, requestedPosition: NoteYPosition): number;
4498
+ buildBoundingsLookup(_beatBounds: BeatBounds, _cx: number, _cy: number): void;
4499
+ getNoteX(_note: Note, _requestedPosition: NoteXPosition): number;
4500
+ getNoteY(_note: Note, _requestedPosition: NoteYPosition): number;
4501
+ getHighestNoteY(): number;
4502
+ getLowestNoteY(): number;
4508
4503
  }
4509
4504
 
4510
4505
  /**
@@ -5295,6 +5290,11 @@ export declare class CoreSettings {
5295
5290
  * they are available for rendering the music sheet. The sources can be set to any
5296
5291
  * CSS compatible URL which can be passed into `url()`.
5297
5292
  * See https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src#url
5293
+ *
5294
+ * If you customize the SmuFL font used in alphaTab, you will also need to provide
5295
+ * the respective SMuFL Metadata information to alphaTab.
5296
+ * Set the metadata via {@link EngravingSettings.fillFromSmufl} on the rendering resources.
5297
+ *
5298
5298
  * @defaultValue Bravura files located at {@link fontDirectory} .
5299
5299
  * @category Core - JavaScript Specific
5300
5300
  * @target web
@@ -5471,6 +5471,11 @@ declare interface CoreSettingsJson {
5471
5471
  * they are available for rendering the music sheet. The sources can be set to any
5472
5472
  * CSS compatible URL which can be passed into `url()`.
5473
5473
  * See https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src#url
5474
+ *
5475
+ * If you customize the SmuFL font used in alphaTab, you will also need to provide
5476
+ * the respective SMuFL Metadata information to alphaTab.
5477
+ * Set the metadata via {@link EngravingSettings.fillFromSmufl} on the rendering resources.
5478
+ *
5474
5479
  * @defaultValue Bravura files located at {@link fontDirectory} .
5475
5480
  * @category Core - JavaScript Specific
5476
5481
  * @target web
@@ -5655,7 +5660,7 @@ declare class Cursors {
5655
5660
  */
5656
5661
  declare class DeprecatedMidiEvent extends MidiEvent {
5657
5662
  constructor();
5658
- writeTo(s: IWriteable): void;
5663
+ writeTo(_s: IWriteable): void;
5659
5664
  }
5660
5665
 
5661
5666
  /**
@@ -5933,6 +5938,13 @@ export declare class DisplaySettings {
5933
5938
  * @defaultValue `2`
5934
5939
  */
5935
5940
  staffPaddingLeft: number;
5941
+ /**
5942
+ * The padding between individual effect bands.
5943
+ * @since 1.7.0
5944
+ * @category Display
5945
+ * @defaultValue `2`
5946
+ */
5947
+ effectBandPaddingBottom: number;
5936
5948
  /**
5937
5949
  * The mode used to arrange staves and systems.
5938
5950
  * @since 1.3.0
@@ -6250,6 +6262,13 @@ declare interface DisplaySettingsJson {
6250
6262
  * @defaultValue `2`
6251
6263
  */
6252
6264
  staffPaddingLeft?: number;
6265
+ /**
6266
+ * The padding between individual effect bands.
6267
+ * @since 1.7.0
6268
+ * @category Display
6269
+ * @defaultValue `2`
6270
+ */
6271
+ effectBandPaddingBottom?: number;
6253
6272
  /**
6254
6273
  * The mode used to arrange staves and systems.
6255
6274
  * @since 1.3.0
@@ -6500,6 +6519,829 @@ declare class EndOfTrackEvent extends MidiEvent {
6500
6519
  writeTo(s: IWriteable): void;
6501
6520
  }
6502
6521
 
6522
+ /**
6523
+ * This class holds all all spacing, thickness and scaling metrics
6524
+ * related to engraving the music notation.
6525
+ *
6526
+ * @remarks
6527
+ * While general layout settings are configurable via the display settings,
6528
+ * these settings go deeper into how the individual music symbols are scaled and aligned targeting
6529
+ * specification compliance with the Standard Music Font Layout (SMuFL).
6530
+ *
6531
+ * Unless specified differently the settings here are available {@since 1.7.0}
6532
+ *
6533
+ * If properties are marked with a SMuFl tag, it means that the values are part of the SMuFL specification
6534
+ * and should be filled from the respective metadata files shipped with the fonts or aligned generally with the specification.
6535
+ * Other properties are custom to alphaTab.
6536
+ *
6537
+ * In SmuFL Sizes and coordinates are expressed in "staff space" units which is 1/4 of the configured font size. In this data structure
6538
+ * the values are converted to pixels.
6539
+ *
6540
+ * @json
6541
+ * @json_declaration
6542
+ * @cloneable
6543
+ */
6544
+ export declare class EngravingSettings {
6545
+ private static _bravuraDefaults?;
6546
+ /**
6547
+ * A {@link EngravingSettings} copy filled with the settings of the Bravura font used by default in alphaTab.
6548
+ */
6549
+ static get bravuraDefaults(): EngravingSettings;
6550
+ /**
6551
+ * The font size of the music font in pixel.
6552
+ */
6553
+ musicFontSize: number;
6554
+ /**
6555
+ * The staff space in pixel
6556
+ * @smufl 1.4
6557
+ */
6558
+ oneStaffSpace: number;
6559
+ /**
6560
+ * The staff space in pixel for tablature fonts. This is typically 1.5 of the standard staff space.
6561
+ * @smufl 1.4
6562
+ */
6563
+ tabLineSpacing: number;
6564
+ /**
6565
+ * The thickness of the line used for the shaft of an arrow
6566
+ * @smufl 1.4
6567
+ */
6568
+ arrowShaftThickness: number;
6569
+ /**
6570
+ * The default distance between multiple thin barlines when locked together, e.g. between two thin barlines making a double barline, measured from the right-hand edge of the left barline to the left-hand edge of the right barline.
6571
+ * @smufl 1.4
6572
+ */
6573
+ barlineSeparation: number;
6574
+ /**
6575
+ * The distance between the inner edge of the primary and outer edge of subsequent secondary beams
6576
+ * @smufl 1.4
6577
+ */
6578
+ beamSpacing: number;
6579
+ /**
6580
+ * The thickness of a beam
6581
+ * @smufl 1.4
6582
+ */
6583
+ beamThickness: number;
6584
+ /**
6585
+ * The thickness of the vertical line of a bracket grouping staves together
6586
+ * @smufl 1.4
6587
+ */
6588
+ bracketThickness: number;
6589
+ /**
6590
+ * The length of the dashes to be used in a dashed barline
6591
+ * @smufl 1.4
6592
+ */
6593
+ dashedBarlineDashLength: number;
6594
+ /**
6595
+ * The length of the gap between dashes in a dashed barline
6596
+ */
6597
+ dashedBarlineGapLength: number;
6598
+ /**
6599
+ * The thickness of a dashed barline
6600
+ * @smufl 1.4
6601
+ */
6602
+ dashedBarlineThickness: number;
6603
+ /**
6604
+ * The thickness of a crescendo/diminuendo hairpin
6605
+ * @smufl 1.4
6606
+ */
6607
+ hairpinThickness: number;
6608
+ /**
6609
+ * The thickness of a leger line (normally somewhat thicker than a staff line)
6610
+ * @smufl 1.4
6611
+ */
6612
+ legerLineThickness: number;
6613
+ /**
6614
+ * The amount by which a leger line should extend either side of a notehead, scaled proportionally with the notehead's size, e.g. when scaled down as a grace note
6615
+ * @smufl 1.4
6616
+ */
6617
+ legerLineExtension: number;
6618
+ /**
6619
+ * The thickness of the dashed line used for an octave line
6620
+ * @smufl 1.4
6621
+ */
6622
+ octaveLineThickness: number;
6623
+ /**
6624
+ * The thickness of the line used for piano pedaling
6625
+ * @smufl 1.4
6626
+ */
6627
+ pedalLineThickness: number;
6628
+ /**
6629
+ * The default horizontal distance between the dots and the inner barline of a repeat barline, measured from the edge of the dots to the edge of the barline.
6630
+ * @smufl 1.4
6631
+ */
6632
+ repeatBarlineDotSeparation: number;
6633
+ /**
6634
+ * The thickness of the brackets drawn to indicate repeat endings
6635
+ * @smufl 1.4
6636
+ */
6637
+ repeatEndingLineThickness: number;
6638
+ /**
6639
+ * The thickness of the mid-point of a slur (i.e. its thickest point)
6640
+ * @smufl 1.4
6641
+ */
6642
+ slurMidpointThickness: number;
6643
+ /**
6644
+ * The thickness of each staff line
6645
+ * @smufl 1.4
6646
+ */
6647
+ staffLineThickness: number;
6648
+ /**
6649
+ * The thickness of a stem
6650
+ * @smufl 1.4
6651
+ */
6652
+ stemThickness: number;
6653
+ /**
6654
+ * The thickness of a thick barline, e.g. in a final barline or a repeat barline
6655
+ * @smufl 1.4
6656
+ */
6657
+ thickBarlineThickness: number;
6658
+ /**
6659
+ * The thickness of a dashed barline
6660
+ * @smufl 1.4
6661
+ */
6662
+ thinBarlineThickness: number;
6663
+ /**
6664
+ * The default distance between a pair of thin and thick barlines when locked together, e.g. between the thin and thick barlines making a final barline, or between the thick and thin barlines making a start repeat barline.
6665
+ * @smufl 1.4
6666
+ */
6667
+ thinThickBarlineSeparation: number;
6668
+ /**
6669
+ * The thickness of the mid-point of a tie
6670
+ * @smufl 1.4
6671
+ */
6672
+ tieMidpointThickness: number;
6673
+ /**
6674
+ * The thickness of the brackets drawn either side of tuplet numbers
6675
+ * @smufl 1.4
6676
+ */
6677
+ tupletBracketThickness: number;
6678
+ /**
6679
+ * Holds information about where to place upwards pointing stems on glyphs.
6680
+ * @smufl 1.4
6681
+ */
6682
+ stemUp: Map<MusicFontSymbol, EngravingStemInfo>;
6683
+ /**
6684
+ * Holds information about where to place downwards pointing stems on glyphs.
6685
+ * @smufl 1.4
6686
+ */
6687
+ stemDown: Map<MusicFontSymbol, EngravingStemInfo>;
6688
+ /**
6689
+ * Holds the x-coordinate offsets for glyphs which are drawn repeatedly (like vibrato waves).
6690
+ * @smufl 1.4
6691
+ */
6692
+ repeatOffsetX: Map<MusicFontSymbol, number>;
6693
+ /**
6694
+ * The standard stem length of a quarter note.
6695
+ * @smufl 1.4
6696
+ */
6697
+ standardStemLength: number;
6698
+ /**
6699
+ * The additional offsets stems need to have enough space for flags.
6700
+ * @smufl 1.4
6701
+ */
6702
+ stemFlagOffsets: Map<Duration, number>;
6703
+ /**
6704
+ * A lookup containing the offset from the visual top to the glyph center.
6705
+ * The glyph center is the origin coordinate at which the glyph paths start when drawn on the alphabetic baseline.
6706
+ * @smufl 1.4
6707
+ */
6708
+ glyphTop: Map<MusicFontSymbol, number>;
6709
+ /**
6710
+ * A lookup containing the offset from the glyph center to the visual bottom of the glyph.
6711
+ * The glyph center is the origin coordinate at which the glyph paths start when drawn on the alphabetic baseline.
6712
+ * @smufl 1.4
6713
+ */
6714
+ glyphBottom: Map<MusicFontSymbol, number>;
6715
+ /**
6716
+ * A lookup for the widths of the visual bounding box for the glyphs.
6717
+ * @smufl 1.4
6718
+ */
6719
+ glyphWidths: Map<MusicFontSymbol, number>;
6720
+ /**
6721
+ * A lookup for the heights of the visual bounding box for the glyphs.
6722
+ * @smufl 1.4
6723
+ */
6724
+ glyphHeights: Map<MusicFontSymbol, number>;
6725
+ /* Excluded from this release type: hasSymbol */
6726
+ /**
6727
+ * Fills the engraving settings from the provided smufl metdata.
6728
+ * @param smufl The metadata shipped together with the SMuFL fonts.
6729
+ * @param musicFontSize The font size to configure in alphaTab for the music font.
6730
+ */
6731
+ fillFromSmufl(smufl: SmuflMetadata, musicFontSize?: number): void;
6732
+ /* Excluded from this release type: smuflNameToGlyphNameMapping */
6733
+ private static smuflNameToMusicFontSymbol;
6734
+ /**
6735
+ * The size of the bars drawn in numbered notation to indicate the durations.
6736
+ */
6737
+ numberedBarRendererBarSize: number;
6738
+ /**
6739
+ * The spacing between the bars drawn in numbered notation to indicate the durations.
6740
+ */
6741
+ numberedBarRendererBarSpacing: number;
6742
+ /**
6743
+ * The size of the dashed drawn in numbered notation to indicate the durations.
6744
+ */
6745
+ numberedDashGlyphPadding: number;
6746
+ /**
6747
+ * The width of the dashed drawn in numbered notation to indicate the durations.
6748
+ */
6749
+ numberedDashGlyphWidth: number;
6750
+ /**
6751
+ * The gap between dashes on line ranged glyphs (like let-ring)
6752
+ */
6753
+ lineRangedGlyphDashGap: number;
6754
+ /**
6755
+ * The size between dashes on line ranged glyphs (like let-ring)
6756
+ */
6757
+ lineRangedGlyphDashSize: number;
6758
+ /**
6759
+ * The padding between effects and glyphs placed before the note heads, e.g. accidentals or brushes
6760
+ */
6761
+ preNoteEffectPadding: number;
6762
+ /**
6763
+ * The padding between effects and glyphs placed after the note heads, e.g. slides or bends
6764
+ */
6765
+ postNoteEffectPadding: number;
6766
+ /**
6767
+ * The padding between effects and glyphs placed above/blow the note heads e.g. staccato
6768
+ */
6769
+ onNoteEffectPadding: number;
6770
+ /**
6771
+ * The padding between the circles around string numbers.
6772
+ */
6773
+ stringNumberCirclePadding: number;
6774
+ /**
6775
+ * The outer padding for glyphs arranged in a grid like fashion, like the tunings and chord diagrams.
6776
+ */
6777
+ rowContainerPadding: number;
6778
+ /**
6779
+ * The innter gap for glyphs arranged in a grid like fashion, like the tunings and chord diagrams.
6780
+ */
6781
+ rowContainerGap: number;
6782
+ /**
6783
+ * The padding used for aligning the alternate ending brackets and texts.
6784
+ */
6785
+ alternateEndingsPadding: number;
6786
+ /**
6787
+ * The padding between the sustain pedal glyphs and lines.
6788
+ */
6789
+ sustainPedalLinePadding: number;
6790
+ /**
6791
+ * The height of ties.
6792
+ */
6793
+ tieHeight: number;
6794
+ /**
6795
+ * The padding between the border and text of beat timers.
6796
+ */
6797
+ beatTimerPadding: number;
6798
+ /**
6799
+ * The additional padding applied to helper note heads shown on bends.
6800
+ */
6801
+ bendNoteHeadElementPadding: number;
6802
+ /**
6803
+ * The width of the parenthesis shown on ghost notes and free time time signatures.
6804
+ */
6805
+ ghostParenthesisWidth: number;
6806
+ /**
6807
+ * The padding between the parenthesis and wrapped elements on ghost notes and free time time signatures
6808
+ */
6809
+ ghostParenthesisPadding: number;
6810
+ /**
6811
+ * The width of broken beams e.g. when combining a 32nd and 16th note
6812
+ */
6813
+ brokenBeamWidth: number;
6814
+ /**
6815
+ * The padding between the text and whammy lines.
6816
+ */
6817
+ tabWhammyTextPadding: number;
6818
+ /**
6819
+ * The height applied per half-note whammy.
6820
+ */
6821
+ tabWhammyPerHalfHeight: number;
6822
+ /**
6823
+ * The size of the dashes on whammys (e.g. on holds)
6824
+ */
6825
+ tabWhammyDashSize: number;
6826
+ /**
6827
+ * The height of simple dip whammys when using the songbook mode.
6828
+ */
6829
+ songBookWhammyDipHeight: number;
6830
+ /**
6831
+ * The width of the lines drawn for dead slapped beats.
6832
+ */
6833
+ deadSlappedLineWidth: number;
6834
+ /**
6835
+ * The width of ties drawn for left-hand-tapped notes.
6836
+ */
6837
+ leftHandTabTieWidth: number;
6838
+ /**
6839
+ * The size of the dashes on bends (e.g. on holds)
6840
+ */
6841
+ tabBendDashSize: number;
6842
+ /**
6843
+ * The height applied per quarter-note.
6844
+ */
6845
+ tabBendPerValueHeight: number;
6846
+ /**
6847
+ * The padding applied between the line and text of bends.
6848
+ */
6849
+ tabBendLabelPadding: number;
6850
+ /**
6851
+ * The width of simple slides like slide out down which do slide to a defined target note.
6852
+ */
6853
+ simpleSlideWidth: number;
6854
+ /**
6855
+ * The height of simple slides like slide out down which do slide to a defined target note.
6856
+ */
6857
+ simpleSlideHeight: number;
6858
+ /**
6859
+ * The horizontal padding applied to individual chord diagrams.
6860
+ */
6861
+ chordDiagramPaddingX: number;
6862
+ /**
6863
+ * The vertical padding applied to individual chord diagrams.
6864
+ */
6865
+ chordDiagramPaddingY: number;
6866
+ /**
6867
+ * The spacing between strings on chord diagrams.
6868
+ */
6869
+ chordDiagramStringSpacing: number;
6870
+ /**
6871
+ * The spacing between frets on chord diagrams.
6872
+ */
6873
+ chordDiagramFretSpacing: number;
6874
+ /**
6875
+ * The height of the nut on chord diagrams..
6876
+ */
6877
+ chordDiagramNutHeight: number;
6878
+ /**
6879
+ * The height of the individual fret lines.
6880
+ */
6881
+ chordDiagramFretHeight: number;
6882
+ /**
6883
+ * The width of all other lines drawn on chord diagrams.
6884
+ */
6885
+ chordDiagramLineWidth: number;
6886
+ /**
6887
+ * The padding between the bracket lines and numbers of tuplets
6888
+ */
6889
+ tripletFeelBracketPadding: number;
6890
+ /**
6891
+ * The horizontal padding between individual accidentals when multiple ones are applied.
6892
+ */
6893
+ accidentalPadding: number;
6894
+ /**
6895
+ * The padding between glyphs shown before any beats e.g. clefs and time signatures
6896
+ */
6897
+ preBeatGlyphSpacing: number;
6898
+ /**
6899
+ * The relative scale of the note drawn on tempo markers
6900
+ */
6901
+ tempoNoteScale: number;
6902
+ /**
6903
+ * The scale of string numbers shown on tuning glyphs.
6904
+ */
6905
+ tuningGlyphCircleNumberScale: number;
6906
+ /**
6907
+ * The scale factor applied to the width of the columns of string on tuning glyphs.
6908
+ */
6909
+ tuningGlyphStringColumnScale: number;
6910
+ /**
6911
+ * The padding between rows of strings on tuning glyphs.
6912
+ */
6913
+ tuningGlyphStringRowPadding: number;
6914
+ /**
6915
+ * The relative scale of any directions glyphs drawn like coda or segno.
6916
+ */
6917
+ directionsScale: number;
6918
+ static readonly bravuraMetadata: SmuflMetadata;
6919
+ }
6920
+
6921
+ /**
6922
+ * This class holds all all spacing, thickness and scaling metrics
6923
+ * related to engraving the music notation.
6924
+ *
6925
+ * @remarks
6926
+ * While general layout settings are configurable via the display settings,
6927
+ * these settings go deeper into how the individual music symbols are scaled and aligned targeting
6928
+ * specification compliance with the Standard Music Font Layout (SMuFL).
6929
+ *
6930
+ * Unless specified differently the settings here are available {@since 1.7.0}
6931
+ *
6932
+ * If properties are marked with a SMuFl tag, it means that the values are part of the SMuFL specification
6933
+ * and should be filled from the respective metadata files shipped with the fonts or aligned generally with the specification.
6934
+ * Other properties are custom to alphaTab.
6935
+ *
6936
+ * In SmuFL Sizes and coordinates are expressed in "staff space" units which is 1/4 of the configured font size. In this data structure
6937
+ * the values are converted to pixels.
6938
+ *
6939
+ * @json
6940
+ * @json_declaration
6941
+ * @cloneable
6942
+ * @target web
6943
+ */
6944
+ declare interface EngravingSettingsJson {
6945
+ /**
6946
+ * The font size of the music font in pixel.
6947
+ */
6948
+ musicFontSize?: number;
6949
+ /**
6950
+ * The staff space in pixel
6951
+ * @smufl 1.4
6952
+ */
6953
+ oneStaffSpace?: number;
6954
+ /**
6955
+ * The staff space in pixel for tablature fonts. This is typically 1.5 of the standard staff space.
6956
+ * @smufl 1.4
6957
+ */
6958
+ tabLineSpacing?: number;
6959
+ /**
6960
+ * The thickness of the line used for the shaft of an arrow
6961
+ * @smufl 1.4
6962
+ */
6963
+ arrowShaftThickness?: number;
6964
+ /**
6965
+ * The default distance between multiple thin barlines when locked together, e.g. between two thin barlines making a double barline, measured from the right-hand edge of the left barline to the left-hand edge of the right barline.
6966
+ * @smufl 1.4
6967
+ */
6968
+ barlineSeparation?: number;
6969
+ /**
6970
+ * The distance between the inner edge of the primary and outer edge of subsequent secondary beams
6971
+ * @smufl 1.4
6972
+ */
6973
+ beamSpacing?: number;
6974
+ /**
6975
+ * The thickness of a beam
6976
+ * @smufl 1.4
6977
+ */
6978
+ beamThickness?: number;
6979
+ /**
6980
+ * The thickness of the vertical line of a bracket grouping staves together
6981
+ * @smufl 1.4
6982
+ */
6983
+ bracketThickness?: number;
6984
+ /**
6985
+ * The length of the dashes to be used in a dashed barline
6986
+ * @smufl 1.4
6987
+ */
6988
+ dashedBarlineDashLength?: number;
6989
+ /**
6990
+ * The length of the gap between dashes in a dashed barline
6991
+ */
6992
+ dashedBarlineGapLength?: number;
6993
+ /**
6994
+ * The thickness of a dashed barline
6995
+ * @smufl 1.4
6996
+ */
6997
+ dashedBarlineThickness?: number;
6998
+ /**
6999
+ * The thickness of a crescendo/diminuendo hairpin
7000
+ * @smufl 1.4
7001
+ */
7002
+ hairpinThickness?: number;
7003
+ /**
7004
+ * The thickness of a leger line (normally somewhat thicker than a staff line)
7005
+ * @smufl 1.4
7006
+ */
7007
+ legerLineThickness?: number;
7008
+ /**
7009
+ * The amount by which a leger line should extend either side of a notehead, scaled proportionally with the notehead's size, e.g. when scaled down as a grace note
7010
+ * @smufl 1.4
7011
+ */
7012
+ legerLineExtension?: number;
7013
+ /**
7014
+ * The thickness of the dashed line used for an octave line
7015
+ * @smufl 1.4
7016
+ */
7017
+ octaveLineThickness?: number;
7018
+ /**
7019
+ * The thickness of the line used for piano pedaling
7020
+ * @smufl 1.4
7021
+ */
7022
+ pedalLineThickness?: number;
7023
+ /**
7024
+ * The default horizontal distance between the dots and the inner barline of a repeat barline, measured from the edge of the dots to the edge of the barline.
7025
+ * @smufl 1.4
7026
+ */
7027
+ repeatBarlineDotSeparation?: number;
7028
+ /**
7029
+ * The thickness of the brackets drawn to indicate repeat endings
7030
+ * @smufl 1.4
7031
+ */
7032
+ repeatEndingLineThickness?: number;
7033
+ /**
7034
+ * The thickness of the mid-point of a slur (i.e. its thickest point)
7035
+ * @smufl 1.4
7036
+ */
7037
+ slurMidpointThickness?: number;
7038
+ /**
7039
+ * The thickness of each staff line
7040
+ * @smufl 1.4
7041
+ */
7042
+ staffLineThickness?: number;
7043
+ /**
7044
+ * The thickness of a stem
7045
+ * @smufl 1.4
7046
+ */
7047
+ stemThickness?: number;
7048
+ /**
7049
+ * The thickness of a thick barline, e.g. in a final barline or a repeat barline
7050
+ * @smufl 1.4
7051
+ */
7052
+ thickBarlineThickness?: number;
7053
+ /**
7054
+ * The thickness of a dashed barline
7055
+ * @smufl 1.4
7056
+ */
7057
+ thinBarlineThickness?: number;
7058
+ /**
7059
+ * The default distance between a pair of thin and thick barlines when locked together, e.g. between the thin and thick barlines making a final barline, or between the thick and thin barlines making a start repeat barline.
7060
+ * @smufl 1.4
7061
+ */
7062
+ thinThickBarlineSeparation?: number;
7063
+ /**
7064
+ * The thickness of the mid-point of a tie
7065
+ * @smufl 1.4
7066
+ */
7067
+ tieMidpointThickness?: number;
7068
+ /**
7069
+ * The thickness of the brackets drawn either side of tuplet numbers
7070
+ * @smufl 1.4
7071
+ */
7072
+ tupletBracketThickness?: number;
7073
+ /**
7074
+ * Holds information about where to place upwards pointing stems on glyphs.
7075
+ * @smufl 1.4
7076
+ */
7077
+ stemUp?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, EngravingStemInfoJson>;
7078
+ /**
7079
+ * Holds information about where to place downwards pointing stems on glyphs.
7080
+ * @smufl 1.4
7081
+ */
7082
+ stemDown?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, EngravingStemInfoJson>;
7083
+ /**
7084
+ * Holds the x-coordinate offsets for glyphs which are drawn repeatedly (like vibrato waves).
7085
+ * @smufl 1.4
7086
+ */
7087
+ repeatOffsetX?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, number>;
7088
+ /**
7089
+ * The standard stem length of a quarter note.
7090
+ * @smufl 1.4
7091
+ */
7092
+ standardStemLength?: number;
7093
+ /**
7094
+ * The additional offsets stems need to have enough space for flags.
7095
+ * @smufl 1.4
7096
+ */
7097
+ stemFlagOffsets?: Map<Duration | keyof typeof Duration | Lowercase<keyof typeof Duration>, number>;
7098
+ /**
7099
+ * A lookup containing the offset from the visual top to the glyph center.
7100
+ * The glyph center is the origin coordinate at which the glyph paths start when drawn on the alphabetic baseline.
7101
+ * @smufl 1.4
7102
+ */
7103
+ glyphTop?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, number>;
7104
+ /**
7105
+ * A lookup containing the offset from the glyph center to the visual bottom of the glyph.
7106
+ * The glyph center is the origin coordinate at which the glyph paths start when drawn on the alphabetic baseline.
7107
+ * @smufl 1.4
7108
+ */
7109
+ glyphBottom?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, number>;
7110
+ /**
7111
+ * A lookup for the widths of the visual bounding box for the glyphs.
7112
+ * @smufl 1.4
7113
+ */
7114
+ glyphWidths?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, number>;
7115
+ /**
7116
+ * A lookup for the heights of the visual bounding box for the glyphs.
7117
+ * @smufl 1.4
7118
+ */
7119
+ glyphHeights?: Map<MusicFontSymbol | keyof typeof MusicFontSymbol | Lowercase<keyof typeof MusicFontSymbol>, number>;
7120
+ /**
7121
+ * The size of the bars drawn in numbered notation to indicate the durations.
7122
+ */
7123
+ numberedBarRendererBarSize?: number;
7124
+ /**
7125
+ * The spacing between the bars drawn in numbered notation to indicate the durations.
7126
+ */
7127
+ numberedBarRendererBarSpacing?: number;
7128
+ /**
7129
+ * The size of the dashed drawn in numbered notation to indicate the durations.
7130
+ */
7131
+ numberedDashGlyphPadding?: number;
7132
+ /**
7133
+ * The width of the dashed drawn in numbered notation to indicate the durations.
7134
+ */
7135
+ numberedDashGlyphWidth?: number;
7136
+ /**
7137
+ * The gap between dashes on line ranged glyphs (like let-ring)
7138
+ */
7139
+ lineRangedGlyphDashGap?: number;
7140
+ /**
7141
+ * The size between dashes on line ranged glyphs (like let-ring)
7142
+ */
7143
+ lineRangedGlyphDashSize?: number;
7144
+ /**
7145
+ * The padding between effects and glyphs placed before the note heads, e.g. accidentals or brushes
7146
+ */
7147
+ preNoteEffectPadding?: number;
7148
+ /**
7149
+ * The padding between effects and glyphs placed after the note heads, e.g. slides or bends
7150
+ */
7151
+ postNoteEffectPadding?: number;
7152
+ /**
7153
+ * The padding between effects and glyphs placed above/blow the note heads e.g. staccato
7154
+ */
7155
+ onNoteEffectPadding?: number;
7156
+ /**
7157
+ * The padding between the circles around string numbers.
7158
+ */
7159
+ stringNumberCirclePadding?: number;
7160
+ /**
7161
+ * The outer padding for glyphs arranged in a grid like fashion, like the tunings and chord diagrams.
7162
+ */
7163
+ rowContainerPadding?: number;
7164
+ /**
7165
+ * The innter gap for glyphs arranged in a grid like fashion, like the tunings and chord diagrams.
7166
+ */
7167
+ rowContainerGap?: number;
7168
+ /**
7169
+ * The padding used for aligning the alternate ending brackets and texts.
7170
+ */
7171
+ alternateEndingsPadding?: number;
7172
+ /**
7173
+ * The padding between the sustain pedal glyphs and lines.
7174
+ */
7175
+ sustainPedalLinePadding?: number;
7176
+ /**
7177
+ * The height of ties.
7178
+ */
7179
+ tieHeight?: number;
7180
+ /**
7181
+ * The padding between the border and text of beat timers.
7182
+ */
7183
+ beatTimerPadding?: number;
7184
+ /**
7185
+ * The additional padding applied to helper note heads shown on bends.
7186
+ */
7187
+ bendNoteHeadElementPadding?: number;
7188
+ /**
7189
+ * The width of the parenthesis shown on ghost notes and free time time signatures.
7190
+ */
7191
+ ghostParenthesisWidth?: number;
7192
+ /**
7193
+ * The padding between the parenthesis and wrapped elements on ghost notes and free time time signatures
7194
+ */
7195
+ ghostParenthesisPadding?: number;
7196
+ /**
7197
+ * The width of broken beams e.g. when combining a 32nd and 16th note
7198
+ */
7199
+ brokenBeamWidth?: number;
7200
+ /**
7201
+ * The padding between the text and whammy lines.
7202
+ */
7203
+ tabWhammyTextPadding?: number;
7204
+ /**
7205
+ * The height applied per half-note whammy.
7206
+ */
7207
+ tabWhammyPerHalfHeight?: number;
7208
+ /**
7209
+ * The size of the dashes on whammys (e.g. on holds)
7210
+ */
7211
+ tabWhammyDashSize?: number;
7212
+ /**
7213
+ * The height of simple dip whammys when using the songbook mode.
7214
+ */
7215
+ songBookWhammyDipHeight?: number;
7216
+ /**
7217
+ * The width of the lines drawn for dead slapped beats.
7218
+ */
7219
+ deadSlappedLineWidth?: number;
7220
+ /**
7221
+ * The width of ties drawn for left-hand-tapped notes.
7222
+ */
7223
+ leftHandTabTieWidth?: number;
7224
+ /**
7225
+ * The size of the dashes on bends (e.g. on holds)
7226
+ */
7227
+ tabBendDashSize?: number;
7228
+ /**
7229
+ * The height applied per quarter-note.
7230
+ */
7231
+ tabBendPerValueHeight?: number;
7232
+ /**
7233
+ * The padding applied between the line and text of bends.
7234
+ */
7235
+ tabBendLabelPadding?: number;
7236
+ /**
7237
+ * The width of simple slides like slide out down which do slide to a defined target note.
7238
+ */
7239
+ simpleSlideWidth?: number;
7240
+ /**
7241
+ * The height of simple slides like slide out down which do slide to a defined target note.
7242
+ */
7243
+ simpleSlideHeight?: number;
7244
+ /**
7245
+ * The horizontal padding applied to individual chord diagrams.
7246
+ */
7247
+ chordDiagramPaddingX?: number;
7248
+ /**
7249
+ * The vertical padding applied to individual chord diagrams.
7250
+ */
7251
+ chordDiagramPaddingY?: number;
7252
+ /**
7253
+ * The spacing between strings on chord diagrams.
7254
+ */
7255
+ chordDiagramStringSpacing?: number;
7256
+ /**
7257
+ * The spacing between frets on chord diagrams.
7258
+ */
7259
+ chordDiagramFretSpacing?: number;
7260
+ /**
7261
+ * The height of the nut on chord diagrams..
7262
+ */
7263
+ chordDiagramNutHeight?: number;
7264
+ /**
7265
+ * The height of the individual fret lines.
7266
+ */
7267
+ chordDiagramFretHeight?: number;
7268
+ /**
7269
+ * The width of all other lines drawn on chord diagrams.
7270
+ */
7271
+ chordDiagramLineWidth?: number;
7272
+ /**
7273
+ * The padding between the bracket lines and numbers of tuplets
7274
+ */
7275
+ tripletFeelBracketPadding?: number;
7276
+ /**
7277
+ * The horizontal padding between individual accidentals when multiple ones are applied.
7278
+ */
7279
+ accidentalPadding?: number;
7280
+ /**
7281
+ * The padding between glyphs shown before any beats e.g. clefs and time signatures
7282
+ */
7283
+ preBeatGlyphSpacing?: number;
7284
+ /**
7285
+ * The relative scale of the note drawn on tempo markers
7286
+ */
7287
+ tempoNoteScale?: number;
7288
+ /**
7289
+ * The scale of string numbers shown on tuning glyphs.
7290
+ */
7291
+ tuningGlyphCircleNumberScale?: number;
7292
+ /**
7293
+ * The scale factor applied to the width of the columns of string on tuning glyphs.
7294
+ */
7295
+ tuningGlyphStringColumnScale?: number;
7296
+ /**
7297
+ * The padding between rows of strings on tuning glyphs.
7298
+ */
7299
+ tuningGlyphStringRowPadding?: number;
7300
+ /**
7301
+ * The relative scale of any directions glyphs drawn like coda or segno.
7302
+ */
7303
+ directionsScale?: number;
7304
+ }
7305
+
7306
+ /**
7307
+ * @json
7308
+ * @json_declaration
7309
+ */
7310
+ export declare class EngravingStemInfo {
7311
+ /**
7312
+ * The top Y coordinate where the stem should start/end.
7313
+ */
7314
+ topY: number;
7315
+ /**
7316
+ * The bottom Y coordinate where the stem should start/end.
7317
+ */
7318
+ bottomY: number;
7319
+ /**
7320
+ * The x-coordinate of the stem.
7321
+ */
7322
+ x: number;
7323
+ }
7324
+
7325
+ /**
7326
+ * @json
7327
+ * @json_declaration
7328
+ * @target web
7329
+ */
7330
+ declare interface EngravingStemInfoJson {
7331
+ /**
7332
+ * The top Y coordinate where the stem should start/end.
7333
+ */
7334
+ topY?: number;
7335
+ /**
7336
+ * The bottom Y coordinate where the stem should start/end.
7337
+ */
7338
+ bottomY?: number;
7339
+ /**
7340
+ * The x-coordinate of the stem.
7341
+ */
7342
+ x?: number;
7343
+ }
7344
+
6503
7345
  /**
6504
7346
  * This public class represents the global alphaTab environment where
6505
7347
  * alphaTab looks for information like available layout engines
@@ -6517,7 +7359,6 @@ export declare class Environment {
6517
7359
  private static readonly StaffIdBeforeTabAlways;
6518
7360
  private static readonly StaffIdBeforeTabHideable;
6519
7361
  private static readonly StaffIdBeforeEndAlways;
6520
- /* Excluded from this release type: MusicFontSize */
6521
7362
  /* Excluded from this release type: HighDpiFactor */
6522
7363
  /**
6523
7364
  * @target web
@@ -6927,11 +7768,10 @@ declare class FontSizeDefinition {
6927
7768
  */
6928
7769
  characterWidths: Uint8Array;
6929
7770
  /**
6930
- * A factor to translate a given font size to an actual text height.
6931
- * This is not precise but just an estimation for reserving spaces.
7771
+ * The heights of each character starting with the ascii code 0x20 at index 0.
6932
7772
  */
6933
- fontSizeToHeight: number;
6934
- constructor(characterWidths: Uint8Array, fontSizeToHeight: number);
7773
+ characterHeights: Uint8Array;
7774
+ constructor(characterWidths: Uint8Array, characterHeights: Uint8Array);
6935
7775
  }
6936
7776
 
6937
7777
  /**
@@ -6995,8 +7835,9 @@ declare class Glyph {
6995
7835
  height: number;
6996
7836
  renderer: BarRendererBase;
6997
7837
  constructor(x: number, y: number);
7838
+ getBoundingBoxTop(): number;
6998
7839
  doLayout(): void;
6999
- paint(cx: number, cy: number, canvas: ICanvas): void;
7840
+ paint(_cx: number, _cy: number, _canvas: ICanvas): void;
7000
7841
  }
7001
7842
 
7002
7843
  /**
@@ -7004,8 +7845,9 @@ declare class Glyph {
7004
7845
  * drawn at the same x position
7005
7846
  */
7006
7847
  declare class GlyphGroup extends Glyph {
7007
- protected glyphs: Glyph[] | null;
7848
+ glyphs: Glyph[] | null;
7008
7849
  get isEmpty(): boolean;
7850
+ getBoundingBoxTop(): number;
7009
7851
  doLayout(): void;
7010
7852
  addGlyph(g: Glyph): void;
7011
7853
  paint(cx: number, cy: number, canvas: ICanvas): void;
@@ -8166,12 +9008,12 @@ declare class InstrumentArticulation {
8166
9008
  /**
8167
9009
  * Gets or sets where the technique symbol should be placed.
8168
9010
  */
8169
- techniqueSymbolPlacement: TextBaseline;
9011
+ techniqueSymbolPlacement: TechniqueSymbolPlacement;
8170
9012
  /**
8171
9013
  * Gets or sets which midi key to use when playing the note.
8172
9014
  */
8173
9015
  outputMidiNumber: number;
8174
- constructor(elementType?: string, staffLine?: number, outputMidiNumber?: number, noteHeadDefault?: MusicFontSymbol, noteHeadHalf?: MusicFontSymbol, noteHeadWhole?: MusicFontSymbol, techniqueSymbol?: MusicFontSymbol, techniqueSymbolPlacement?: TextBaseline);
9016
+ constructor(elementType?: string, staffLine?: number, outputMidiNumber?: number, noteHeadDefault?: MusicFontSymbol, noteHeadHalf?: MusicFontSymbol, noteHeadWhole?: MusicFontSymbol, techniqueSymbol?: MusicFontSymbol, techniqueSymbolPlacement?: TechniqueSymbolPlacement);
8175
9017
  getSymbol(duration: Duration): MusicFontSymbol;
8176
9018
  }
8177
9019
 
@@ -8701,6 +9543,8 @@ export declare namespace json {
8701
9543
  CoreSettingsJson,
8702
9544
  RenderingResourcesJson,
8703
9545
  DisplaySettingsJson,
9546
+ EngravingStemInfoJson,
9547
+ EngravingSettingsJson,
8704
9548
  ImporterSettingsJson,
8705
9549
  NotationSettingsJson,
8706
9550
  VibratoPlaybackSettingsJson,
@@ -9206,10 +10050,9 @@ declare class MasterBarBounds {
9206
10050
  /**
9207
10051
  * Tries to find a beat at the given location.
9208
10052
  * @param x The absolute X position where the beat spans across.
9209
- * @param y The absolute Y position where the beat spans across.
9210
10053
  * @returns The beat that spans across the given point, or null if none of the contained bars had a beat at this position.
9211
10054
  */
9212
- findBeatAtPos(x: number, y: number): Beat | null;
10055
+ findBeatAtPos(x: number): Beat | null;
9213
10056
  /**
9214
10057
  * Finishes the lookup object and optimizes itself for fast access.
9215
10058
  */
@@ -10083,11 +10926,22 @@ declare enum MusicFontSymbol {
10083
10926
  BracketBottom = 57348,
10084
10927
  SystemDivider = 57351,
10085
10928
  GClef = 57424,
10929
+ GClef15mb = 57425,
10930
+ GClef8vb = 57426,
10931
+ GClef8va = 57427,
10932
+ GClef15ma = 57428,
10086
10933
  CClef = 57436,
10934
+ CClef8vb = 57437,
10087
10935
  FClef = 57442,
10936
+ FClef15mb = 57443,
10937
+ FClef8vb = 57444,
10938
+ FClef8va = 57445,
10939
+ FClef15ma = 57446,
10088
10940
  UnpitchedPercussionClef1 = 57449,
10089
10941
  SixStringTabClef = 57453,
10090
10942
  FourStringTabClef = 57454,
10943
+ Clef8 = 57469,
10944
+ Clef15 = 57470,
10091
10945
  TimeSig0 = 57472,
10092
10946
  TimeSig1 = 57473,
10093
10947
  TimeSig2 = 57474,
@@ -10154,7 +11008,7 @@ declare enum MusicFontSymbol {
10154
11008
  NoteheadCircleSlash = 57591,
10155
11009
  NoteheadHeavyX = 57592,
10156
11010
  NoteheadHeavyXHat = 57593,
10157
- NoteheadSlashVerticalEnds = 57600,
11011
+ NoteheadSlashHorizontalEnds = 57601,
10158
11012
  NoteheadSlashWhiteWhole = 57602,
10159
11013
  NoteheadSlashWhiteHalf = 57603,
10160
11014
  NoteheadRoundWhiteWithDot = 57621,
@@ -10181,7 +11035,13 @@ declare enum MusicFontSymbol {
10181
11035
  NoteShapeTriangleRoundWhite = 57790,
10182
11036
  NoteShapeTriangleRoundBlack = 57791,
10183
11037
  NoteQuarterUp = 57813,
10184
- NoteEighthUp = 57815,
11038
+ Note8thUp = 57815,
11039
+ MetNoteQuarterUp = 60581,
11040
+ MetNote8thUp = 60583,
11041
+ MetAugmentationDot = 60599,
11042
+ ArrowheadBlackUp = 60280,
11043
+ ArrowheadBlackDown = 60284,
11044
+ AugmentationDot = 57831,
10185
11045
  TextBlackNoteLongStem = 57841,
10186
11046
  TextBlackNoteFrac8thLongStem = 57843,
10187
11047
  TextBlackNoteFrac16thLongStem = 57845,
@@ -10196,26 +11056,27 @@ declare enum MusicFontSymbol {
10196
11056
  Tremolo3 = 57890,
10197
11057
  Tremolo2 = 57889,
10198
11058
  Tremolo1 = 57888,
10199
- FlagEighthUp = 57920,
10200
- FlagEighthDown = 57921,
10201
- FlagSixteenthUp = 57922,
10202
- FlagSixteenthDown = 57923,
10203
- FlagThirtySecondUp = 57924,
10204
- FlagThirtySecondDown = 57925,
10205
- FlagSixtyFourthUp = 57926,
10206
- FlagSixtyFourthDown = 57927,
10207
- FlagOneHundredTwentyEighthUp = 57928,
10208
- FlagOneHundredTwentyEighthDown = 57929,
10209
- FlagTwoHundredFiftySixthUp = 57930,
10210
- FlagTwoHundredFiftySixthDown = 57931,
11059
+ Flag8thUp = 57920,
11060
+ Flag8thDown = 57921,
11061
+ Flag16thUp = 57922,
11062
+ Flag16thDown = 57923,
11063
+ Flag32ndUp = 57924,
11064
+ Flag32ndDown = 57925,
11065
+ Flag64thUp = 57926,
11066
+ Flag64thDown = 57927,
11067
+ Flag128thUp = 57928,
11068
+ Flag128thDown = 57929,
11069
+ Flag256thUp = 57930,
11070
+ Flag256thDown = 57931,
10211
11071
  AccidentalFlat = 57952,
10212
11072
  AccidentalNatural = 57953,
10213
11073
  AccidentalSharp = 57954,
10214
11074
  AccidentalDoubleSharp = 57955,
10215
11075
  AccidentalDoubleFlat = 57956,
10216
11076
  AccidentalQuarterToneFlatArrowUp = 57968,
10217
- AccidentalQuarterToneSharpArrowUp = 57972,
10218
- AccidentalQuarterToneNaturalArrowUp = 57970,
11077
+ AccidentalQuarterToneSharpNaturalArrowUp = 57970,
11078
+ AccidentalThreeQuarterTonesSharpArrowUp = 57972,
11079
+ RepeatDot = 57412,
10219
11080
  Segno = 57415,
10220
11081
  Coda = 57416,
10221
11082
  ArticAccentAbove = 58528,
@@ -10234,12 +11095,12 @@ declare enum MusicFontSymbol {
10234
11095
  RestWhole = 58595,
10235
11096
  RestHalf = 58596,
10236
11097
  RestQuarter = 58597,
10237
- RestEighth = 58598,
10238
- RestSixteenth = 58599,
10239
- RestThirtySecond = 58600,
10240
- RestSixtyFourth = 58601,
10241
- RestOneHundredTwentyEighth = 58602,
10242
- RestTwoHundredFiftySixth = 58603,
11098
+ Rest8th = 58598,
11099
+ Rest16th = 58599,
11100
+ Rest32nd = 58600,
11101
+ Rest64th = 58601,
11102
+ Rest128th = 58602,
11103
+ Rest256th = 58603,
10243
11104
  RestHBarLeft = 58607,
10244
11105
  RestHBarMiddle = 58608,
10245
11106
  RestHBarRight = 58609,
@@ -10276,6 +11137,9 @@ declare enum MusicFontSymbol {
10276
11137
  DynamicRinforzando1 = 58684,
10277
11138
  DynamicRinforzando2 = 58685,
10278
11139
  DynamicForzando = 58677,
11140
+ DynamicCrescendoHairpin = 58686,
11141
+ GraceNoteSlashStemUp = 58724,
11142
+ GraceNoteSlashStemDown = 58725,
10279
11143
  OrnamentTrill = 58726,
10280
11144
  OrnamentTurn = 58727,
10281
11145
  OrnamentTurnInverted = 58728,
@@ -10302,12 +11166,41 @@ declare enum MusicFontSymbol {
10302
11166
  GuitarFadeIn = 59459,
10303
11167
  GuitarFadeOut = 59460,
10304
11168
  GuitarVolumeSwell = 59461,
11169
+ FretboardFilledCircle = 59480,
10305
11170
  FretboardX = 59481,
10306
11171
  FretboardO = 59482,
11172
+ Tuplet0 = 59520,
11173
+ Tuplet1 = 59521,
11174
+ Tuplet2 = 59522,
11175
+ Tuplet3 = 59523,
11176
+ Tuplet4 = 59524,
11177
+ Tuplet5 = 59525,
11178
+ Tuplet6 = 59526,
11179
+ Tuplet7 = 59527,
11180
+ Tuplet8 = 59528,
11181
+ Tuplet9 = 59529,
11182
+ TupletColon = 59530,
10307
11183
  WiggleTrill = 60068,
11184
+ GuitarVibratoStroke = 60082,
11185
+ GuitarWideVibratoStroke = 60083,
10308
11186
  WiggleVibratoMediumFast = 60126,
11187
+ WiggleSawtoothNarrow = 60090,
11188
+ WiggleSawtooth = 60091,
10309
11189
  OctaveBaselineM = 60565,
10310
- OctaveBaselineB = 60563
11190
+ OctaveBaselineB = 60563,
11191
+ GuitarLeftHandTapping = 59456,
11192
+ Fingering0 = 60688,
11193
+ Fingering1 = 60689,
11194
+ Fingering2 = 60690,
11195
+ Fingering3 = 60691,
11196
+ Fingering4 = 60692,
11197
+ Fingering5 = 60693,
11198
+ FingeringPLower = 60695,
11199
+ FingeringTLower = 60696,
11200
+ FingeringILower = 60697,
11201
+ FingeringMLower = 60698,
11202
+ FingeringALower = 60699,
11203
+ FingeringCLower = 60700
10311
11204
  }
10312
11205
 
10313
11206
  /**
@@ -11442,7 +12335,7 @@ declare class NoteBendEvent extends MidiEvent {
11442
12335
  */
11443
12336
  value: number;
11444
12337
  constructor(track: number, tick: number, channel: number, noteKey: number, value: number);
11445
- writeTo(s: IWriteable): void;
12338
+ writeTo(_s: IWriteable): void;
11446
12339
  }
11447
12340
 
11448
12341
  /**
@@ -11627,7 +12520,15 @@ declare enum NoteYPosition {
11627
12520
  /**
11628
12521
  * Gets the note y-position on the bottom of the note stem or tab number.
11629
12522
  */
11630
- BottomWithStem = 4
12523
+ BottomWithStem = 4,
12524
+ /**
12525
+ * The position where the upwards stem should be placed.
12526
+ */
12527
+ StemUp = 5,
12528
+ /**
12529
+ * The position where the downwards stem should be placed.
12530
+ */
12531
+ StemDown = 6
11631
12532
  }
11632
12533
 
11633
12534
  /**
@@ -12600,7 +13501,13 @@ export declare namespace rendering {
12600
13501
  export declare class RenderingResources {
12601
13502
  private static sansFont;
12602
13503
  private static serifFont;
12603
- /* Excluded from this release type: smuflFont */
13504
+ /* Excluded from this release type: smuflFontFamilyName */
13505
+ /**
13506
+ * The SMuFL Metrics to use for rendering music symbols.
13507
+ * @defaultValue `alphaTab`
13508
+ * @since 1.7.0
13509
+ */
13510
+ engravingSettings: EngravingSettings;
12604
13511
  /**
12605
13512
  * The font to use for displaying the songs copyright information in the header of the music sheet.
12606
13513
  * @defaultValue `bold 12px Arial, sans-serif`
@@ -12701,12 +13608,14 @@ export declare class RenderingResources {
12701
13608
  * The font to use for displaying finger information in the music sheet.
12702
13609
  * @defaultValue `14px Georgia, serif`
12703
13610
  * @since 0.9.6
13611
+ * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
12704
13612
  */
12705
13613
  fingeringFont: Font;
12706
13614
  /**
12707
13615
  * The font to use for displaying finger information when inline into the music sheet.
12708
13616
  * @defaultValue `12px Georgia, serif`
12709
13617
  * @since 1.4.0
13618
+ * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
12710
13619
  */
12711
13620
  inlineFingeringFont: Font;
12712
13621
  /**
@@ -12743,7 +13652,13 @@ export declare class RenderingResources {
12743
13652
  * @target web
12744
13653
  */
12745
13654
  declare interface RenderingResourcesJson {
12746
- /* Excluded from this release type: smuflFont */
13655
+ /* Excluded from this release type: smuflFontFamilyName */
13656
+ /**
13657
+ * The SMuFL Metrics to use for rendering music symbols.
13658
+ * @defaultValue `alphaTab`
13659
+ * @since 1.7.0
13660
+ */
13661
+ engravingSettings?: EngravingSettingsJson;
12747
13662
  /**
12748
13663
  * The font to use for displaying the songs copyright information in the header of the music sheet.
12749
13664
  * @defaultValue `bold 12px Arial, sans-serif`
@@ -12844,12 +13759,14 @@ declare interface RenderingResourcesJson {
12844
13759
  * The font to use for displaying finger information in the music sheet.
12845
13760
  * @defaultValue `14px Georgia, serif`
12846
13761
  * @since 0.9.6
13762
+ * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
12847
13763
  */
12848
13764
  fingeringFont?: FontJson;
12849
13765
  /**
12850
13766
  * The font to use for displaying finger information when inline into the music sheet.
12851
13767
  * @defaultValue `12px Georgia, serif`
12852
13768
  * @since 1.4.0
13769
+ * @deprecated Since 1.7.0 alphaTab uses the glyphs contained in the SMuFL font
12853
13770
  */
12854
13771
  inlineFingeringFont?: FontJson;
12855
13772
  /**
@@ -13079,7 +13996,6 @@ export declare class ResizeEventArgs {
13079
13996
  }
13080
13997
 
13081
13998
  declare class RowContainerGlyph extends GlyphGroup {
13082
- private static readonly Padding;
13083
13999
  private _rows;
13084
14000
  private _align;
13085
14001
  constructor(x: number, y: number, align?: TextAlign);
@@ -13684,6 +14600,90 @@ declare interface SlidePlaybackSettingsJson {
13684
14600
  shiftSlideDurationRatio?: number;
13685
14601
  }
13686
14602
 
14603
+ /**
14604
+ * https://w3c.github.io/smufl/latest/specification/engravingdefaults.html
14605
+ * @record
14606
+ */
14607
+ export declare interface SmuflEngravingDefaults {
14608
+ arrowShaftThickness: number;
14609
+ barlineSeparation: number;
14610
+ beamSpacing: number;
14611
+ beamThickness: number;
14612
+ bracketThickness: number;
14613
+ dashedBarlineDashLength: number;
14614
+ dashedBarlineGapLength: number;
14615
+ dashedBarlineThickness: number;
14616
+ hairpinThickness: number;
14617
+ legerLineExtension: number;
14618
+ legerLineThickness: number;
14619
+ lyricLineThickness: number;
14620
+ octaveLineThickness: number;
14621
+ pedalLineThickness: number;
14622
+ repeatBarlineDotSeparation: number;
14623
+ repeatEndingLineThickness: number;
14624
+ slurEndpointThickness: number;
14625
+ slurMidpointThickness: number;
14626
+ staffLineThickness: number;
14627
+ stemThickness: number;
14628
+ subBracketThickness: number;
14629
+ textEnclosureThickness: number;
14630
+ thickBarlineThickness: number;
14631
+ thinBarlineThickness: number;
14632
+ thinThickBarlineSeparation?: number;
14633
+ tieEndpointThickness: number;
14634
+ tieMidpointThickness: number;
14635
+ tupletBracketThickness: number;
14636
+ }
14637
+
14638
+ /**
14639
+ * https://w3c.github.io/smufl/latest/specification/glyphbboxes.html
14640
+ * @record
14641
+ */
14642
+ export declare interface SmuflGlyphBoundingBox {
14643
+ bBoxNE: [number, number];
14644
+ bBoxSW: [number, number];
14645
+ }
14646
+
14647
+ /**
14648
+ * https://w3c.github.io/smufl/latest/specification/glyphswithanchors.html#glyphswithanchors
14649
+ * @record
14650
+ */
14651
+ export declare interface SmuflGlyphWithAnchor {
14652
+ splitStemUpSE?: [number, number];
14653
+ splitStemUpSW?: [number, number];
14654
+ splitStemDownNE?: [number, number];
14655
+ splitStemDownNW?: [number, number];
14656
+ stemUpSE?: [number, number];
14657
+ stemDownNW?: [number, number];
14658
+ stemUpNW?: [number, number];
14659
+ stemDownSW?: [number, number];
14660
+ nominalWidth?: [number, number];
14661
+ numeralTop?: [number, number];
14662
+ numeralBottom?: [number, number];
14663
+ cutOutNE?: [number, number];
14664
+ cutOutSE?: [number, number];
14665
+ cutOutSW?: [number, number];
14666
+ cutOutNW?: [number, number];
14667
+ graceNoteSlashSW?: [number, number];
14668
+ graceNoteSlashNE?: [number, number];
14669
+ graceNoteSlashNW?: [number, number];
14670
+ graceNoteSlashSE?: [number, number];
14671
+ repeatOffset?: [number, number];
14672
+ noteheadOrigin?: [number, number];
14673
+ opticalCenter?: [number, number];
14674
+ }
14675
+
14676
+ /**
14677
+ * The SmuFL Metadata object describing the structure needed by alphaTab.
14678
+ * https://w3c.github.io/smufl/latest/specification/font-specific-metadata.html
14679
+ * @record
14680
+ */
14681
+ export declare interface SmuflMetadata {
14682
+ engravingDefaults: SmuflEngravingDefaults;
14683
+ glyphBBoxes?: Record<string, SmuflGlyphBoundingBox>;
14684
+ glyphsWithAnchors: Record<string, SmuflGlyphWithAnchor>;
14685
+ }
14686
+
13687
14687
  declare class Spring {
13688
14688
  timePosition: number;
13689
14689
  longestDuration: number;
@@ -13837,9 +14837,6 @@ declare class StaffSystem {
13837
14837
  scaleToWidth(width: number): void;
13838
14838
  paint(cx: number, cy: number, canvas: ICanvas): void;
13839
14839
  paintPartial(cx: number, cy: number, canvas: ICanvas, startIndex: number, count: number): void;
13840
- private static readonly SystemSignSeparatorHeight;
13841
- private static readonly SystemSignSeparatorPadding;
13842
- private static readonly SystemSignSeparatorWidth;
13843
14840
  finalizeSystem(): void;
13844
14841
  buildBoundingsLookup(cx: number, cy: number): void;
13845
14842
  getBarX(index: number): number;
@@ -14093,7 +15090,7 @@ declare abstract class SystemBracket {
14093
15090
  width: number;
14094
15091
  index: number;
14095
15092
  abstract includesStaff(s: RenderStaff): boolean;
14096
- finalizeBracket(): void;
15093
+ finalizeBracket(smuflMetrics: EngravingSettings): void;
14097
15094
  }
14098
15095
 
14099
15096
  /**
@@ -14165,6 +15162,28 @@ export declare enum TabRhythmMode {
14165
15162
  Automatic = 3
14166
15163
  }
14167
15164
 
15165
+ /**
15166
+ * This public enum lists all base line modes
15167
+ */
15168
+ declare enum TechniqueSymbolPlacement {
15169
+ /**
15170
+ * Symbol is shown above
15171
+ */
15172
+ Above = 0,
15173
+ /**
15174
+ * Symbol is shown inside.
15175
+ */
15176
+ Inside = 1,
15177
+ /**
15178
+ * Symbol is shown below.
15179
+ */
15180
+ Below = 2,
15181
+ /**
15182
+ * Symbol is shown outside.
15183
+ */
15184
+ Outside = 3
15185
+ }
15186
+
14168
15187
  /**
14169
15188
  * Represents a change of the tempo in the song.
14170
15189
  */
@@ -14214,9 +15233,13 @@ declare enum TextBaseline {
14214
15233
  */
14215
15234
  Middle = 1,
14216
15235
  /**
14217
- * Text is aligend on the bottom.
15236
+ * Text is aligned on the bottom.
15237
+ */
15238
+ Bottom = 2,
15239
+ /**
15240
+ * Text is aligned on the alphabetic baseline.
14218
15241
  */
14219
- Bottom = 2
15242
+ Alphabetic = 3
14220
15243
  }
14221
15244
 
14222
15245
  declare class TextGlyph extends EffectGlyph {