@tspro/web-music-score 2.0.0 → 3.0.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +144 -63
  3. package/dist/audio/index.d.mts +1 -1
  4. package/dist/audio/index.js +1 -1
  5. package/dist/audio/index.mjs +2 -2
  6. package/dist/audio-cg/index.js +1 -1
  7. package/dist/audio-cg/index.mjs +2 -2
  8. package/dist/{chunk-2EPWQZKJ.mjs → chunk-ZWFAOHYM.mjs} +2 -2
  9. package/dist/core/index.js +2 -2
  10. package/dist/core/index.mjs +3 -3
  11. package/dist/{guitar-kbJYu3Am.d.mts → guitar-zASF7B1g.d.mts} +1 -1
  12. package/dist/iife/index.global.js +11 -12
  13. package/dist/interface-CLb7xa7_.d.mts +1768 -0
  14. package/dist/interface-DXyXwLBB.d.ts +1768 -0
  15. package/dist/{note-CraqEy8x.d.mts → note-B5ZtlHc8.d.mts} +1 -1
  16. package/dist/pieces/index.d.mts +3 -3
  17. package/dist/pieces/index.d.ts +2 -2
  18. package/dist/pieces/index.js +4 -52
  19. package/dist/pieces/index.mjs +8 -56
  20. package/dist/react-ui/index.d.mts +5 -4
  21. package/dist/react-ui/index.d.ts +3 -2
  22. package/dist/react-ui/index.js +1 -1
  23. package/dist/react-ui/index.mjs +2 -2
  24. package/dist/scale-B_2MZaT9.d.ts +87 -0
  25. package/dist/scale-C-YS5iVG.d.mts +87 -0
  26. package/dist/score/index.d.mts +42 -1557
  27. package/dist/score/index.d.ts +42 -1557
  28. package/dist/score/index.js +2845 -2029
  29. package/dist/score/index.mjs +2813 -2007
  30. package/dist/tempo-DoJd-UYT.d.ts +120 -0
  31. package/dist/tempo-TjQKn46X.d.mts +120 -0
  32. package/dist/theory/index.d.mts +6 -5
  33. package/dist/theory/index.d.ts +3 -2
  34. package/dist/theory/index.js +1 -1
  35. package/dist/theory/index.mjs +2 -2
  36. package/package.json +1 -1
  37. package/dist/tempo--588tdcv.d.ts +0 -203
  38. package/dist/tempo-BEJBHZ5I.d.mts +0 -203
