@tspro/web-music-score 5.2.0 → 5.3.0

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.
@@ -229,8 +229,12 @@ declare enum Clef {
229
229
  type BaseConfig = {
230
230
  /** Name for this staff/tab config. */
231
231
  name?: string;
232
- /** Voice ids that are presented in this staff/tab. */
233
- voiceIds?: number[];
232
+ /** Voice id that is presented in this staff/tab. Single value or array.*/
233
+ voiceId?: VoiceId | VoiceId[];
234
+ /** @deprecated - Use `voiceId` instead. */
235
+ voiceIds?: VoiceId | VoiceId[];
236
+ /** Staves/tabs with same instrument name a re grouped together with left brace. */
237
+ instrument?: string;
234
238
  };
235
239
  /** Staff config to add staff notation line in score configuration. */
236
240
  type StaffConfig = BaseConfig & {
@@ -333,6 +337,11 @@ declare enum VerticalPosition {
333
337
  type StaffTabOrGroup = number | string;
334
338
  /** Staff/tab/group snglevalue or array of values. */
335
339
  type StaffTabOrGroups = StaffTabOrGroup | StaffTabOrGroup[];
340
+ /** Measure options. */
341
+ type MeasureOptions = {
342
+ /** show measure number? */
343
+ showNumber?: boolean;
344
+ };
336
345
  /** Options for notes/chords. */
337
346
  type NoteOptions = {
338
347
  /** Stem direction. */
@@ -513,9 +522,9 @@ declare class ObjAccidental extends MusicObject {
513
522
  constructor(parent: MusicObject, diatonicId: number, accidental: Accidental, color?: string);
514
523
  getMusicInterface(): MAccidental;
515
524
  pick(x: number, y: number): MusicObject[];
516
- layout(renderer: Renderer): void;
525
+ layout(ctx: RenderContext): void;
517
526
  offset(dx: number, dy: number): void;
518
- draw(renderer: Renderer): void;
527
+ draw(ctx: RenderContext): void;
519
528
  }
520
529
 
521
530
  type BoxType = "square" | "rectangle" | "circle" | "ellipse";
@@ -551,9 +560,9 @@ declare class ObjText extends MusicObject {
551
560
  updateAnchorX(anchorX: number): void;
552
561
  updateAnchorY(anchorY: number): void;
553
562
  pick(x: number, y: number): MusicObject[];
554
- layout(renderer: Renderer): void;
563
+ layout(ctx: RenderContext): void;
555
564
  offset(dx: number, dy: number): void;
556
- draw(renderer: Renderer): void;
565
+ draw(ctx: RenderContext): void;
557
566
  }
558
567
 
559
568
  type NotationLineObject = {
@@ -562,29 +571,31 @@ type NotationLineObject = {
562
571
  offsetInPlace?: (dx: number, dy: number) => void;
563
572
  };
564
573
  declare abstract class ObjNotationLine extends MusicObject {
574
+ readonly row: ObjScoreRow;
565
575
  protected readonly objects: NotationLineObject[];
566
576
  abstract readonly id: number;
567
577
  abstract readonly name: string;
568
578
  private layoutGroups;
569
- constructor(parent: MusicObject);
579
+ constructor(row: ObjScoreRow);
570
580
  addObject(o: NotationLineObject): void;
571
581
  removeObjects(): void;
572
582
  getLayoutGroup(lauoutGroupId: LayoutGroupId): LayoutGroup;
573
- resetLayoutGroups(renderer: Renderer): void;
574
- layoutLayoutGroups(renderer: Renderer): void;
583
+ resetLayoutGroups(ctx: RenderContext): void;
584
+ layoutLayoutGroups(ctx: RenderContext): void;
575
585
  private setObjectY;
576
586
  private alignObjectsY;
577
- layoutLayoutGroup(renderer: Renderer, layoutGroup: LayoutGroup, verticalPos: VerticalPos): void;
587
+ layoutLayoutGroup(ctx: RenderContext, layoutGroup: LayoutGroup, verticalPos: VerticalPos): void;
588
+ abstract getConfig(): StaffConfig | TabConfig;
578
589
  abstract calcTop(): number;
579
590
  abstract calcBottom(): number;
580
591
  abstract getTopLineY(): number;
581
592
  abstract getBottomLineY(): number;
582
593
  abstract containsVoiceId(voiceId: number): boolean;
583
594
  abstract containsDiatonicId(diatonicId: number): boolean;
584
- abstract layoutWidth(renderer: Renderer): void;
585
- abstract layoutHeight(renderer: Renderer): void;
595
+ abstract layoutWidth(ctx: RenderContext): void;
596
+ abstract layoutHeight(ctx: RenderContext): void;
586
597
  abstract offset(dx: number, dy: number): void;
587
- abstract draw(renderer: Renderer): void;
598
+ abstract draw(ctx: RenderContext): void;
588
599
  }
589
600
  declare class ObjStaff extends ObjNotationLine {
590
601
  readonly row: ObjScoreRow;
@@ -605,6 +616,7 @@ declare class ObjStaff extends ObjNotationLine {
605
616
  getMusicInterface(): MStaff;
606
617
  get isOctaveDown(): boolean;
607
618
  get name(): string;
619
+ getConfig(): StaffConfig | TabConfig;
608
620
  getTopLineY(): number;
609
621
  getMiddleLineY(): number;
610
622
  getBottomLineY(): number;
@@ -617,14 +629,14 @@ declare class ObjStaff extends ObjNotationLine {
617
629
  getDiatonicIdAt(y: number): number | undefined;
618
630
  isLine(diatonicId: number): boolean;
619
631
  isSpace(diatonicId: number): boolean;
620
- containsVoiceId(voiceId: number): boolean;
632
+ containsVoiceId(voiceId: VoiceId): boolean;
621
633
  calcTop(): number;
622
634
  calcBottom(): number;
623
635
  pick(x: number, y: number): MusicObject[];
624
- layoutHeight(renderer: Renderer): void;
625
- layoutWidth(renderer: Renderer): void;
636
+ layoutHeight(ctx: RenderContext): void;
637
+ layoutWidth(ctx: RenderContext): void;
626
638
  offset(dx: number, dy: number): void;
627
- draw(renderer: Renderer): void;
639
+ draw(ctx: RenderContext): void;
628
640
  }
629
641
  declare class ObjTab extends ObjNotationLine {
630
642
  readonly row: ObjScoreRow;
@@ -638,6 +650,7 @@ declare class ObjTab extends ObjNotationLine {
638
650
  constructor(row: ObjScoreRow, tabConfig: TabConfig, id: number);
639
651
  getMusicInterface(): MTab;
640
652
  get name(): string;
653
+ getConfig(): StaffConfig | TabConfig;
641
654
  getTuningName(): string | undefined;
642
655
  getTuningStrings(): ReadonlyArray<Note>;
643
656
  /** Return Y coordinate of string. */
@@ -648,15 +661,15 @@ declare class ObjTab extends ObjNotationLine {
648
661
  getBottomLineY(): number;
649
662
  getTop(): number;
650
663
  getBottom(): number;
651
- containsVoiceId(voiceId: number): boolean;
664
+ containsVoiceId(voiceId: VoiceId): boolean;
652
665
  containsDiatonicId(diatonicId: number): boolean;
653
666
  calcTop(): number;
654
667
  calcBottom(): number;
655
668
  pick(x: number, y: number): MusicObject[];
656
- layoutHeight(renderer: Renderer): void;
657
- layoutWidth(renderer: Renderer): void;
669
+ layoutHeight(ctx: RenderContext): void;
670
+ layoutWidth(ctx: RenderContext): void;
658
671
  offset(dx: number, dy: number): void;
659
- draw(renderer: Renderer): void;
672
+ draw(ctx: RenderContext): void;
660
673
  }
661
674
 
662
675
  declare class ObjStaffNoteGroup extends MusicObject {
@@ -693,11 +706,12 @@ declare class ObjNoteGroup extends MusicObject {
693
706
  readonly col: ObjRhythmColumn;
694
707
  readonly voiceId: VoiceId;
695
708
  readonly notes: ReadonlyArray<Note>;
696
- readonly minDiatonicId: number;
697
- readonly maxDiatonicId: number;
698
- readonly ownDiatonicId: number;
699
- readonly ownStemDir: Stem.Up | Stem.Down;
700
- readonly ownString: StringNumber[];
709
+ readonly options?: NoteOptions | undefined;
710
+ readonly setDiatonicId: number;
711
+ readonly setStringsNumbers?: StringNumber[];
712
+ private runningDiatonicId;
713
+ private runningStemDir;
714
+ private runningStringNumbers;
701
715
  readonly color: string;
702
716
  readonly staccato: boolean;
703
717
  readonly diamond: boolean;
@@ -712,14 +726,18 @@ declare class ObjNoteGroup extends MusicObject {
712
726
  private readonly staffObjects;
713
727
  private readonly tabObjects;
714
728
  readonly mi: MNoteGroup;
715
- constructor(col: ObjRhythmColumn, voiceId: VoiceId, notes: ReadonlyArray<Note>, noteLength: NoteLength | NoteLengthStr, options?: NoteOptions, tupletRatio?: TupletRatio);
729
+ constructor(col: ObjRhythmColumn, voiceId: VoiceId, notes: ReadonlyArray<Note>, noteLength: NoteLength | NoteLengthStr, options?: NoteOptions | undefined, tupletRatio?: TupletRatio);
716
730
  getMusicInterface(): MNoteGroup;
717
731
  get doc(): ObjDocument;
718
732
  get measure(): ObjMeasure;
719
733
  get row(): ObjScoreRow;
734
+ get minDiatonicId(): number;
735
+ get maxDiatonicId(): number;
736
+ getDiatonicId(staff?: ObjStaff): number;
720
737
  get stemDir(): Stem.Up | Stem.Down;
721
738
  enableConnective(line: ObjNotationLine): boolean;
722
739
  startConnective(connectiveProps: ConnectiveProps): void;
740
+ updateRunningArguments(diatonicId: number, stemDir: Stem.Up | Stem.Down, stringNumbers: StringNumber[]): void;
723
741
  getStaticObjects(line: ObjNotationLine): ReadonlyArray<MusicObject>;
724
742
  pick(x: number, y: number): MusicObject[];
725
743
  getTopNote(): Note;
@@ -728,8 +746,8 @@ declare class ObjNoteGroup extends MusicObject {
728
746
  x: number;
729
747
  y: number;
730
748
  };
731
- getFretNumberString(noteIndex: number): number | undefined;
732
- getFretNumber(tabObj: ObjTabNoteGroup, noteIndex: number): number | undefined;
749
+ getFretNumberString(noteIndex: number): StringNumber | undefined;
750
+ getFretNumber(tab: ObjTab, noteIndex: number): number | undefined;
733
751
  private getNextNoteGroup;
734
752
  collectConnectiveProps(): void;
735
753
  removeConnectiveProps(): void;
@@ -743,7 +761,7 @@ declare class ObjNoteGroup extends MusicObject {
743
761
  y: number;
744
762
  stemHeight: number;
745
763
  } | undefined)[];
746
- getStemHeight(renderer: Renderer): number;
764
+ getStemHeight(ctx: RenderContext): number;
747
765
  hasBeamCount(): boolean;
748
766
  getLeftBeamCount(): number;
749
767
  getRightBeamCount(): number;
@@ -754,11 +772,11 @@ declare class ObjNoteGroup extends MusicObject {
754
772
  visibleInStaff(staff: ObjStaff): boolean;
755
773
  getPlayTicks(note: Note): number;
756
774
  updateAccidentalState(accState: AccidentalState): void;
757
- layout(renderer: Renderer, accState: AccidentalState): void;
775
+ layout(ctx: RenderContext, accState: AccidentalState): void;
758
776
  updateRect(): void;
759
777
  setStemTipY(staff: ObjStaff, stemTipY: number): void;
760
778
  offset(dx: number, dy: number): void;
761
- draw(renderer: Renderer): void;
779
+ draw(ctx: RenderContext): void;
762
780
  getDotVerticalDisplacement(staff: ObjStaff, diatonicId: number, stemDir: Stem): 1 | 0 | -1;
763
781
  static hasSameNotes(ng1: ObjNoteGroup, ng2: ObjNoteGroup): boolean;
764
782
  }
@@ -800,6 +818,7 @@ declare class ObjBeamGroup extends MusicObject {
800
818
  private readonly type;
801
819
  private readonly staffObjects;
802
820
  private constructor();
821
+ get stemDir(): Stem.Up | Stem.Down;
803
822
  private get showTupletRatio();
804
823
  static createBeam(noteGroups: ObjNoteGroup[]): boolean;
805
824
  static createOldStyleTriplet(symbols: RhythmSymbol[]): number;
@@ -814,13 +833,12 @@ declare class ObjBeamGroup extends MusicObject {
814
833
  getSymbols(): ReadonlyArray<RhythmSymbol>;
815
834
  getFirstSymbol(): RhythmSymbol | undefined;
816
835
  getLastSymbol(): RhythmSymbol | undefined;
817
- get stemDir(): Stem.Up | Stem.Down;
818
836
  get color(): string;
819
- layout(renderer: Renderer): void;
837
+ layout(ctx: RenderContext): void;
820
838
  updateRect(): void;
821
839
  updateStemTips(): void;
822
840
  offset(dx: number, dy: number): void;
823
- draw(renderer: Renderer): void;
841
+ draw(ctx: RenderContext): void;
824
842
  private setBeamCounts;
825
843
  private setTupletBeamCounts;
826
844
  }
@@ -840,22 +858,27 @@ declare class ObjStaffRest extends MusicObject {
840
858
  declare class ObjRest extends MusicObject {
841
859
  readonly col: ObjRhythmColumn;
842
860
  readonly voiceId: VoiceId;
843
- readonly ownStemDir: Stem.Up | Stem.Down;
844
- readonly ownDiatonicId: number;
861
+ readonly options?: RestOptions | undefined;
845
862
  readonly color: string;
846
863
  readonly hide: boolean;
847
864
  readonly oldStyleTriplet: boolean;
848
865
  readonly rhythmProps: RhythmProps;
866
+ static UndefinedDiatonicId: number;
867
+ readonly setDiatonicId: number;
868
+ private runningDiatonicId;
869
+ private runningStemDir;
849
870
  private beamGroup?;
850
871
  readonly staffObjects: ObjStaffRest[];
851
872
  readonly mi: MRest;
852
- constructor(col: ObjRhythmColumn, voiceId: VoiceId, noteLength: NoteLength | NoteLengthStr, options?: RestOptions, tupletRatio?: TupletRatio);
873
+ constructor(col: ObjRhythmColumn, voiceId: VoiceId, noteLength: NoteLength | NoteLengthStr, options?: RestOptions | undefined, tupletRatio?: TupletRatio);
853
874
  getMusicInterface(): MRest;
854
875
  get doc(): ObjDocument;
855
876
  get measure(): ObjMeasure;
856
877
  get row(): ObjScoreRow;
857
878
  get noteLength(): NoteLength;
879
+ getDiatonicId(staff?: ObjStaff): number;
858
880
  get stemDir(): Stem.Up | Stem.Down;
881
+ updateRunningArguments(diatonicId: number, stemDir: Stem.Up | Stem.Down, stringNumbers: StringNumber[]): void;
859
882
  getStaticObjects(line: ObjNotationLine): ReadonlyArray<MusicObject>;
860
883
  pick(x: number, y: number): MusicObject[];
861
884
  getBeamGroup(): ObjBeamGroup | undefined;
@@ -872,38 +895,32 @@ declare class ObjRest extends MusicObject {
872
895
  visibleInStaff(staff: ObjStaff): boolean;
873
896
  private getRestDotVerticalDisplacement;
874
897
  updateAccidentalState(accState: AccidentalState): void;
875
- layout(renderer: Renderer, accState: AccidentalState): void;
898
+ layout(ctx: RenderContext, accState: AccidentalState): void;
876
899
  updateRect(): void;
877
900
  offset(dx: number, dy: number): void;
878
- draw(renderer: Renderer): void;
901
+ draw(ctx: RenderContext): void;
879
902
  }
880
903
 
881
- declare class LyricsContainer {
882
- readonly col: ObjRhythmColumn;
883
- readonly lyricsObjects: ObjLyrics[];
884
- readonly rhythmProps: RhythmProps;
885
- constructor(col: ObjRhythmColumn, lyricsLength: NoteLength);
886
- addLyricsObject(lyricsObj: ObjLyrics): void;
887
- }
888
904
  declare class ObjLyrics extends MusicObject {
889
905
  readonly col: ObjRhythmColumn;
890
906
  readonly verse: VerseNumber;
891
907
  readonly line: ObjNotationLine;
892
908
  readonly vpos: VerticalPos;
893
909
  private nextLyricsObject?;
910
+ readonly rhythmProps: RhythmProps;
894
911
  private readonly color;
895
912
  private readonly hyphen?;
896
913
  private readonly text;
897
914
  readonly mi: MLyrics;
898
- constructor(col: ObjRhythmColumn, verse: VerseNumber, line: ObjNotationLine, vpos: VerticalPos, lyricsText: string, lyricsOptions?: LyricsOptions);
915
+ constructor(col: ObjRhythmColumn, verse: VerseNumber, line: ObjNotationLine, vpos: VerticalPos, lyricsLength: NoteLength, lyricsText: string, lyricsOptions?: LyricsOptions);
899
916
  getMusicInterface(): MLyrics;
900
917
  get measure(): ObjMeasure;
901
918
  getText(): string;
902
919
  setNextLyricsObject(lyricsObj: ObjLyrics): void;
903
920
  pick(x: number, y: number): MusicObject[];
904
- layout(renderer: Renderer): void;
921
+ layout(ctx: RenderContext): void;
905
922
  offset(dx: number, dy: number): void;
906
- draw(renderer: Renderer): void;
923
+ draw(ctx: RenderContext): void;
907
924
  }
908
925
 
909
926
  type ScorePlayerNote = {
@@ -917,7 +934,7 @@ declare class ObjRhythmColumn extends MusicObject {
917
934
  readonly measure: ObjMeasure;
918
935
  readonly positionTicks: number;
919
936
  private readonly voiceSymbol;
920
- private readonly lyricsContainerCache;
937
+ private readonly lyricsObject;
921
938
  private minDiatonicId?;
922
939
  private maxDiatonicId?;
923
940
  private staffMinDiatonicId;
@@ -953,18 +970,19 @@ declare class ObjRhythmColumn extends MusicObject {
953
970
  getArpeggioDir(): Arpeggio;
954
971
  setVoiceSymbol(voiceId: VoiceId, symbol: RhythmSymbol): void;
955
972
  getVoiceSymbol(voiceId: VoiceId): RhythmSymbol | undefined;
956
- getLyricsContainer(verse: VerseNumber, line: ObjNotationLine, vpos: VerticalPos, lyricsLength?: NoteLength): LyricsContainer | undefined;
973
+ getLyricsObject(verse: VerseNumber, line: ObjNotationLine, vpos: VerticalPos): ObjLyrics | undefined;
974
+ addLyricsObject(lyricsObj: ObjLyrics): void;
957
975
  getMinWidth(): number;
958
976
  setupNoteHeadDisplacements(): void;
959
977
  getNoteHeadDisplacement(noteGroup: ObjNoteGroup, note: Note): -1 | 0 | 1;
960
978
  isEmpty(): boolean;
961
979
  getPlayerNotes(): ScorePlayerNote[];
962
980
  requestLayout(): void;
963
- layout(renderer: Renderer, accState: AccidentalState): void;
981
+ layout(ctx: RenderContext, accState: AccidentalState): void;
964
982
  layoutDone(): void;
965
983
  updateRect(): void;
966
984
  offset(dx: number, dy: number): void;
967
- draw(renderer: Renderer): void;
985
+ draw(ctx: RenderContext): void;
968
986
  }
969
987
 
970
988
  type PlayerColumn = ObjRhythmColumn | ObjBarLineRight;
@@ -996,8 +1014,15 @@ declare enum BarLineType {
996
1014
  declare class ObjStaffTabBarLine extends MusicObject {
997
1015
  readonly barLine: ObjBarLine;
998
1016
  readonly line: ObjNotationLine;
999
- lineRects: DivRect[];
1000
- dotRects: DivRect[];
1017
+ verticalLines: {
1018
+ left: number;
1019
+ width: number;
1020
+ }[];
1021
+ dots: {
1022
+ x: number;
1023
+ y: number;
1024
+ r: number;
1025
+ }[];
1001
1026
  readonly mi: MStaffTabBarLine;
1002
1027
  constructor(barLine: ObjBarLine, line: ObjNotationLine);
1003
1028
  getMusicInterface(): MusicInterface;
@@ -1008,14 +1033,15 @@ declare class ObjStaffTabBarLine extends MusicObject {
1008
1033
  declare abstract class ObjBarLine extends MusicObject {
1009
1034
  readonly measure: ObjMeasure;
1010
1035
  protected staffTabObjects: ObjStaffTabBarLine[];
1036
+ protected staffTabObjectGroups: ObjStaffTabBarLine[][];
1011
1037
  protected barLineType: BarLineType;
1012
1038
  constructor(measure: ObjMeasure);
1013
1039
  abstract solveBarLineType(): BarLineType;
1014
1040
  pick(x: number, y: number): MusicObject[];
1015
- layout(renderer: Renderer): void;
1041
+ layout(ctx: RenderContext): void;
1016
1042
  updateRect(): void;
1017
1043
  offset(dx: number, dy: number): void;
1018
- draw(renderer: Renderer): void;
1044
+ draw(ctx: RenderContext): void;
1019
1045
  }
1020
1046
  declare class ObjBarLineLeft extends ObjBarLine {
1021
1047
  readonly mi: MBarLineLeft;
@@ -1034,7 +1060,6 @@ declare class ObjBarLineRight extends ObjBarLine {
1034
1060
 
1035
1061
  declare class ObjConnective extends MusicObject {
1036
1062
  readonly connectiveProps: ConnectiveProps;
1037
- readonly line: ObjNotationLine;
1038
1063
  readonly measure: ObjMeasure;
1039
1064
  private lx;
1040
1065
  private ly;
@@ -1045,6 +1070,7 @@ declare class ObjConnective extends MusicObject {
1045
1070
  private cp2x;
1046
1071
  private cp2y;
1047
1072
  private arcHeight;
1073
+ private readonly line;
1048
1074
  private readonly leftNoteGroup;
1049
1075
  private readonly leftNoteId;
1050
1076
  private readonly rightNoteGroup?;
@@ -1056,13 +1082,14 @@ declare class ObjConnective extends MusicObject {
1056
1082
  getMusicInterface(): MConnective;
1057
1083
  isInsideMeasure(): boolean;
1058
1084
  pick(x: number, y: number): MusicObject[];
1059
- layout(renderer: Renderer): void;
1085
+ layout(ctx: RenderContext): void;
1060
1086
  offset(dx: number, dy: number): void;
1061
- draw(renderer: Renderer): void;
1087
+ draw(ctx: RenderContext): void;
1062
1088
  }
1063
1089
 
1064
1090
  declare class ObjMeasure extends MusicObject {
1065
1091
  readonly row: ObjScoreRow;
1092
+ private readonly options;
1066
1093
  static readonly MinFlexContentWidth = 10;
1067
1094
  private prevMeasure;
1068
1095
  private nextMeasure;
@@ -1085,9 +1112,6 @@ declare class ObjMeasure extends MusicObject {
1085
1112
  private leftSolidAreaWidth;
1086
1113
  private minColumnsAreaWidth;
1087
1114
  private rightSolidAreaWidth;
1088
- private useDiatonicId;
1089
- private useStemDir;
1090
- private useString;
1091
1115
  private voiceSymbols;
1092
1116
  private lastAddedRhythmColumn?;
1093
1117
  private lastAddedRhythmSymbol?;
@@ -1104,7 +1128,7 @@ declare class ObjMeasure extends MusicObject {
1104
1128
  private staticObjectsCache;
1105
1129
  private lyricsObjectsCache;
1106
1130
  readonly mi: MMeasure;
1107
- constructor(row: ObjScoreRow);
1131
+ constructor(row: ObjScoreRow, options: MeasureOptions);
1108
1132
  getMusicInterface(): MMeasure;
1109
1133
  get doc(): ObjDocument;
1110
1134
  isPartialMeasure(): boolean;
@@ -1112,9 +1136,11 @@ declare class ObjMeasure extends MusicObject {
1112
1136
  resetPassCount(): void;
1113
1137
  incPassCount(): void;
1114
1138
  getPassCount(): number;
1115
- updateOwnDiatonicId(voiceId: number, setDiatonicId?: number): number;
1116
- updateOwnStemDir(symbol: RhythmSymbol, setStemDir?: Stem): Stem.Up | Stem.Down;
1117
- updateOwnString(symbol: RhythmSymbol, setString?: StringNumber[]): StringNumber[];
1139
+ updateRunningArguments(runningArgs?: {
1140
+ diatonicId: number;
1141
+ stemDir: Stem;
1142
+ stringNumbers: StringNumber[];
1143
+ }[]): void;
1118
1144
  pick(x: number, y: number): MusicObject[];
1119
1145
  getMeasureNumber(): number;
1120
1146
  getColumns(): ReadonlyArray<ObjRhythmColumn>;
@@ -1193,15 +1219,15 @@ declare class ObjMeasure extends MusicObject {
1193
1219
  getVoiceSymbols(voiceId: VoiceId): ReadonlyArray<RhythmSymbol>;
1194
1220
  completeRests(voiceId?: VoiceId | VoiceId[]): void;
1195
1221
  requestLayout(): void;
1196
- layout(renderer: Renderer): void;
1197
- layoutWidth(renderer: Renderer, width: number): void;
1198
- layoutConnectives(renderer: Renderer): void;
1199
- layoutBeams(renderer: Renderer): void;
1222
+ layout(ctx: RenderContext): void;
1223
+ layoutWidth(ctx: RenderContext, width: number): void;
1224
+ layoutConnectives(ctx: RenderContext): void;
1225
+ layoutBeams(ctx: RenderContext): void;
1200
1226
  alignStemsToBeams(): void;
1201
1227
  layoutDone(): void;
1202
1228
  updateRect(): void;
1203
1229
  offset(dx: number, dy: number): void;
1204
- draw(renderer: Renderer): void;
1230
+ draw(ctx: RenderContext): void;
1205
1231
  }
1206
1232
 
1207
1233
  declare class ObjScoreRow extends MusicObject {
@@ -1211,8 +1237,10 @@ declare class ObjScoreRow extends MusicObject {
1211
1237
  private nextRow?;
1212
1238
  private minWidth;
1213
1239
  private readonly notationLines;
1240
+ private readonly instrumentLineGroups;
1214
1241
  private readonly staves;
1215
1242
  private readonly tabs;
1243
+ private readonly instrumentNames;
1216
1244
  private readonly measures;
1217
1245
  private needLayout;
1218
1246
  readonly mi: MScoreRow;
@@ -1220,6 +1248,8 @@ declare class ObjScoreRow extends MusicObject {
1220
1248
  getMusicInterface(): MScoreRow;
1221
1249
  private createNotationLines;
1222
1250
  getNotationLines(): ReadonlyArray<ObjNotationLine>;
1251
+ getInstrumentLineGroups(): ReadonlyArray<ReadonlyArray<ObjNotationLine>>;
1252
+ findMatchingLine(line: ObjNotationLine): ObjNotationLine | undefined;
1223
1253
  getStaves(): ReadonlyArray<ObjStaff>;
1224
1254
  getTabs(): ReadonlyArray<ObjTab>;
1225
1255
  get hasStaff(): boolean;
@@ -1227,8 +1257,8 @@ declare class ObjScoreRow extends MusicObject {
1227
1257
  getTopStaff(): ObjStaff;
1228
1258
  getBottomStaff(): ObjStaff;
1229
1259
  getStaff(diatonicId: number): ObjStaff | undefined;
1230
- resetLayoutGroups(renderer: Renderer): void;
1231
- layoutLayoutGroups(renderer: Renderer): void;
1260
+ resetLayoutGroups(ctx: RenderContext): void;
1261
+ layoutLayoutGroups(ctx: RenderContext): void;
1232
1262
  pick(x: number, y: number): MusicObject[];
1233
1263
  getConnectivesContentRect(): DivRect;
1234
1264
  getDiatonicIdAt(y: number): number | undefined;
@@ -1241,21 +1271,23 @@ declare class ObjScoreRow extends MusicObject {
1241
1271
  getFirstMeasure(): ObjMeasure | undefined;
1242
1272
  getLastMeasure(): ObjMeasure | undefined;
1243
1273
  getMinWidth(): number;
1274
+ solveAutoStemDir(symbols: ReadonlyArray<RhythmSymbol>): Stem.Up | Stem.Down;
1275
+ getInstrumentNameWidth(ctx: RenderContext): number;
1244
1276
  requestLayout(): void;
1245
- layout(renderer: Renderer): void;
1246
- layoutWidth(renderer: Renderer, width: number): void;
1277
+ layout(ctx: RenderContext): void;
1278
+ layoutWidth(ctx: RenderContext, left: number, right: number): void;
1247
1279
  updateRect(): void;
1248
1280
  alignStemsToBeams(): void;
1249
- layoutSetNotationLines(renderer: Renderer): void;
1250
- layoutPadding(renderer: Renderer): void;
1281
+ layoutSetNotationLines(ctx: RenderContext): void;
1282
+ layoutPadding(ctx: RenderContext): void;
1251
1283
  layoutDone(): void;
1252
1284
  offset(dx: number, dy: number): void;
1253
- draw(renderer: Renderer): void;
1285
+ draw(ctx: RenderContext): void;
1254
1286
  }
1255
1287
 
1256
1288
  declare class ObjDocument extends MusicObject {
1257
1289
  private needLayout;
1258
- private renderer?;
1290
+ private ctx?;
1259
1291
  private readonly rows;
1260
1292
  private readonly measures;
1261
1293
  private measuresPerRow;
@@ -1270,7 +1302,7 @@ declare class ObjDocument extends MusicObject {
1270
1302
  setScoreConfiguration(config: StaffPreset | ScoreConfiguration): void;
1271
1303
  setMeasuresPerRow(measuresPerRow: number): void;
1272
1304
  addConnectiveProps(connectiveProps: ConnectiveProps): void;
1273
- setRenderer(renderer?: Renderer): void;
1305
+ setRenderContext(ctx?: RenderContext): void;
1274
1306
  setHeader(title?: string, composer?: string, arranger?: string): void;
1275
1307
  getTitle(): string | undefined;
1276
1308
  getComposer(): string | undefined;
@@ -1284,7 +1316,7 @@ declare class ObjDocument extends MusicObject {
1284
1316
  getRows(): ReadonlyArray<ObjScoreRow>;
1285
1317
  getMeasures(): ReadonlyArray<ObjMeasure>;
1286
1318
  requestNewRow(): void;
1287
- addMeasure(): ObjMeasure;
1319
+ addMeasure(measureOptions: MeasureOptions): ObjMeasure;
1288
1320
  addStaffGroup(groupName: string, layoutElements: number | string | (number | string)[], verticalPosition: VerticalPosition): void;
1289
1321
  getStaffGroup(groupName: string): StaffGroup | undefined;
1290
1322
  getVoiceSymbols(voiceId: VoiceId): ReadonlyArray<RhythmSymbol>;
@@ -1292,6 +1324,12 @@ declare class ObjDocument extends MusicObject {
1292
1324
  private forEachMeasure;
1293
1325
  resetMeasures(): void;
1294
1326
  updateCursorRect(cursorRect?: DivRect): void;
1327
+ getInstrumentGroupSize(ctx: RenderContext): {
1328
+ nameLeft: number;
1329
+ nameRight: number;
1330
+ braceLeft: number;
1331
+ braceRight: number;
1332
+ };
1295
1333
  requestLayout(): void;
1296
1334
  requestFullLayout(): void;
1297
1335
  layout(): void;
@@ -1304,16 +1342,15 @@ declare class ObjDocument extends MusicObject {
1304
1342
  }
1305
1343
 
1306
1344
  declare enum ImageAsset {
1307
- TrebleClefPng = 0,
1308
- BassClefPng = 1
1345
+ G_Clef = 0,
1346
+ F_Clef = 1
1309
1347
  }
1310
- declare class Renderer {
1348
+ declare class RenderContext {
1311
1349
  private readonly mi;
1312
1350
  readonly devicePixelRatio: number;
1313
1351
  readonly fontSize: number;
1314
1352
  readonly unitSize: number;
1315
- readonly lineWidth: number;
1316
- readonly beamThickness: number;
1353
+ readonly _lineWidth: number;
1317
1354
  private scoreEventListener?;
1318
1355
  private canvas?;
1319
1356
  private ctx?;
@@ -1329,8 +1366,8 @@ declare class Renderer {
1329
1366
  private onMouseMoveFn;
1330
1367
  private onMouseLeaveFn;
1331
1368
  private onTouchEndFn;
1332
- constructor(mi: MRenderer);
1333
- getMusicInterface(): MRenderer;
1369
+ constructor(mi: MRenderContext);
1370
+ getMusicInterface(): MRenderContext;
1334
1371
  get doc(): ObjDocument | undefined;
1335
1372
  private finishImageAsset;
1336
1373
  getImageAsset(imageAsset: ImageAsset): HTMLImageElement | undefined;
@@ -1359,17 +1396,41 @@ declare class Renderer {
1359
1396
  drawPlayCursor(): void;
1360
1397
  txFromScreenCoord(screenCoord: Vec2): Vec2;
1361
1398
  txToScreenCoord(coord: Vec2): Vec2;
1362
- getCanvasContext(): CanvasRenderingContext2D | undefined;
1363
1399
  clearCanvas(): void;
1364
- getTextWidth(text: string, font: string): number;
1365
1400
  drawDebugRect(r: DivRect): void;
1366
- fillCircle(x: number, y: number, radius: number, color?: string): void;
1367
- drawLine(startX: number, startY: number, endX: number, endY: number, color?: string, lineWidth?: number): void;
1368
- drawPartialLine(startX: number, startY: number, endX: number, endY: number, startT: number, endT: number, color?: string, lineWidth?: number): void;
1369
1401
  drawLedgerLines(staff: ObjStaff, diatonicId: number, x: number): void;
1370
1402
  getRestRect(restSize: number): DivRect;
1371
- drawRest(restSize: number, x: number, y: number, color: string): void;
1403
+ drawRest(restSize: number, x: number, y: number): void;
1372
1404
  drawFlag(rect: DivRect, dir: "up" | "down"): void;
1405
+ color(color: string): RenderContext;
1406
+ lineColor(color: string): RenderContext;
1407
+ fillColor(color: string): RenderContext;
1408
+ lineWidth(lineWidth?: number): RenderContext;
1409
+ font(font: string): RenderContext;
1410
+ beginPath(): RenderContext;
1411
+ stroke(): RenderContext;
1412
+ fill(): RenderContext;
1413
+ moveTo(x: number, y: number): RenderContext;
1414
+ lineTo(x: number, y: number): RenderContext;
1415
+ bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): RenderContext;
1416
+ quadraticCurveTo(x1: number, y1: number, x2: number, y2: number): RenderContext;
1417
+ fillRect(x: number, y: number, w: number, h: number): RenderContext;
1418
+ setLineDash(pattern: number[]): RenderContext;
1419
+ drawImage(img: CanvasImageSource, x: number, y: number, w: number, h: number): RenderContext;
1420
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number): RenderContext;
1421
+ clip(): RenderContext;
1422
+ save(): RenderContext;
1423
+ restore(): RenderContext;
1424
+ rect(x: number, y: number, w: number, h: number): RenderContext;
1425
+ scale(x: number, y: number): RenderContext;
1426
+ strokeRect(x: number, y: number, w: number, h: number): RenderContext;
1427
+ fillText(text: string, x: number, y: number): RenderContext;
1428
+ getTextWidth(text: string, font: string): number;
1429
+ arc(x: number, y: number, radius: number, startRadians: number, endRadians: number): void;
1430
+ fillCircle(x: number, y: number, radius: number): void;
1431
+ strokeLine(startX: number, startY: number, endX: number, endY: number): void;
1432
+ strokePartialLine(startX: number, startY: number, endX: number, endY: number, startT: number, endT: number): void;
1433
+ drawBrace(rect: DivRect, side: "left" | "right"): void;
1373
1434
  }
1374
1435
 
1375
1436
  declare class ObjEnding extends MusicObject {
@@ -1385,10 +1446,10 @@ declare class ObjEnding extends MusicObject {
1385
1446
  hasPassage(pass: number): boolean;
1386
1447
  getHighestPassage(): number;
1387
1448
  pick(x: number, y: number): MusicObject[];
1388
- layout(renderer: Renderer): void;
1389
- layoutFitToMeasure(renderer: Renderer): void;
1449
+ layout(ctx: RenderContext): void;
1450
+ layoutFitToMeasure(ctx: RenderContext): void;
1390
1451
  offset(dx: number, dy: number): void;
1391
- draw(renderer: Renderer): void;
1452
+ draw(ctx: RenderContext): void;
1392
1453
  }
1393
1454
 
1394
1455
  declare class ObjFermata extends MusicObject {
@@ -1399,9 +1460,9 @@ declare class ObjFermata extends MusicObject {
1399
1460
  getMusicInterface(): MFermata;
1400
1461
  static getFermataPositions(anchor: ObjRhythmColumn | ObjBarLineRight): VerticalPos[];
1401
1462
  pick(x: number, y: number): MusicObject[];
1402
- layout(renderer: Renderer): void;
1463
+ layout(ctx: RenderContext): void;
1403
1464
  offset(dx: number, dy: number): void;
1404
- draw(renderer: Renderer): void;
1465
+ draw(ctx: RenderContext): void;
1405
1466
  }
1406
1467
 
1407
1468
  declare class ObjSpecialText extends MusicObject {
@@ -1415,9 +1476,9 @@ declare class ObjSpecialText extends MusicObject {
1415
1476
  getMusicInterface(): MSpecialText;
1416
1477
  getText(): string;
1417
1478
  pick(x: number, y: number): MusicObject[];
1418
- layout(renderer: Renderer): void;
1479
+ layout(ctx: RenderContext): void;
1419
1480
  offset(dx: number, dy: number): void;
1420
- draw(renderer: Renderer): void;
1481
+ draw(ctx: RenderContext): void;
1421
1482
  }
1422
1483
 
1423
1484
  type ExtensionLineStyle = "solid" | "dashed";
@@ -1457,27 +1518,27 @@ declare class ObjExtensionLine extends MusicObject {
1457
1518
  getMusicInterface(): MExtensionLine;
1458
1519
  private getLineLeft;
1459
1520
  private getLineRight;
1460
- layoutFitToMeasure(renderer: Renderer): void;
1521
+ layoutFitToMeasure(ctx: RenderContext): void;
1461
1522
  pick(x: number, y: number): MusicObject[];
1462
- layout(renderer: Renderer): void;
1523
+ layout(ctx: RenderContext): void;
1463
1524
  offset(dx: number, dy: number): void;
1464
- draw(renderer: Renderer): void;
1525
+ draw(ctx: RenderContext): void;
1465
1526
  }
1466
1527
 
1467
1528
  declare class ObjTabRhythm extends MusicObject {
1468
1529
  readonly measure: ObjMeasure;
1469
1530
  readonly tab: ObjTab;
1470
- private readonly voiceIds;
1531
+ private readonly voiceId;
1471
1532
  readonly mi: MTabRhythm;
1472
1533
  constructor(measure: ObjMeasure, tab: ObjTab);
1473
1534
  getMusicInterface(): MTabRhythm;
1474
1535
  pick(x: number, y: number): MusicObject[];
1475
- layout(renderer: Renderer): void;
1536
+ layout(ctx: RenderContext): void;
1476
1537
  private hasTuplets;
1477
- layoutFitToMeasure(renderer: Renderer): void;
1538
+ layoutFitToMeasure(ctx: RenderContext): void;
1478
1539
  offset(dx: number, dy: number): void;
1479
1540
  private readonly tupletPartsTextObjMap;
1480
- draw(renderer: Renderer): void;
1541
+ draw(ctx: RenderContext): void;
1481
1542
  }
1482
1543
 
1483
1544
  declare enum LayoutGroupId {
@@ -1518,9 +1579,9 @@ declare class LayoutObjectWrapper {
1518
1579
  clearPositionResolved(): void;
1519
1580
  setPositionResolved(): void;
1520
1581
  isPositionResolved(): boolean;
1521
- resolveClosestToStaffY(renderer: Renderer): number;
1582
+ resolveClosestToStaffY(ctx: RenderContext): number;
1522
1583
  getTextContent(): string | undefined;
1523
- layout(renderer: Renderer): void;
1584
+ layout(ctx: RenderContext): void;
1524
1585
  offset(dx: number, dy: number): void;
1525
1586
  getRect(): DivRect;
1526
1587
  }
@@ -1533,7 +1594,7 @@ declare class LayoutGroup {
1533
1594
  getLayoutObjects(verticalPos: VerticalPos): Readonly<LayoutObjectWrapper[]>;
1534
1595
  add(layoutObj: LayoutObjectWrapper): void;
1535
1596
  remove(layoutObj: LayoutObjectWrapper): void;
1536
- clearPositionAndLayout(renderer: Renderer): void;
1597
+ clearPositionAndLayout(ctx: RenderContext): void;
1537
1598
  }
1538
1599
 
1539
1600
  declare class MusicObjectLink {
@@ -1593,9 +1654,9 @@ declare class ObjArpeggio extends MusicObject {
1593
1654
  constructor(col: ObjRhythmColumn, line: ObjNotationLine, arpeggioDir: Arpeggio);
1594
1655
  getMusicInterface(): MArpeggio;
1595
1656
  pick(x: number, y: number): MusicObject[];
1596
- layout(renderer: Renderer): void;
1657
+ layout(ctx: RenderContext): void;
1597
1658
  offset(dx: number, dy: number): void;
1598
- draw(renderer: Renderer): void;
1659
+ draw(ctx: RenderContext): void;
1599
1660
  }
1600
1661
 
1601
1662
  declare class ObjHeader extends MusicObject {
@@ -1609,9 +1670,9 @@ declare class ObjHeader extends MusicObject {
1609
1670
  constructor(doc: ObjDocument, title?: string | undefined, composer?: string | undefined, arranger?: string | undefined);
1610
1671
  getMusicInterface(): MHeader;
1611
1672
  pick(x: number, y: number): MusicObject[];
1612
- layoutWidth(renderer: Renderer, width: number): void;
1673
+ layoutWidth(ctx: RenderContext, left: number, right: number): void;
1613
1674
  offset(dx: number, dy: number): void;
1614
- draw(renderer: Renderer): void;
1675
+ draw(ctx: RenderContext): void;
1615
1676
  }
1616
1677
 
1617
1678
  declare class ObjImage extends MusicObject {
@@ -1623,9 +1684,9 @@ declare class ObjImage extends MusicObject {
1623
1684
  constructor(parent: MusicObject, image: HTMLImageElement, anchorX: number, anchorY: number, imageScale: number);
1624
1685
  getMusicInterface(): MImage;
1625
1686
  pick(x: number, y: number): MusicObject[];
1626
- layout(renderer: Renderer): void;
1687
+ layout(ctx: RenderContext): void;
1627
1688
  offset(dx: number, dy: number): void;
1628
- draw(renderer: Renderer): void;
1689
+ draw(ctx: RenderContext): void;
1629
1690
  }
1630
1691
 
1631
1692
  declare class ObjStaffSignature extends MusicObject {
@@ -1642,16 +1703,16 @@ declare class ObjStaffSignature extends MusicObject {
1642
1703
  readonly mi: MStaffSignature;
1643
1704
  constructor(measure: ObjMeasure, staff: ObjStaff);
1644
1705
  getMusicInterface(): MStaffSignature;
1645
- updateClefImage(renderer: Renderer, showClef: boolean): void;
1706
+ updateClefImage(ctx: RenderContext, showClef: boolean): void;
1646
1707
  updateMeasureNumber(showMeasureNumber: boolean): void;
1647
1708
  updateKeySignature(showKeySignature: boolean): void;
1648
1709
  updateTimeSignature(showTimeSignature: boolean): void;
1649
1710
  updateTempo(showTempo: boolean): void;
1650
1711
  private getAccidentalDiatonicId;
1651
1712
  pick(x: number, y: number): MusicObject[];
1652
- layout(renderer: Renderer): void;
1713
+ layout(ctx: RenderContext): void;
1653
1714
  offset(dx: number, dy: number): void;
1654
- draw(renderer: Renderer): void;
1715
+ draw(ctx: RenderContext): void;
1655
1716
  }
1656
1717
  declare class ObjTabSignature extends MusicObject {
1657
1718
  readonly measure: ObjMeasure;
@@ -1667,9 +1728,9 @@ declare class ObjTabSignature extends MusicObject {
1667
1728
  updateTimeSignature(showTimeSignature: boolean): void;
1668
1729
  updateTempo(showTempo: boolean): void;
1669
1730
  pick(x: number, y: number): MusicObject[];
1670
- layout(renderer: Renderer): void;
1731
+ layout(ctx: RenderContext): void;
1671
1732
  offset(dx: number, dy: number): void;
1672
- draw(renderer: Renderer): void;
1733
+ draw(ctx: RenderContext): void;
1673
1734
  }
1674
1735
 
1675
1736
  /** Score event type. */
@@ -1685,29 +1746,37 @@ declare abstract class ScoreEvent {
1685
1746
  }
1686
1747
  /** Score staff position event for clicking/entering/leaving staff position (diatonic id) in staff notation line. */
1687
1748
  declare class ScoreStaffPosEvent extends ScoreEvent {
1688
- readonly renderer: MRenderer;
1749
+ readonly renderContext: MRenderContext;
1689
1750
  readonly scoreRow: MScoreRow;
1690
1751
  readonly diatonicId: number;
1691
1752
  /**
1692
1753
  * Create new score staff position event.
1693
1754
  * @param type - Score event type.
1694
- * @param renderer - Renderer.
1755
+ * @param renderContext - Render context.
1695
1756
  * @param scoreRow - Score row.
1696
1757
  * @param diatonicId - Diatonic id that was clicked/entered/left.
1697
1758
  */
1698
- constructor(type: ScoreEventType, renderer: MRenderer, scoreRow: MScoreRow, diatonicId: number);
1759
+ constructor(type: ScoreEventType, renderContext: MRenderContext, scoreRow: MScoreRow, diatonicId: number);
1760
+ /**
1761
+ * @deprecated - Provided for legacy support, use renderContext instead.
1762
+ */
1763
+ get renderer(): MRenderer;
1699
1764
  }
1700
1765
  /** Score object event for clicking/entering/leaving score object. */
1701
1766
  declare class ScoreObjectEvent extends ScoreEvent {
1702
- readonly renderer: MRenderer;
1767
+ readonly renderContext: MRenderContext;
1703
1768
  readonly objects: MusicInterface[];
1704
1769
  /**
1705
1770
  * Create new score object event.
1706
1771
  * @param type - Score event type.
1707
- * @param renderer - Renderer.
1772
+ * @param renderContext - Render context.
1708
1773
  * @param objects - Array of objects, last object in this array is the top object that was clicked/entered/left, previous objects are it's parent objects.
1709
1774
  */
1710
- constructor(type: ScoreEventType, renderer: MRenderer, objects: MusicInterface[]);
1775
+ constructor(type: ScoreEventType, renderContext: MRenderContext, objects: MusicInterface[]);
1776
+ /**
1777
+ * @deprecated - Provided for legacy support, use renderContext instead.
1778
+ */
1779
+ get renderer(): MRenderer;
1711
1780
  /** Top object getter. */
1712
1781
  get topObject(): MusicInterface;
1713
1782
  /**
@@ -1750,25 +1819,25 @@ declare class MPlayer {
1750
1819
  */
1751
1820
  stop(): this;
1752
1821
  }
1753
- /** Renderer class. */
1754
- declare class MRenderer {
1755
- private readonly renderer;
1822
+ /** Render context class. */
1823
+ declare class MRenderContext {
1824
+ private readonly ctx;
1756
1825
  /**
1757
- * Create new renderer instance.
1826
+ * Create new render context instance.
1758
1827
  */
1759
1828
  constructor();
1760
1829
  /**
1761
- * Attach music document to this renderer.
1830
+ * Attach music document to this render context.
1762
1831
  * @param doc - Music document.
1763
- * @returns - This renderer instance.
1832
+ * @returns - This render context instance.
1764
1833
  */
1765
- setDocument(doc?: MDocument): MRenderer;
1834
+ setDocument(doc?: MDocument): MRenderContext;
1766
1835
  /**
1767
- * Set target canvas html element for this renderer.
1836
+ * Set target canvas html element for this render context.
1768
1837
  * @param canvas - HTML canvas element or element id.
1769
- * @returns - This renderer instance.
1838
+ * @returns - This render context instance.
1770
1839
  */
1771
- setCanvas(canvas: HTMLCanvasElement | string): MRenderer;
1840
+ setCanvas(canvas: HTMLCanvasElement | string): MRenderContext;
1772
1841
  /**
1773
1842
  * Set score event listener.
1774
1843
  * @param scoreEventListener - Score event listener.
@@ -1792,6 +1861,12 @@ declare class MRenderer {
1792
1861
  */
1793
1862
  draw(): void;
1794
1863
  }
1864
+ /**
1865
+ * Renderer class.
1866
+ * @deprecated - Use MRenderContext instead.
1867
+ * */
1868
+ declare class MRenderer extends MRenderContext {
1869
+ }
1795
1870
  /** Playback buttons helper class. */
1796
1871
  declare class MPlaybackButtons {
1797
1872
  private playButton?;
@@ -2468,4 +2543,4 @@ declare class MExtensionLine extends MusicInterface {
2468
2543
  getMusicObject(): ObjExtensionLine;
2469
2544
  }
2470
2545
 
2471
- export { MTabRhythm as $, type AnnotationText as A, MImage as B, Connective as C, DivRect as D, MMeasure as E, Fermata as F, MBarLineRight as G, MBarLineLeft as H, MStaffTabBarLine as I, MNoteGroup as J, MStaffNoteGroup as K, type LyricsOptions as L, MDocument as M, type NoteOptions as N, MTabNoteGroup as O, MRest as P, MStaffRest as Q, type RestOptions as R, StaffPreset as S, type TupletOptions as T, MRhythmColumn as U, type VoiceId as V, MScoreRow as W, MStaff as X, MTab as Y, MStaffSignature as Z, MTabSignature as _, type ScoreConfiguration as a, MSpecialText as a0, MText as a1, MLyrics as a2, MExtensionLine as a3, Clef as a4, type BaseConfig as a5, type StaffConfig as a6, type TabConfig as a7, getVoiceIds as a8, type StringNumber as a9, getStringNumbers as aa, getVerseNumbers as ab, Stem as ac, Arpeggio as ad, type StaffTabOrGroup as ae, LyricsAlign as af, LyricsHyphen as ag, DynamicsAnnotation as ah, TempoAnnotation as ai, PlayState as aj, type PlayStateChangeListener as ak, type VerseNumber as b, type StaffTabOrGroups as c, Navigation as d, Annotation as e, Label as f, TieType as g, NoteAnchor as h, VerticalPosition as i, type ScoreEventType as j, ScoreEvent as k, ScoreStaffPosEvent as l, ScoreObjectEvent as m, type ScoreEventListener as n, MPlayer as o, MRenderer as p, MPlaybackButtons as q, MusicInterface as r, MAccidental as s, MConnective as t, MArpeggio as u, MBeamGroup as v, MStaffBeamGroup as w, MEnding as x, MFermata as y, MHeader as z };
2546
+ export { MStaffSignature as $, type AnnotationText as A, MFermata as B, Connective as C, DivRect as D, MHeader as E, Fermata as F, MImage as G, MMeasure as H, MBarLineRight as I, MBarLineLeft as J, MStaffTabBarLine as K, type LyricsOptions as L, MDocument as M, type NoteOptions as N, MNoteGroup as O, MStaffNoteGroup as P, MTabNoteGroup as Q, type RestOptions as R, StaffPreset as S, type TupletOptions as T, MRest as U, type VoiceId as V, MStaffRest as W, MRhythmColumn as X, MScoreRow as Y, MStaff as Z, MTab as _, type ScoreConfiguration as a, MTabSignature as a0, MTabRhythm as a1, MSpecialText as a2, MText as a3, MLyrics as a4, MExtensionLine as a5, Clef as a6, type BaseConfig as a7, type StaffConfig as a8, type TabConfig as a9, getVoiceIds as aa, type StringNumber as ab, getStringNumbers as ac, getVerseNumbers as ad, Stem as ae, Arpeggio as af, type StaffTabOrGroup as ag, LyricsAlign as ah, LyricsHyphen as ai, DynamicsAnnotation as aj, TempoAnnotation as ak, PlayState as al, type PlayStateChangeListener as am, type MeasureOptions as b, type VerseNumber as c, type StaffTabOrGroups as d, Navigation as e, Annotation as f, Label as g, TieType as h, NoteAnchor as i, VerticalPosition as j, type ScoreEventType as k, ScoreEvent as l, ScoreStaffPosEvent as m, ScoreObjectEvent as n, type ScoreEventListener as o, MPlayer as p, MRenderContext as q, MRenderer as r, MPlaybackButtons as s, MusicInterface as t, MAccidental as u, MConnective as v, MArpeggio as w, MBeamGroup as x, MStaffBeamGroup as y, MEnding as z };