@@ -1,1558 +1,43 @@
1
- import { A as Accidental, N as Note } from '../note-CraqEy8x.mjs';
2
- import { R as RhythmProps, N as NoteLength, m as Tempo, K as KeySignature, k as TimeSignature, T as TimeSignatureString, S as ScaleType, c as Scale } from '../tempo-BEJBHZ5I.mjs';
3
- import { Vec2 } from '@tspro/ts-utils-lib';
4
-
5
- declare class AccidentalState {
6
- readonly measure: ObjMeasure;
7
- private readonly accidentalByDiatonicId;
8
- constructor(measure: ObjMeasure);
9
- getAccidentalFromKeySignature(diatonicId: number): Accidental | undefined;
10
- setAccidental(note: Note): void;
11
- needAccidental(note: Note): boolean;
12
- }
13
-
14
- declare class ObjNoteGroup extends MusicObject {
15
- readonly col: ObjRhythmColumn;
16
- readonly voiceId: number;
17
- readonly notes: ReadonlyArray<Note>;
18
- readonly minDiatonicId: number;
19
- readonly maxDiatonicId: number;
20
- readonly ownDiatonicId: number;
21
- readonly ownStemDir: Stem.Up | Stem.Down;
22
- readonly ownString: StringNumber[];
23
- readonly color: string;
24
- readonly staccato: boolean;
25
- readonly diamond: boolean;
26
- readonly arpeggio: Arpeggio | undefined;
27
- readonly rhythmProps: RhythmProps;
28
- private startTie?;
29
- private startSlur?;
30
- private tieProps;
31
- private slurProps;
32
- private leftBeamCount;
33
- private rightBeamCount;
34
- private readonly staffObjs?;
35
- private readonly tabObjs?;
36
- readonly mi: MNoteGroup;
37
- constructor(col: ObjRhythmColumn, voiceId: number, notes: ReadonlyArray<Note>, noteLength: NoteLength, options?: NoteOptions);
38
- getMusicInterface(): MNoteGroup;
39
- get doc(): ObjDocument;
40
- get measure(): ObjMeasure;
41
- get row(): ObjScoreRow;
42
- get stemDir(): Stem.Up | Stem.Down;
43
- get triplet(): boolean;
44
- pick(x: number, y: number): MusicObject[];
45
- getTopNote(): Note;
46
- getBottomNote(): Note;
47
- getArcAnchorPoint(note: Note, arcAnchor: NoteAnchor, side: "left" | "right"): {
48
- x: number;
49
- y: number;
50
- };
51
- private getNextNoteGroup;
52
- collectArcProps(): void;
53
- removeArcProps(): void;
54
- getPlaySlur(): "first" | "slurred" | undefined;
55
- getBeamGroup(): ObjBeamGroup | undefined;
56
- setBeamGroup(beam: ObjBeamGroup): void;
57
- resetBeamGroup(): void;
58
- getBeamX(): number;
59
- getBeamY(): number;
60
- getStemHeight(renderer: Renderer): number;
61
- hasBeamCount(): boolean;
62
- getLeftBeamCount(): number;
63
- getRightBeamCount(): number;
64
- getPlayTicks(note: Note): number;
65
- updateAccidentalState(accState: AccidentalState): void;
66
- layout(renderer: Renderer, accState: AccidentalState): void;
67
- updateRect(): void;
68
- setStemTipY(stemTipY: number): void;
69
- offset(dx: number, dy: number): void;
70
- draw(renderer: Renderer): void;
71
- static setBeamCounts(groupNotes: (ObjNoteGroup | undefined)[]): void;
72
- static setTripletBeamCounts(triplet: ObjBeamGroup): void;
73
- getDotVerticalDisplacement(diatonicId: number, stemDir: Stem): 1 | 0 | -1;
74
- static hasSameNotes(ng1: ObjNoteGroup, ng2: ObjNoteGroup): boolean;
75
- }
76
-
77
- declare enum BeamGroupType {
78
- RegularBeam = 0,
79
- TripletBeam = 1,
80
- TripletGroup = 2
81
- }
82
- declare class ObjBeamGroup extends MusicObject {
83
- private readonly symbols;
84
- readonly mi: MBeamGroup;
85
- private readonly type;
86
- private tripletNumber?;
87
- private groupLineLeft?;
88
- private groupLineRight?;
89
- private constructor();
90
- static createBeam(noteGroups: ObjNoteGroup[]): void;
91
- static createTriplet(symbols: RhythmSymbol[]): boolean;
92
- getMusicInterface(): MBeamGroup;
93
- pick(x: number, y: number): MusicObject[];
94
- getType(): BeamGroupType;
95
- isTriplet(): boolean;
96
- getSymbols(): ReadonlyArray<RhythmSymbol>;
97
- getFirstSymbol(): RhythmSymbol | undefined;
98
- getLastSymbol(): RhythmSymbol | undefined;
99
- get stemDir(): Stem.Up | Stem.Down;
100
- getBeamY(symbol: RhythmSymbol): number;
101
- layout(renderer: Renderer): void;
102
- offset(dx: number, dy: number): void;
103
- draw(renderer: Renderer): void;
104
- }
105
-
106
- declare class RestStaffObjects {
107
- dotRect: DivRect;
108
- beamGroup?: ObjBeamGroup;
109
- }
110
- declare class ObjRest extends MusicObject {
111
- readonly col: ObjRhythmColumn;
112
- readonly voiceId: number;
113
- readonly ownStemDir: Stem.Up | Stem.Down;
114
- readonly ownDiatonicId: number;
115
- readonly color: string;
116
- readonly hide: boolean;
117
- readonly rhythmProps: RhythmProps;
118
- readonly staffObjs?: RestStaffObjects;
119
- readonly mi: MRest;
120
- constructor(col: ObjRhythmColumn, voiceId: number, noteLength: NoteLength, options?: RestOptions);
121
- getMusicInterface(): MRest;
122
- get doc(): ObjDocument;
123
- get measure(): ObjMeasure;
124
- get row(): ObjScoreRow;
125
- get noteLength(): NoteLength;
126
- get dotted(): boolean;
127
- get stemDir(): Stem.Up | Stem.Down;
128
- get triplet(): boolean;
129
- pick(x: number, y: number): MusicObject[];
130
- getBeamGroup(): ObjBeamGroup | undefined;
131
- setBeamGroup(beam: ObjBeamGroup): void;
132
- resetBeamGroup(): void;
133
- getBeamX(): number;
134
- getBeamY(): number;
135
- private getRestDotVerticalDisplacement;
136
- updateAccidentalState(accState: AccidentalState): void;
137
- layout(renderer: Renderer, accState: AccidentalState): void;
138
- offset(dx: number, dy: number): void;
139
- draw(renderer: Renderer): void;
140
- }
141
-
142
- type ScorePlayerNote = {
143
- note: Note;
144
- ticks: number;
145
- staccato: boolean;
146
- slur: undefined | "first" | "slurred";
147
- };
148
- type RhythmSymbol = ObjNoteGroup | ObjRest;
149
- declare class ObjRhythmColumn extends MusicObject {
150
- readonly measure: ObjMeasure;
151
- readonly positionTicks: number;
152
- private readonly voiceSymbol;
153
- private minDiatonicId?;
154
- private maxDiatonicId?;
155
- private arpeggioDir;
156
- private arpeggios;
157
- private noteHeadDisplacements;
158
- private readonly playerProps;
159
- private needLayout;
160
- private shapeRects;
161
- readonly mi: MRhythmColumn;
162
- constructor(measure: ObjMeasure, positionTicks: number);
163
- getMusicInterface(): MRhythmColumn;
164
- getPlayerProps(): PlayerColumnProps;
165
- /**
166
- * Get next column in column's measure.
167
- * @returns
168
- */
169
- getNextColumnInMeasure(): ObjRhythmColumn | undefined;
170
- /**
171
- * Get next column. Goes into next measure if necessary.
172
- * Does not care navigation elements: repeats, endings, etc.
173
- * @returns
174
- */
175
- getNextColumn(): ObjRhythmColumn | undefined;
176
- getTicksToNextColumn(): number;
177
- getShapeRects(): DivRect[];
178
- get doc(): ObjDocument;
179
- get row(): ObjScoreRow;
180
- pick(x: number, y: number): MusicObject[];
181
- hasArpeggio(): boolean;
182
- getArpeggioDir(): Arpeggio;
183
- setVoiceSymbol(voiceId: number, symbol: RhythmSymbol): void;
184
- getVoiceSymbol(voiceId: number): RhythmSymbol | undefined;
185
- getMinWidth(): number;
186
- setupNoteHeadDisplacements(): void;
187
- getNoteHeadDisplacement(noteGroup: ObjNoteGroup, note: Note): -1 | 0 | 1;
188
- getLowestDiatonicId(initialLowestDiatonicId: number): number;
189
- getPlayerNotes(): ScorePlayerNote[];
190
- requestLayout(): void;
191
- layout(renderer: Renderer, accState: AccidentalState): void;
192
- layoutDone(): void;
193
- offset(dx: number, dy: number): void;
194
- draw(renderer: Renderer): void;
195
- }
196
-
197
- type PlayerColumn = ObjRhythmColumn | ObjBarLineRight;
198
- declare class PlayerColumnProps {
199
- readonly col: PlayerColumn;
200
- private speed;
201
- private volume;
202
- constructor(col: PlayerColumn);
203
- get measure(): ObjMeasure;
204
- reset(): void;
205
- setSpeed(speed: number): void;
206
- getSpeed(): number;
207
- getTempo(): Tempo;
208
- setVolume(volume: number): void;
209
- getVolume(): number;
210
- hasFermata(): boolean;
211
- getFermataHoldTicks(): number;
212
- }
213
-
214
- declare enum BarLineType {
215
- None = 0,
216
- Single = 1,
217
- Double = 2,
218
- EndSong = 3,
219
- StartRepeat = 4,
220
- EndRepeat = 5,
221
- EndStartRepeat = 6
222
- }
223
- declare abstract class ObjBarLine extends MusicObject {
224
- readonly measure: ObjMeasure;
225
- private lineRects;
226
- private dotRects;
227
- protected barLineType: BarLineType;
228
- constructor(measure: ObjMeasure);
229
- abstract solveBarLineType(): BarLineType;
230
- pick(x: number, y: number): MusicObject[];
231
- layout(renderer: Renderer): void;
232
- offset(dx: number, dy: number): void;
233
- draw(renderer: Renderer): void;
234
- }
235
- declare class ObjBarLineLeft extends ObjBarLine {
236
- readonly mi: MBarLineLeft;
237
- constructor(measure: ObjMeasure);
238
- getMusicInterface(): MBarLineLeft;
239
- solveBarLineType(): BarLineType;
240
- }
241
- declare class ObjBarLineRight extends ObjBarLine {
242
- private readonly playerProps;
243
- readonly mi: MBarLineRight;
244
- constructor(measure: ObjMeasure);
245
- getMusicInterface(): MBarLineRight;
246
- getPlayerProps(): PlayerColumnProps;
247
- solveBarLineType(): BarLineType;
248
- }
249
-
250
- /** @public */
251
- declare enum StaffPreset {
252
- /** Treble staff has treble (G-) clef. */
253
- Treble = 1,
254
- /** Bass staff has bass (F-) clef. */
255
- Bass = 2,
256
- /** Grand staff has both treble and bass clefs. */
257
- Grand = 3,
258
- /** GuitarTreble has treble clef but is one octave lower. */
259
- GuitarTreble = 4,
260
- GuitarTab = 8,
261
- GuitarCombined = 12
262
- }
263
- /** @public */
264
- type VoiceId = 0 | 1 | 2 | 3;
265
- /** @public */
266
- declare function getVoiceIds(): ReadonlyArray<VoiceId>;
267
- /** @public */
268
- type StringNumber = 1 | 2 | 3 | 4 | 5 | 6;
269
- /** @public */
270
- declare function getStringNumbers(): ReadonlyArray<StringNumber>;
271
- /** @public */
272
- declare enum Stem {
273
- Auto = 0,
274
- Up = 1,
275
- Down = 2
276
- }
277
- /** @public */
278
- declare enum Arpeggio {
279
- Up = 0,
280
- Down = 1
281
- }
282
- /** @public */
283
- declare enum TieType {
284
- Stub = -1,
285
- ToMeasureEnd = -2
286
- }
287
- /** @public */
288
- type TieSpan = number | TieType;
289
- /** @public */
290
- type SlurSpan = number;
291
- /** @public */
292
- declare enum NoteAnchor {
293
- Auto = 0,
294
- Above = 1,
295
- Center = 2,
296
- Below = 3,
297
- StemTip = 4
298
- }
299
- /** @public */
300
- type NoteOptions = {
301
- dotted?: boolean;
302
- stem?: Stem;
303
- color?: string;
304
- arpeggio?: Arpeggio | boolean;
305
- staccato?: boolean;
306
- diamond?: boolean;
307
- tieSpan?: TieSpan;
308
- tieAnchor?: NoteAnchor;
309
- slurSpan?: SlurSpan;
310
- slurAnchor?: NoteAnchor;
311
- triplet?: boolean;
312
- string?: StringNumber | StringNumber[];
313
- };
314
- /** @public */
315
- type RestOptions = {
316
- dotted?: boolean;
317
- staffPos?: Note | string | number;
318
- color?: string;
319
- hide?: boolean;
320
- triplet?: boolean;
321
- };
322
- /** @public */
323
- type DocumentOptions = {
324
- measuresPerRow?: number;
325
- tuning?: string;
326
- fullDiatonicRange?: boolean;
327
- };
328
- /** @public */
329
- declare enum PlayState {
330
- Playing = 0,
331
- Paused = 1,
332
- Stopped = 2
333
- }
334
- /** @public */
335
- type PlayStateChangeListener = (playState: PlayState) => void;
336
- /** @public */
337
- declare enum Fermata {
338
- AtNote = 0,
339
- AtMeasureEnd = 1
340
- }
341
- /** @public */
342
- declare enum Navigation {
343
- /** Repeat back to beginning and play to the "Fine" marking. */
344
- DC_al_Fine = 0,
345
- /** Repeat back to beginning and play to the "to Coda 𝄌", then jump to the "𝄌 Coda". */
346
- DC_al_Coda = 1,
347
- /** Repeat back to Segno sign (𝄋) and play to the "Fine" marking. */
348
- DS_al_Fine = 2,
349
- /** Repeat back to Segno sign (𝄋) and play to the "to Coda 𝄌", then jump to the "𝄌 Coda". */
350
- DS_al_Coda = 3,
351
- /** "𝄌 Coda" section. */
352
- Coda = 4,
353
- /** From "toCoda 𝄌" jump to the "𝄌 Coda" section. */
354
- toCoda = 5,
355
- /** Jump here from D.S. al Fine or D.S. al Coda. */
356
- Segno = 6,
357
- /** Stop playing after D.C. al Fine or D.S. al Fine. */
358
- Fine = 7,
359
- /** Start of repeat section. */
360
- StartRepeat = 8,
361
- /** End of repeat section. Jump to start of repeat section. */
362
- EndRepeat = 9,
363
- /** Jump to ending with correct passage number. */
364
- Ending = 10
365
- }
366
- /** @public */
367
- declare enum Annotation {
368
- /** "ppp", "pp", "p", "mp", "m", "mf", "f", "ff", "fff", "cresc.", "decresc.", "dim." */
369
- Dynamics = 0,
370
- /** "accel.", "rit.", "a tempo" */
371
- Tempo = 1
372
- }
373
- /** @public */
374
- declare enum Label {
375
- /** "C", "C#", "Db", "D", etc. */
376
- Note = 0,
377
- /** "C", "Am", "G7", etc. */
378
- Chord = 1
379
- }
380
-
381
- declare class ArcProps {
382
- readonly arcType: "tie" | "slur";
383
- readonly arcSpan: TieSpan | SlurSpan;
384
- arcAnchor: NoteAnchor;
385
- noteGroups: ObjNoteGroup[];
386
- arcDir: "up" | "down";
387
- constructor(arcType: "tie" | "slur", arcSpan: TieSpan | SlurSpan, arcAnchor: NoteAnchor, startNoteGroup: ObjNoteGroup);
388
- getStartNoteGroup(): ObjNoteGroup;
389
- startsWith(noteGroup: ObjNoteGroup): boolean;
390
- /**
391
- *
392
- * @param noteGroup -
393
- * @returns true if noteGroup was added, false if not.
394
- */
395
- addNoteGroup(noteGroup: ObjNoteGroup): boolean;
396
- private computeParams;
397
- removeArcs(): void;
398
- createArcs(): void;
399
- private createObjArcWithTieType;
400
- private createObjArc;
401
- }
402
-
403
- declare class ObjArc extends MusicObject {
404
- readonly arcProps: ArcProps;
405
- private lx;
406
- private ly;
407
- private rx;
408
- private ry;
409
- private cp1x;
410
- private cp1y;
411
- private cp2x;
412
- private cp2y;
413
- private arcHeight;
414
- private readonly measure;
415
- private readonly leftNoteGroup;
416
- private readonly leftNote;
417
- private readonly rightNoteGroup?;
418
- private readonly rightNote?;
419
- private readonly tieType?;
420
- readonly mi: MArc;
421
- constructor(arcProps: ArcProps, measure: ObjMeasure, leftNoteGroup: ObjNoteGroup, leftNote: Note, rightNoteGroup: ObjNoteGroup, rightNote: Note);
422
- constructor(arcProps: ArcProps, measure: ObjMeasure, leftNoteGroup: ObjNoteGroup, leftNote: Note, tie: TieType);
423
- getMusicInterface(): MArc;
424
- isTie(): boolean;
425
- isSlur(): boolean;
426
- isInsideMeasure(): boolean;
427
- pick(x: number, y: number): MusicObject[];
428
- layout(renderer: Renderer): void;
429
- offset(dx: number, dy: number): void;
430
- draw(renderer: Renderer): void;
431
- }
432
-
433
- declare class ObjMeasure extends MusicObject {
434
- readonly row: ObjScoreRow;
435
- static readonly MinFlexContentWidth = 10;
436
- private prevMeasure;
437
- private nextMeasure;
438
- private keySignature;
439
- private timeSignature;
440
- private tempo;
441
- private alterKeySignature?;
442
- private alterTimeSignature?;
443
- private alterTempo?;
444
- private signatures;
445
- private barLineLeft;
446
- private columns;
447
- private barLineRight;
448
- private arcs;
449
- private beamGroups;
450
- private measureId;
451
- private needLayout;
452
- private leftSolidAreaWidth;
453
- private minColumnsAreaWidth;
454
- private rightSolidAreaWidth;
455
- private useDiatonicId;
456
- private useStemDir;
457
- private useString;
458
- private voiceSymbols;
459
- private lastAddedRhythmColumn?;
460
- private addExtensionToMusicObject?;
461
- private layoutObjects;
462
- private postMeasureBreakWidth;
463
- private passCount;
464
- private needBeamsUpdate;
465
- private navigationSet;
466
- private isEndSong;
467
- private isEndSection;
468
- private endRepeatPlayCount;
469
- private endRepeatPlayCountText?;
470
- readonly mi: MMeasure;
471
- constructor(row: ObjScoreRow);
472
- getMusicInterface(): MMeasure;
473
- get doc(): ObjDocument;
474
- isPartialMeasure(): boolean;
475
- isUpBeat(): boolean;
476
- resetPassCount(): void;
477
- incPassCount(): void;
478
- getPassCount(): number;
479
- updateOwnDiatonicId(voiceId: number, setDiatonicId?: number): number;
480
- updateOwnStemDir(symbol: RhythmSymbol, setStemDir?: Stem): Stem.Up | Stem.Down;
481
- updateOwnString(symbol: RhythmSymbol, setString?: StringNumber[]): StringNumber[];
482
- pick(x: number, y: number): MusicObject[];
483
- getMeasureNumber(): number;
484
- getColumns(): ReadonlyArray<ObjRhythmColumn>;
485
- getColumnCount(): number;
486
- getColumn(columnId: number): ObjRhythmColumn | undefined;
487
- isFirstMeasure(): boolean;
488
- isLastMeasure(): boolean;
489
- getNextMeasure(): ObjMeasure | undefined;
490
- getPrevMeasure(): ObjMeasure | undefined;
491
- getKeySignature(): KeySignature;
492
- setKeySignature(...args: unknown[]): void;
493
- updateKeySignature(): void;
494
- getTimeSignature(): TimeSignature;
495
- setTimeSignature(timeSignature: TimeSignature | TimeSignatureString): void;
496
- updateTimeSignature(): void;
497
- getTempo(): Tempo;
498
- setTempo(beatsPerMinute: number, beatLength?: NoteLength, dotted?: boolean): void;
499
- updateTempo(): void;
500
- hasPostMeasureBreak(): boolean;
501
- getPostMeasureBreakWidth(): number;
502
- private addLayoutObject;
503
- addFermata(fermata: Fermata): void;
504
- hasFermata(anchor: ObjRhythmColumn | ObjBarLineRight): boolean;
505
- addNavigation(navigation: Navigation, ...args: unknown[]): void;
506
- hasNavigation(n: Navigation): boolean;
507
- getEnding(): ObjEnding | undefined;
508
- getEndRepeatPlayCount(): number;
509
- addLabel(label: Label, text: string): void;
510
- addAnnotation(annotation: Annotation, text: string): void;
511
- endSong(): void;
512
- hasEndSong(): boolean;
513
- endSection(): void;
514
- hasEndSection(): boolean;
515
- endRow(): void;
516
- private enableExtension;
517
- private disableExtension;
518
- addExtension(extensionLength: number, extensionVisible: boolean): void;
519
- private addRhythmSymbol;
520
- addNoteGroup(voiceId: number, notes: (Note | string)[], noteLength: NoteLength, options?: NoteOptions): void;
521
- addRest(voiceId: number, restLength: NoteLength, options?: RestOptions): void;
522
- /**
523
- *
524
- * @param positionTicks - get ObjRhythmColumn with positionTicks. Insert new if necessary.
525
- * @returns
526
- */
527
- private getRhythmColumn;
528
- getMeasureTicks(): number;
529
- getConsumedTicks(voiceId?: number): number;
530
- getColumnsContentRect(): DivRect;
531
- getLeftSolidAreaWidth(): number;
532
- getMinColumnsAreaWidth(): number;
533
- getRightSolidAreaWidth(): number;
534
- getSolidAreaWidth(): number;
535
- getMinWidth(): number;
536
- getStaffLineLeft(): number;
537
- getStaffLineRight(): number;
538
- getStaticObjects(): ReadonlyArray<ObjRhythmColumn | LayoutableMusicObject>;
539
- removeLayoutObjects(musicObj: MusicObject): void;
540
- addArcObject(arc: ObjArc): void;
541
- removeArcObjects(): void;
542
- updateExtensions(): void;
543
- addBeamGroup(beam: ObjBeamGroup): void;
544
- requestBeamsUpdate(): void;
545
- updateBeams(): void;
546
- private static setupBeamGroup;
547
- getBarLineLeft(): ObjBarLineLeft;
548
- getBarLineRight(): ObjBarLineRight;
549
- getVoiceSymbols(voiceId: number): ReadonlyArray<RhythmSymbol>;
550
- completeRests(voiceId?: number): void;
551
- getLowestDiatonicId(initialLowestDiatonicId: number): number;
552
- requestLayout(): void;
553
- layout(renderer: Renderer): void;
554
- layoutWidth(renderer: Renderer, width: number): void;
555
- layoutArcs(renderer: Renderer): void;
556
- layoutBeams(renderer: Renderer): void;
557
- layoutDone(): void;
558
- offset(dx: number, dy: number): void;
559
- draw(renderer: Renderer): void;
560
- }
561
-
562
- declare enum Clef {
563
- Treble = 0,
564
- Bass = 1
565
- }
566
- declare class MusicStaff {
567
- readonly clef: Clef;
568
- readonly clefLineDiatonicId: number;
569
- readonly middleLineDiatonicId: number;
570
- readonly minDiatonicId: number;
571
- readonly maxDiatonicId: number;
572
- readonly clefImageAsset: ImageAsset;
573
- readonly topLineDiatonicId: number;
574
- readonly bottomLineDiatonicId: number;
575
- readonly octaveLower: boolean;
576
- constructor(clef: Clef, clefLineDiatonicId: number, middleLineDiatonicId: number, minDiatonicId: number, maxDiatonicId: number);
577
- topLineY: number;
578
- bottomLineY: number;
579
- get middleLineY(): number;
580
- offset(dx: number, dy: number): void;
581
- getLineSpacing(): number;
582
- getDiatonicSpacing(): number;
583
- containsDiatonicId(diatonicId: number): boolean;
584
- getDiatonicIdY(diatonicId: number): number;
585
- getDiatonicIdAt(y: number): number | undefined;
586
- isLine(diatonicId: number): boolean;
587
- isSpace(diatonicId: number): boolean;
588
- }
589
- declare class GuitarTab {
590
- top: number;
591
- bottom: number;
592
- /** Return Y coordinate of string. */
593
- getStringY(stringId: number): number;
594
- offset(dx: number, dy: number): void;
595
- }
596
-
597
- declare class ObjScoreRow extends MusicObject {
598
- readonly doc: ObjDocument;
599
- readonly staffPreset: StaffPreset;
600
- private prevRow?;
601
- private nextRow?;
602
- private minWidth;
603
- private readonly staves;
604
- private tab?;
605
- private readonly measures;
606
- private needLayout;
607
- readonly mi: MScoreRow;
608
- constructor(doc: ObjDocument);
609
- getMusicInterface(): MScoreRow;
610
- get hasStaff(): boolean;
611
- get hasTab(): boolean;
612
- getTab(): GuitarTab | undefined;
613
- getStaves(): ReadonlyArray<MusicStaff>;
614
- getTopStaff(): MusicStaff;
615
- getBottomStaff(): MusicStaff;
616
- getStaff(diatonicId: number): MusicStaff | undefined;
617
- getLowestDiatonicId(): number | undefined;
618
- pick(x: number, y: number): MusicObject[];
619
- getArcsContentRect(): DivRect;
620
- getDiatonicIdAt(y: number): number | undefined;
621
- addMeasure(m: ObjMeasure): void;
622
- getMeasures(): ReadonlyArray<ObjMeasure>;
623
- isFirstRow(): boolean;
624
- isLastRow(): boolean;
625
- getPrevRow(): ObjScoreRow | undefined;
626
- getNextRow(): ObjScoreRow | undefined;
627
- getFirstMeasure(): ObjMeasure | undefined;
628
- getLastMeasure(): ObjMeasure | undefined;
629
- getMinWidth(): number;
630
- requestLayout(): void;
631
- layout(renderer: Renderer): void;
632
- layoutWidth(renderer: Renderer, width: number): void;
633
- layoutArcsAndBeams(renderer: Renderer): void;
634
- private setObjectY;
635
- private alignObjectsY;
636
- layoutLayoutGroup(renderer: Renderer, layoutGroup: LayoutGroup, verticalPos: VerticalPos): void;
637
- layoutPadding(renderer: Renderer): void;
638
- layoutDone(): void;
639
- offset(dx: number, dy: number): void;
640
- draw(renderer: Renderer): void;
641
- }
642
-
643
- declare class ObjDocument extends MusicObject {
644
- readonly mi: MDocument;
645
- readonly staffPreset: StaffPreset;
646
- readonly options?: DocumentOptions | undefined;
647
- private needLayout;
648
- private needUpdate;
649
- private renderer?;
650
- private readonly rows;
651
- private readonly measures;
652
- readonly measuresPerRow?: number;
653
- readonly tuningName: string;
654
- readonly tuningStrings: ReadonlyArray<Note>;
655
- readonly tuningLabel: string;
656
- readonly fullDiatonicRange: boolean;
657
- private header?;
658
- private layoutGroups;
659
- private newRowRequested;
660
- private allArcsProps;
661
- constructor(mi: MDocument, staffPreset: StaffPreset, options?: DocumentOptions | undefined);
662
- getMusicInterface(): MDocument;
663
- addArcProps(arc: ArcProps): void;
664
- getLayoutGroup(lauoutGroupId: LayoutGroupId): LayoutGroup;
665
- setRenderer(renderer?: Renderer): void;
666
- setHeader(title?: string, composer?: string, arranger?: string): void;
667
- getTitle(): string | undefined;
668
- hasSingleMeasure(): boolean;
669
- getFirstMeasure(): ObjMeasure | undefined;
670
- getLastMeasure(): ObjMeasure | undefined;
671
- getFirstRow(): ObjScoreRow | undefined;
672
- getLastRow(): ObjScoreRow | undefined;
673
- isLastRowEmpty(): boolean;
674
- isLastRowFull(): boolean;
675
- requestNewRow(): void;
676
- addMeasure(): ObjMeasure;
677
- getVoiceSymbols(voiceId: number): ReadonlyArray<RhythmSymbol>;
678
- removeLayoutObjects(musicObj: MusicObject): void;
679
- update(): void;
680
- private forEachMeasure;
681
- resetMeasures(): void;
682
- updateCursorRect(cursorRect?: DivRect): void;
683
- requestLayout(): void;
684
- requestFullLayout(): void;
685
- layout(): void;
686
- drawContent(): void;
687
- pickStaffPosAt(x: number, y: number): {
688
- scoreRow: ObjScoreRow;
689
- diatonicId: number;
690
- } | undefined;
691
- pick(x: number, y: number): MusicObject[];
692
- }
693
-
694
- declare enum ImageAsset {
695
- TrebleClefPng = 0,
696
- BassClefPng = 1
697
- }
698
- declare class Renderer {
699
- private readonly mi;
700
- readonly devicePixelRatio: number;
701
- readonly fontSize: number;
702
- readonly unitSize: number;
703
- readonly lineWidth: number;
704
- readonly beamThickness: number;
705
- private scoreEventListener?;
706
- private canvas?;
707
- private ctx?;
708
- private mdoc?;
709
- private cursorRect?;
710
- private mousePos?;
711
- private curStaffPos?;
712
- private curObjects?;
713
- private hilightedStaffPos?;
714
- private hilightedObj?;
715
- private usingTouch;
716
- private onClickFn;
717
- private onMouseMoveFn;
718
- private onMouseLeaveFn;
719
- private onTouchEndFn;
720
- constructor(mi: MRenderer);
721
- getMusicInterface(): MRenderer;
722
- get doc(): ObjDocument | undefined;
723
- private finishImageAsset;
724
- getImageAsset(imageAsset: ImageAsset): HTMLImageElement | undefined;
725
- setDocument(mdoc?: MDocument): void;
726
- setCanvas(canvas: HTMLCanvasElement): void;
727
- setScoreEventListener(fn: ScoreEventListener): void;
728
- needMouseInput(): boolean;
729
- getMousePos(e: MouseEvent): Vec2;
730
- private updateCurStaffPos;
731
- private updateCurObjects;
732
- onClick(e: MouseEvent): void;
733
- onMouseMove(e: MouseEvent): void;
734
- onMouseLeave(e: MouseEvent): void;
735
- onTouchEnd(e: TouchEvent): void;
736
- onLoad(): void;
737
- hilightObject(obj?: MusicObject): void;
738
- hilightStaffPos(staffPos?: {
739
- scoreRow: ObjScoreRow;
740
- diatonicId: number;
741
- }): void;
742
- updateCursorRect(cursorRect: DivRect | undefined): void;
743
- updateCanvasSize(): void;
744
- draw(): void;
745
- drawHilightStaffPosRect(): void;
746
- drawHilightObjectRect(): void;
747
- drawPlayCursor(): void;
748
- txFromScreenCoord(screenCoord: Vec2): Vec2;
749
- txToScreenCoord(coord: Vec2): Vec2;
750
- getCanvasContext(): CanvasRenderingContext2D | undefined;
751
- clearCanvas(): void;
752
- getTextWidth(text: string, font: string): number;
753
- drawDebugRect(r: DivRect): void;
754
- fillCircle(x: number, y: number, radius: number, color?: string): void;
755
- drawLine(startX: number, startY: number, endX: number, endY: number, color?: string, lineWidth?: number): void;
756
- drawPartialLine(startX: number, startY: number, endX: number, endY: number, startT: number, endT: number, color?: string, lineWidth?: number): void;
757
- drawLedgerLines(row: ObjScoreRow, diatonicId: number, x: number): void;
758
- }
759
-
760
- declare class ObjEnding extends MusicObject {
761
- readonly measure: ObjMeasure;
762
- readonly passages: number[];
763
- private endingText;
764
- private shapeRects;
765
- readonly mi: MEnding;
766
- constructor(measure: ObjMeasure, passages: number[]);
767
- getMusicInterface(): MEnding;
768
- getShapeRects(): DivRect[];
769
- isSingleMeasureEnding(): boolean;
770
- hasPassage(pass: number): boolean;
771
- getHighestPassage(): number;
772
- pick(x: number, y: number): MusicObject[];
773
- layout(renderer: Renderer): void;
774
- layoutFitToMeasure(renderer: Renderer): void;
775
- offset(dx: number, dy: number): void;
776
- draw(renderer: Renderer): void;
777
- }
778
-
779
- declare class ObjFermata extends MusicObject {
780
- readonly pos: VerticalPos;
781
- private color;
782
- readonly mi: MFermata;
783
- constructor(parent: ObjRhythmColumn | ObjBarLineRight, pos: VerticalPos);
784
- getMusicInterface(): MFermata;
785
- static getFermataPositions(anchor: ObjRhythmColumn | ObjBarLineRight): VerticalPos[];
786
- pick(x: number, y: number): MusicObject[];
787
- layout(renderer: Renderer): void;
788
- offset(dx: number, dy: number): void;
789
- draw(renderer: Renderer): void;
790
- }
791
-
792
- declare class ObjSpecialText extends MusicObject {
793
- readonly text: string;
794
- static toCoda: string;
795
- static Coda: string;
796
- static Segno: string;
797
- private components;
798
- readonly mi: MSpecialText;
799
- constructor(parent: MusicObject, text: string);
800
- getMusicInterface(): MSpecialText;
801
- getText(): string;
802
- pick(x: number, y: number): MusicObject[];
803
- layout(renderer: Renderer): void;
804
- offset(dx: number, dy: number): void;
805
- draw(renderer: Renderer): void;
806
- }
807
-
808
- type BoxType = "square" | "rectangle" | "circle" | "ellipse";
809
- type TextProps = string | {
810
- text: string;
811
- scale?: number;
812
- color?: string;
813
- bold?: boolean;
814
- italic?: boolean;
815
- boxed?: BoxType;
816
- padding?: number;
817
- bgcolor?: string;
818
- };
819
- declare class ObjText extends MusicObject {
820
- private anchorX;
821
- private anchorY;
822
- private readonly text;
823
- private readonly scale;
824
- private readonly color;
825
- private readonly bold;
826
- private readonly italic;
827
- private readonly boxed;
828
- private readonly padding;
829
- private readonly bgcolor?;
830
- private font;
831
- private textLines;
832
- private lineWidths;
833
- private lineHeight;
834
- readonly mi: MText;
835
- constructor(parent: MusicObject, text: TextProps, anchorX: number, anchorY: number);
836
- getMusicInterface(): MText;
837
- getText(): string;
838
- updateAnchorX(anchorX: number): void;
839
- updateAnchorY(anchorY: number): void;
840
- pick(x: number, y: number): MusicObject[];
841
- layout(renderer: Renderer): void;
842
- offset(dx: number, dy: number): void;
843
- draw(renderer: Renderer): void;
844
- }
845
-
846
- type ExtensionLineStyle = "solid" | "dashed";
847
- type ExtensionLinePos = "bottom" | "middle";
848
- type ExtensionRangeInfo = {
849
- startColumn: ObjRhythmColumn;
850
- endColumn: ObjRhythmColumn;
851
- columnRange: ObjRhythmColumn[];
852
- extensionBreakText?: string;
853
- };
854
- declare class Extension extends MusicObjectLink {
855
- private readonly length;
856
- private readonly visible;
857
- private readonly lineStyle;
858
- private readonly linePos;
859
- private readonly startColumn;
860
- private readonly context;
861
- constructor(head: MusicObject, startColumn: ObjRhythmColumn, length: number, visible: boolean, lineStyle: ExtensionLineStyle, linePos: ExtensionLinePos);
862
- isVisible(): boolean;
863
- getLineStyle(): ExtensionLineStyle;
864
- getLinePos(): ExtensionLinePos;
865
- private getSpanBreakText;
866
- getExtensionRangeInfo(): ExtensionRangeInfo;
867
- }
868
-
869
- type ExtensionLineLeftObj = ObjBarLineLeft | MusicObject;
870
- type ExtensionLineRightObj = ObjRhythmColumn | ObjBarLineRight;
871
- declare class ObjExtensionLine extends MusicObject {
872
- readonly measure: ObjMeasure;
873
- readonly extension: Extension;
874
- readonly leftObj: ExtensionLineLeftObj;
875
- readonly rightObj: ExtensionLineRightObj;
876
- readonly mi: MExtensionLine;
877
- constructor(measure: ObjMeasure, extension: Extension, leftObj: ExtensionLineLeftObj, rightObj: ExtensionLineRightObj);
878
- get row(): ObjScoreRow;
879
- getMusicInterface(): MExtensionLine;
880
- private getLineLeft;
881
- private getLineRight;
882
- layoutFitToMeasure(renderer: Renderer): void;
883
- pick(x: number, y: number): MusicObject[];
884
- layout(renderer: Renderer): void;
885
- offset(dx: number, dy: number): void;
886
- draw(renderer: Renderer): void;
887
- }
888
-
889
- declare enum LayoutGroupId {
890
- Fermata = 0,
891
- NoteLabel = 1,
892
- Navigation = 2,
893
- Ending = 3,
894
- TempoAnnotation = 4,
895
- DynamicsAnnotation = 5,
896
- ChordLabel = 6
897
- }
898
- declare enum VerticalPos {
899
- AboveStaff = 0,
900
- BelowStaff = 1
901
- }
902
- type LayoutableMusicObject = ObjText | ObjSpecialText | ObjExtensionLine | ObjFermata | ObjEnding;
903
- declare class LayoutObjectWrapper {
904
- readonly musicObj: LayoutableMusicObject;
905
- readonly layoutGroupId: LayoutGroupId;
906
- readonly verticalPos: VerticalPos;
907
- readonly anchor: MusicObject;
908
- readonly measure: ObjMeasure;
909
- readonly row: ObjScoreRow;
910
- readonly layoutGroup: LayoutGroup;
911
- private positionResolved;
912
- constructor(musicObj: LayoutableMusicObject, layoutGroupId: LayoutGroupId, verticalPos: VerticalPos);
913
- clearPositionResolved(): void;
914
- setPositionResolved(): void;
915
- isPositionResolved(): boolean;
916
- resolveClosestToStaffY(renderer: Renderer): number;
917
- getTextContent(): string | undefined;
918
- }
919
- declare class LayoutGroup {
920
- readonly layoutGroupId: number;
921
- private readonly layoutObjectTable;
922
- readonly rowAlign: boolean;
923
- readonly widensColumn: boolean;
924
- constructor(layoutGroupId: number);
925
- getLayoutObjects(verticalPos: VerticalPos): Readonly<LayoutObjectWrapper[]>;
926
- add(layoutObj: LayoutObjectWrapper): void;
927
- remove(layoutObj: LayoutObjectWrapper): void;
928
- clearPositionAndLayout(renderer: Renderer): void;
929
- }
930
-
931
- declare class MusicObjectLink {
932
- private head;
933
- private tail;
934
- constructor(head: MusicObject);
935
- getHead(): MusicObject;
936
- getTails(): ReadonlyArray<MusicObject>;
937
- addTail(obj: MusicObject): void;
938
- detachTail(obj: MusicObject): void;
939
- }
940
- declare abstract class MusicObject {
941
- protected readonly parent: MusicObject | undefined;
942
- protected rect: DivRect;
943
- private anchoredLayoutObjects;
944
- private link?;
945
- constructor(parent: MusicObject | undefined);
946
- abstract getMusicInterface(): MusicInterface;
947
- getParent(): MusicObject | undefined;
948
- getRect(): DivRect;
949
- /**
950
- * Most objects are simple rects in shape.
951
- * Some objects might be more complex consisting of multiple rects.
952
- * These rects are used to dodge overlapping objects.
953
- *
954
- * @returns Array of rects.
955
- */
956
- getShapeRects(): DivRect[];
957
- /**
958
- * Pick objects.
959
- *
960
- * @param x - X-coordinate.
961
- * @param y - Y-coordinate.
962
- * @returns Array of objects under (x, y)-coordinate in hierarchical order. Last object in array is the top-most object.
963
- */
964
- abstract pick(x: number, y: number): MusicObject[];
965
- addAnchoredLayoutObject(layoutObj: LayoutObjectWrapper): void;
966
- getAnchoredLayoutObjects(): ReadonlyArray<LayoutObjectWrapper>;
967
- setLink(link: MusicObjectLink): void;
968
- getLink(): MusicObjectLink | undefined;
969
- isLinked(): boolean;
970
- }
971
-
972
- declare class ObjAccidental extends MusicObject {
973
- readonly diatonicId: number;
974
- readonly accidental: Accidental;
975
- readonly color: string;
976
- readonly mi: MAccidental;
977
- constructor(parent: MusicObject, diatonicId: number, accidental: Accidental, color?: string);
978
- getMusicInterface(): MAccidental;
979
- pick(x: number, y: number): MusicObject[];
980
- layout(renderer: Renderer): void;
981
- offset(dx: number, dy: number): void;
982
- draw(renderer: Renderer): void;
983
- }
984
-
985
- declare class ObjArpeggio extends MusicObject {
986
- readonly col: ObjRhythmColumn;
987
- readonly arpeggioDir: Arpeggio;
988
- private topArrowHeight;
989
- private bottomArrowHeight;
990
- private static NumCycles;
991
- private cycleHeight;
992
- private color;
993
- readonly mi: MArpeggio;
994
- constructor(col: ObjRhythmColumn, arpeggioDir: Arpeggio);
995
- getMusicInterface(): MArpeggio;
996
- pick(x: number, y: number): MusicObject[];
997
- layout(renderer: Renderer): void;
998
- offset(dx: number, dy: number): void;
999
- draw(renderer: Renderer): void;
1000
- }
1001
-
1002
- declare class ObjHeader extends MusicObject {
1003
- readonly title?: string | undefined;
1004
- readonly composer?: string | undefined;
1005
- readonly arranger?: string | undefined;
1006
- private titleText?;
1007
- private composerText?;
1008
- private arrangerText?;
1009
- private tuningText?;
1010
- readonly mi: MHeader;
1011
- constructor(doc: ObjDocument, title?: string | undefined, composer?: string | undefined, arranger?: string | undefined);
1012
- getMusicInterface(): MHeader;
1013
- pick(x: number, y: number): MusicObject[];
1014
- layoutWidth(renderer: Renderer, width: number): void;
1015
- offset(dx: number, dy: number): void;
1016
- draw(renderer: Renderer): void;
1017
- }
1018
-
1019
- declare class ObjImage extends MusicObject {
1020
- readonly image: HTMLImageElement;
1021
- readonly anchorX: number;
1022
- readonly anchorY: number;
1023
- readonly imageScale: number;
1024
- readonly mi: MImage;
1025
- constructor(parent: MusicObject, image: HTMLImageElement, anchorX: number, anchorY: number, imageScale: number);
1026
- getMusicInterface(): MImage;
1027
- pick(x: number, y: number): MusicObject[];
1028
- layout(renderer: Renderer): void;
1029
- offset(dx: number, dy: number): void;
1030
- draw(renderer: Renderer): void;
1031
- }
1032
-
1033
- declare class ObjSignature extends MusicObject {
1034
- readonly measure: ObjMeasure;
1035
- readonly staff: MusicStaff;
1036
- private clefImage?;
1037
- private eightBelowClef?;
1038
- private measureNumber?;
1039
- private ksNeutralizeAccidentals;
1040
- private ksNewAccidentals;
1041
- private beatCountText?;
1042
- private beatSizeText?;
1043
- private tempoText?;
1044
- readonly mi: MSignature;
1045
- constructor(measure: ObjMeasure, staff: MusicStaff);
1046
- getMusicInterface(): MSignature;
1047
- updateClefImage(renderer: Renderer, showClef: boolean): void;
1048
- updateMeasureNumber(showMeasureNumber: boolean): void;
1049
- updateKeySignature(showKeySignature: boolean): void;
1050
- updateTimeSignature(showTimeSignature: boolean): void;
1051
- updateTempo(showTempo: boolean): void;
1052
- private getAccidentalDiatonicId;
1053
- pick(x: number, y: number): MusicObject[];
1054
- layout(renderer: Renderer): void;
1055
- offset(dx: number, dy: number): void;
1056
- draw(renderer: Renderer): void;
1057
- }
1058
-
1059
- /** @public */
1060
- declare abstract class MusicInterface {
1061
- readonly name: string;
1062
- constructor(name: string);
1063
- /** @internal */
1064
- abstract getMusicObject(): MusicObject;
1065
- getParent(): MusicInterface | undefined;
1066
- }
1067
- /** @public */
1068
- declare class MAccidental extends MusicInterface {
1069
- private readonly obj;
1070
- static readonly Name = "Accidental";
1071
- /** @internal */
1072
- constructor(obj: ObjAccidental);
1073
- /** @internal */
1074
- getMusicObject(): ObjAccidental;
1075
- getAccidental(): Accidental;
1076
- }
1077
- /** @public */
1078
- declare class MArc extends MusicInterface {
1079
- private readonly obj;
1080
- static readonly Name = "Arc";
1081
- /** @internal */
1082
- constructor(obj: ObjArc);
1083
- /** @internal */
1084
- getMusicObject(): ObjArc;
1085
- }
1086
- /** @public */
1087
- declare class MArpeggio extends MusicInterface {
1088
- private readonly obj;
1089
- static readonly Name = "Arpeggio";
1090
- /** @internal */
1091
- constructor(obj: ObjArpeggio);
1092
- /** @internal */
1093
- getMusicObject(): ObjArpeggio;
1094
- }
1095
- /** @public */
1096
- declare class MBeamGroup extends MusicInterface {
1097
- private readonly obj;
1098
- static readonly Name = "BeamGroup";
1099
- /** @internal */
1100
- constructor(obj: ObjBeamGroup);
1101
- /** @internal */
1102
- getMusicObject(): ObjBeamGroup;
1103
- }
1104
- /** @public */
1105
- declare class MDocument extends MusicInterface {
1106
- static readonly Name = "Document";
1107
- /** @internal */
1108
- readonly obj: ObjDocument;
1109
- constructor(staffPreset: StaffPreset, options?: DocumentOptions);
1110
- /** @internal */
1111
- getMusicObject(): ObjDocument;
1112
- setHeader(title?: string, composer?: string, arranger?: string): void;
1113
- getTitle(): string | undefined;
1114
- addMeasure(): MMeasure;
1115
- play(fn?: PlayStateChangeListener): MPlayer;
1116
- static createSimpleScaleArpeggio(staffPreset: StaffPreset, scale: Scale, bottomNote: string, numOctaves: number): MDocument;
1117
- }
1118
- /** @public */
1119
- declare class MEnding extends MusicInterface {
1120
- private readonly obj;
1121
- static readonly Name = "Ending";
1122
- /** @internal */
1123
- constructor(obj: ObjEnding);
1124
- /** @internal */
1125
- getMusicObject(): ObjEnding;
1126
- getPassages(): ReadonlyArray<number>;
1127
- hasPassage(passage: number): boolean;
1128
- }
1129
- /** @public */
1130
- declare class MFermata extends MusicInterface {
1131
- private readonly obj;
1132
- static readonly Name = "Fermata";
1133
- /** @internal */
1134
- constructor(obj: ObjFermata);
1135
- /** @internal */
1136
- getMusicObject(): ObjFermata;
1137
- }
1138
- /** @public */
1139
- declare class MHeader extends MusicInterface {
1140
- private readonly obj;
1141
- static readonly Name = "Header";
1142
- /** @internal */
1143
- constructor(obj: ObjHeader);
1144
- /** @internal */
1145
- getMusicObject(): ObjHeader;
1146
- getTitle(): string | undefined;
1147
- getComposer(): string | undefined;
1148
- getArranger(): string | undefined;
1149
- }
1150
- /** @public */
1151
- declare class MImage extends MusicInterface {
1152
- private readonly obj;
1153
- static readonly Name = "Image";
1154
- /** @internal */
1155
- constructor(obj: ObjImage);
1156
- /** @internal */
1157
- getMusicObject(): ObjImage;
1158
- }
1159
- /** @public */
1160
- declare class MMeasure extends MusicInterface {
1161
- private readonly obj;
1162
- static readonly Name = "Measure";
1163
- /** @internal */
1164
- constructor(obj: ObjMeasure);
1165
- /** @internal */
1166
- getMusicObject(): ObjMeasure;
1167
- getMeasureNumber(): number;
1168
- getRhythmColumns(): ReadonlyArray<MRhythmColumn>;
1169
- setKeySignature(tonic: string, scaleType: ScaleType): MMeasure;
1170
- setKeySignature(keySignature: KeySignature): MMeasure;
1171
- setKeySignature(scale: Scale): MMeasure;
1172
- setTimeSignature(timeSignature: TimeSignature | TimeSignatureString): MMeasure;
1173
- setTempo(beatsPerMinute: number, beatLength?: NoteLength, dotted?: boolean): MMeasure;
1174
- addNote(voiceId: number, note: Note | string, noteLength: NoteLength, options?: NoteOptions): MMeasure;
1175
- addChord(voiceId: number, notes: (Note | string)[], noteLength: NoteLength, options?: NoteOptions): MMeasure;
1176
- addRest(voiceId: number, restLength: NoteLength, options?: RestOptions): MMeasure;
1177
- addFermata(fermata?: Fermata): MMeasure;
1178
- addNavigation(navigation: Navigation): MMeasure;
1179
- addNavigation(navigation: Navigation.EndRepeat, playCount: number): MMeasure;
1180
- addNavigation(navigation: Navigation.Ending, ...passages: number[]): MMeasure;
1181
- addLabel(label: Label, text: string): MMeasure;
1182
- addAnnotation(annotation: Annotation, text: string): MMeasure;
1183
- addExtension(extensionLength: NoteLength | number, extensionVisible?: boolean): MMeasure;
1184
- endSong(): MMeasure;
1185
- endSection(): MMeasure;
1186
- endRow(): MMeasure;
1187
- completeRests(voiceId?: number): MMeasure;
1188
- }
1189
- /** @public */
1190
- declare class MBarLineRight extends MusicInterface {
1191
- private readonly obj;
1192
- static readonly Name = "BarLineRight";
1193
- /** @internal */
1194
- constructor(obj: ObjBarLineRight);
1195
- /** @internal */
1196
- getMusicObject(): ObjBarLineRight;
1197
- }
1198
- /** @public */
1199
- declare class MBarLineLeft extends MusicInterface {
1200
- private readonly obj;
1201
- static readonly Name = "BarLineLeft";
1202
- /** @internal */
1203
- constructor(obj: ObjBarLineLeft);
1204
- /** @internal */
1205
- getMusicObject(): ObjBarLineLeft;
1206
- }
1207
- /** @public */
1208
- declare class MNoteGroup extends MusicInterface {
1209
- private readonly obj;
1210
- static readonly Name = "NoteGroup";
1211
- /** @internal */
1212
- constructor(obj: ObjNoteGroup);
1213
- /** @internal */
1214
- getMusicObject(): ObjNoteGroup;
1215
- getNotes(): ReadonlyArray<Note>;
1216
- getRhythmProps(): RhythmProps;
1217
- }
1218
- /** @public */
1219
- declare class MRest extends MusicInterface {
1220
- private readonly obj;
1221
- static readonly Name = "Rest";
1222
- /** @internal */
1223
- constructor(obj: ObjRest);
1224
- /** @internal */
1225
- getMusicObject(): ObjRest;
1226
- getRhythmProps(): RhythmProps;
1227
- }
1228
- /** @public */
1229
- declare class MRhythmColumn extends MusicInterface {
1230
- private readonly obj;
1231
- static readonly Name = "RhythmColumn";
1232
- /** @internal */
1233
- constructor(obj: ObjRhythmColumn);
1234
- /** @internal */
1235
- getMusicObject(): ObjRhythmColumn;
1236
- getRhythmSymbol(voiceId: number): MNoteGroup | MRest | undefined;
1237
- }
1238
- /** @public */
1239
- declare class MScoreRow extends MusicInterface {
1240
- private readonly obj;
1241
- static readonly Name = "ScoreRow";
1242
- /** @internal */
1243
- constructor(obj: ObjScoreRow);
1244
- /** @internal */
1245
- getMusicObject(): ObjScoreRow;
1246
- getMeasures(): ReadonlyArray<MMeasure>;
1247
- }
1248
- /** @public */
1249
- declare class MSignature extends MusicInterface {
1250
- private readonly obj;
1251
- static readonly Name = "Signature";
1252
- /** @internal */
1253
- constructor(obj: ObjSignature);
1254
- /** @internal */
1255
- getMusicObject(): ObjSignature;
1256
- }
1257
- /** @public */
1258
- declare class MSpecialText extends MusicInterface {
1259
- private readonly obj;
1260
- static readonly Name = "SpecialText";
1261
- /** @internal */
1262
- constructor(obj: ObjSpecialText);
1263
- /** @internal */
1264
- getMusicObject(): ObjSpecialText;
1265
- }
1266
- /** @public */
1267
- declare class MText extends MusicInterface {
1268
- private readonly obj;
1269
- static readonly Name = "Text";
1270
- /** @internal */
1271
- constructor(obj: ObjText);
1272
- /** @internal */
1273
- getMusicObject(): ObjText;
1274
- getText(): string;
1275
- }
1276
- /** @public */
1277
- declare class MExtensionLine extends MusicInterface {
1278
- private readonly obj;
1279
- static readonly Name = "ExtensionLine";
1280
- /** @internal */
1281
- constructor(obj: ObjExtensionLine);
1282
- /** @internal */
1283
- getMusicObject(): ObjExtensionLine;
1284
- }
1285
- /** @public */
1286
- declare class MPlayer {
1287
- private static currentlyPlaying;
1288
- private readonly player;
1289
- constructor(doc: MDocument, fn?: PlayStateChangeListener);
1290
- static stopAll(): void;
1291
- play(): this;
1292
- pause(): this;
1293
- stop(): this;
1294
- }
1295
- /** @public */
1296
- declare class MRenderer {
1297
- private readonly renderer;
1298
- constructor();
1299
- setDocument(doc?: MDocument): this;
1300
- setCanvas(canvas: HTMLCanvasElement | string): this;
1301
- setScoreEventListener(fn: ScoreEventListener): void;
1302
- hilightObject(obj?: MusicInterface): void;
1303
- hilightStaffPos(staffPos?: {
1304
- scoreRow: MScoreRow;
1305
- diatonicId: number;
1306
- }): void;
1307
- draw(): void;
1308
- }
1309
- /** @public */
1310
- declare class MPlaybackButtons {
1311
- private playButton?;
1312
- private stopButton?;
1313
- private playStopButton?;
1314
- private pauseButton?;
1315
- private onPlay;
1316
- private onStop;
1317
- private onPlayStop;
1318
- private onPause;
1319
- private playLabel;
1320
- private stopLabel;
1321
- private pauseLabel;
1322
- private playState;
1323
- private player?;
1
+ import { S as StaffPreset, a as ScoreConfiguration, O as ObjMeasure, M as MDocument, N as NoteOptions, R as RestOptions, F as Fermata, b as Navigation, C as Connective, T as TieType, c as NoteAnchor, L as Label, A as Annotation } from '../interface-CLb7xa7_.mjs';
2
+ export { a3 as Arpeggio, X as Clef, a4 as ConnectiveSpan, D as DivRect, j as MAccidental, l as MArpeggio, u as MBarLineLeft, t as MBarLineRight, m as MBeamGroup, k as MConnective, o as MEnding, Q as MExtensionLine, p as MFermata, q as MHeader, r as MImage, s as MMeasure, w as MNoteGroup, W as MPlaybackButtons, U as MPlayer, V as MRenderer, z as MRest, E as MRhythmColumn, G as MScoreRow, J as MSignature, K as MSpecialText, H as MStaff, n as MStaffBeamGroup, x as MStaffNoteGroup, B as MStaffRest, v as MStaffTabBarLine, I as MTab, y as MTabNoteGroup, P as MText, i as MusicInterface, a5 as PlayState, a6 as PlayStateChangeListener, e as ScoreEvent, h as ScoreEventListener, d as ScoreEventType, g as ScoreObjectEvent, f as ScoreStaffPosEvent, Y as StaffConfig, a2 as Stem, a0 as StringNumber, Z as TabConfig, _ as VoiceId, a1 as getStringNumbers, $ as getVoiceIds } from '../interface-CLb7xa7_.mjs';
3
+ import { N as Note } from '../note-B5ZtlHc8.mjs';
4
+ import { S as ScaleType, c as Scale } from '../scale-C-YS5iVG.mjs';
5
+ import { K as KeySignature, a as TimeSignature, T as TimeSignatureString, N as NoteLength } from '../tempo-TjQKn46X.mjs';
6
+ import '@tspro/ts-utils-lib';
7
+
8
+ declare class DocumentBuilder {
9
+ private readonly doc;
1324
10
  constructor();
1325
- setDocument(doc?: MDocument): this;
1326
- detachDocument(): void;
1327
- private updateButtons;
1328
- setPlayButton(btn: HTMLButtonElement | string, btnLabel?: string): this;
1329
- setStopButton(btn: HTMLButtonElement | string, btnLabel?: string): this;
1330
- setPlayStopButton(btn: HTMLButtonElement | string, playLabel?: string, stopLabel?: string): this;
1331
- setPauseButton(btn: HTMLButtonElement | string, btnLabel?: string): this;
1332
- private static savedOnClickListeners;
1333
- private static removeOnClickListeners;
1334
- private static addOnClickListener;
1335
- }
1336
-
1337
- /** @public */
1338
- type ScoreEventType = "enter" | "leave" | "click";
1339
- /** @public */
1340
- declare abstract class ScoreEvent {
1341
- readonly type: ScoreEventType;
1342
- constructor(type: ScoreEventType);
1343
- }
1344
- /** @public */
1345
- declare class ScoreStaffPosEvent extends ScoreEvent {
1346
- readonly renderer: MRenderer;
1347
- readonly scoreRow: MScoreRow;
1348
- readonly diatonicId: number;
1349
- constructor(type: ScoreEventType, renderer: MRenderer, scoreRow: MScoreRow, diatonicId: number);
1350
- }
1351
- /** @public */
1352
- declare class ScoreObjectEvent extends ScoreEvent {
1353
- readonly renderer: MRenderer;
1354
- readonly objects: MusicInterface[];
1355
- constructor(type: ScoreEventType, renderer: MRenderer, objects: MusicInterface[]);
1356
- get topObject(): MusicInterface;
1357
- findObject(fn: (obj: MusicInterface) => boolean): MusicInterface | undefined;
1358
- }
1359
- /** @public */
1360
- type ScoreEventListener = (event: ScoreEvent) => void;
1361
-
1362
- /**
1363
- * @public
1364
- *
1365
- * DivRect class, left, top, right, bottom rectangle divided into four sections by centerX, centerY.
1366
- */
1367
- declare class DivRect {
1368
- left: number;
1369
- centerX: number;
1370
- right: number;
1371
- top: number;
1372
- centerY: number;
1373
- bottom: number;
1374
- /**
1375
- * Create rectangle with all zero values.
1376
- */
1377
- constructor();
1378
- /**
1379
- * Create rectangle with left, right, top, bottom.
1380
- * Properties centerX and centerY will be centered in the middle.
1381
- *
1382
- * @param left -
1383
- * @param right -
1384
- * @param top -
1385
- * @param bottom -
1386
- */
1387
- constructor(left: number, right: number, top: number, bottom: number);
1388
- /**
1389
- * Create rectangle with full arguments.
1390
- *
1391
- * @param left -
1392
- * @param centerX -
1393
- * @param right -
1394
- * @param top -
1395
- * @param centerY -
1396
- * @param bottom -
1397
- */
1398
- constructor(left: number, centerX: number, right: number, top: number, centerY: number, bottom: number);
1399
- /**
1400
- * Create rect from basic left, top, width and height arguments.
1401
- *
1402
- * @param left -
1403
- * @param top -
1404
- * @param width -
1405
- * @param height -
1406
- * @returns
1407
- */
1408
- static create(left: number, top: number, width: number, height: number): DivRect;
1409
- /**
1410
- * Create rect from centerX, centerY, width, height arguments.
1411
- *
1412
- * @param centerX - Center x-coordinate.
1413
- * @param centerY - Center y-coordinate.
1414
- * @param width -
1415
- * @param height -
1416
- * @returns
1417
- */
1418
- static createCentered(centerX: number, centerY: number, width: number, height: number): DivRect;
1419
- /**
1420
- * Create rect from sections.
1421
- *
1422
- * @param leftw - Left section width.
1423
- * @param rightw - Right section width.
1424
- * @param toph - Top section height.
1425
- * @param bottomh - Bottomsection height.
1426
- * @returns
1427
- */
1428
- static createSections(leftw: number, rightw: number, toph: number, bottomh: number): DivRect;
1429
- /**
1430
- * Width.
1431
- */
1432
- get width(): number;
1433
- /**
1434
- * Height.
1435
- */
1436
- get height(): number;
1437
- /**
1438
- * Left section width.
1439
- */
1440
- get leftw(): number;
1441
- /**
1442
- * Right section width.
1443
- */
1444
- get rightw(): number;
1445
- /**
1446
- * Top section height.
1447
- */
1448
- get toph(): number;
1449
- /**
1450
- * Bottom section height.
1451
- */
1452
- get bottomh(): number;
1453
- /**
1454
- * Does this Rect contain given (x, y)-point?
1455
- *
1456
- * @param x -
1457
- * @param y -
1458
- * @returns
1459
- */
1460
- contains(x: number, y: number): boolean;
1461
- /**
1462
- * Do a and b rects overlap?
1463
- *
1464
- * @param a -
1465
- * @param b -
1466
- * @returns
1467
- */
1468
- static overlap(a: DivRect, b: DivRect): boolean;
1469
- /**
1470
- * Do horizontal measures of a and b rects overlap?
1471
- *
1472
- * @param a -
1473
- * @param b -
1474
- * @returns
1475
- */
1476
- static overlapX(a: DivRect, b: DivRect): boolean;
1477
- /**
1478
- * Check if this Rect equals with given Rect.
1479
- * @param b -
1480
- * @returns
1481
- */
1482
- static equals(a: DivRect | null | undefined, b: DivRect | null | undefined): boolean;
1483
- /**
1484
- * Check if frame (ignoring centerX/Y) of this Rect equals with given Rect, ignoring centerX and centerY.
1485
- *
1486
- * @param b -
1487
- * @returns
1488
- */
1489
- static equalsFrame(a: DivRect | null | undefined, b: DivRect | null | undefined): boolean;
1490
- /**
1491
- * Created duplicate of this Rect.
1492
- *
1493
- * @returns
1494
- */
1495
- copy(): DivRect;
1496
- /**
1497
- * Move this rect by (dx, dy). Modifies this Rect.
1498
- *
1499
- * @param dx -
1500
- * @param dy -
1501
- * @returns
1502
- */
1503
- offsetInPlace(dx: number, dy: number): this;
1504
- /**
1505
- * Move this rect by (dx, dy). Immutable, returns modified copy.
1506
- *
1507
- * @param dx -
1508
- * @param dy -
1509
- * @returns
1510
- */
1511
- offsetCopy(dx: number, dy: number): DivRect;
1512
- /**
1513
- * Expand this Rect by given Rect. Modifies this Rect.
1514
- *
1515
- * @param rect -
1516
- * @returns
1517
- */
1518
- expandInPlace(rect: DivRect): this;
1519
- /**
1520
- * Expand this Rect by given Rect. Immutable, returns modified copy.
1521
- *
1522
- * @param rect -
1523
- * @returns
1524
- */
1525
- expandCopy(rect: DivRect): DivRect;
1526
- /**
1527
- * Clip this Rect by given Rect. Mmodifies this Rect.
1528
- *
1529
- * @param clipRect -
1530
- * @returns
1531
- */
1532
- clipInPlace(clipRect: DivRect): this;
1533
- /**
1534
- * Clip this Rect by given Rect. Immutable, return modified copy.
1535
- *
1536
- * @param clipRect -
1537
- * @returns
1538
- */
1539
- clipCopy(clipRect: DivRect): DivRect;
1540
- /**
1541
- * Scale Rect. Anchor pos is (centerX, centerY). Modifies this Rect.
1542
- *
1543
- * @param scaleX -
1544
- * @param scaleY -
1545
- * @returns Copy of scaled Rect.
1546
- */
1547
- scaleInPlace(scaleX: number, scaleY?: number): this;
1548
- /**
1549
- * Scale Rect. Anchor pos is (centerX, centerY). Immutable, returns modified copy.
1550
- *
1551
- * @param scaleX -
1552
- * @param scaleY -
1553
- * @returns Copy of scaled Rect.
1554
- */
1555
- scaleCopy(scaleX: number, scaleY?: number): DivRect;
1556
- }
1557
-
1558
- export { Annotation, Arpeggio, DivRect, type DocumentOptions, Fermata, Label, MAccidental, MArc, MArpeggio, MBarLineLeft, MBarLineRight, MBeamGroup, MDocument, MEnding, MExtensionLine, MFermata, MHeader, MImage, MMeasure, MNoteGroup, MPlaybackButtons, MPlayer, MRenderer, MRest, MRhythmColumn, MScoreRow, MSignature, MSpecialText, MText, MusicInterface, Navigation, NoteAnchor, type NoteOptions, PlayState, type PlayStateChangeListener, type RestOptions, ScoreEvent, type ScoreEventListener, type ScoreEventType, ScoreObjectEvent, ScoreStaffPosEvent, type SlurSpan, StaffPreset, Stem, type StringNumber, type TieSpan, TieType, type VoiceId, getStringNumbers, getVoiceIds };
11
+ setScoreConfiguration(staffPreset: StaffPreset): DocumentBuilder;
12
+ setScoreConfiguration(config: ScoreConfiguration): DocumentBuilder;
13
+ getMeasure(): ObjMeasure;
14
+ getDocument(): MDocument;
15
+ setHeader(title?: string, composer?: string, arranger?: string): DocumentBuilder;
16
+ setMeasuresPerRow(measuresPerRow: number): DocumentBuilder;
17
+ addMeasure(): DocumentBuilder;
18
+ setKeySignature(tonic: string, scaleType: ScaleType): DocumentBuilder;
19
+ setKeySignature(keySignature: KeySignature): DocumentBuilder;
20
+ setKeySignature(scale: Scale): DocumentBuilder;
21
+ setTimeSignature(timeSignature: TimeSignature | TimeSignatureString): DocumentBuilder;
22
+ setTempo(beatsPerMinute: number, beatLength?: NoteLength, dotted?: boolean): DocumentBuilder;
23
+ addNote(voiceId: number, note: Note | string, noteLength: NoteLength, options?: NoteOptions): DocumentBuilder;
24
+ addChord(voiceId: number, notes: (Note | string)[], noteLength: NoteLength, options?: NoteOptions): DocumentBuilder;
25
+ addRest(voiceId: number, restLength: NoteLength, options?: RestOptions): DocumentBuilder;
26
+ addFermata(fermata?: Fermata): DocumentBuilder;
27
+ addNavigation(navigation: Navigation): DocumentBuilder;
28
+ addNavigation(navigation: Navigation.EndRepeat, playCount: number): DocumentBuilder;
29
+ addNavigation(navigation: Navigation.Ending, ...passages: number[]): DocumentBuilder;
30
+ addConnective(connective: Connective.Tie, tieSpan?: number | TieType, notAnchor?: NoteAnchor): DocumentBuilder;
31
+ addConnective(connective: Connective.Slur, slurSpan?: number, notAnchor?: NoteAnchor): DocumentBuilder;
32
+ addConnective(connective: Connective.Slide, notAnchor?: NoteAnchor): DocumentBuilder;
33
+ addLabel(label: Label, text: string): DocumentBuilder;
34
+ addAnnotation(annotation: Annotation, text: string): DocumentBuilder;
35
+ addExtension(extensionLength: NoteLength | number, extensionVisible?: boolean): DocumentBuilder;
36
+ endSong(): DocumentBuilder;
37
+ endSection(): DocumentBuilder;
38
+ endRow(): DocumentBuilder;
39
+ completeRests(voiceId?: number): DocumentBuilder;
40
+ addScaleArpeggio(scale: Scale, bottomNote: string, numOctaves: number): DocumentBuilder;
41
+ }
42
+
43
+ export { Annotation, Connective, DocumentBuilder, Fermata, Label, MDocument, Navigation, NoteAnchor, NoteOptions, RestOptions, ScoreConfiguration, StaffPreset, TieType };