@coderline/alphatab 1.3.0-alpha.439 → 1.3.0-alpha.477

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.
package/README.md CHANGED
@@ -1,42 +1,39 @@
1
1
  # AlphaTab
2
- [![Official Site](https://img.shields.io/badge/site-alphatab.net-blue.svg)](https://alphatab.net)
2
+
3
+ [![Official Site](https://img.shields.io/badge/site-alphatab.net-blue.svg)](https://www.alphatab.net/)
4
+ [![Documentation](https://img.shields.io/badge/docs-alphatab.net-blue.svg)](https://www.alphatab.net/docs/introduction)
3
5
  [![License MPL-2.0](https://img.shields.io/badge/license-MPL--2.0-green.svg)](https://www.mozilla.org/en-US/MPL/2.0/)
4
6
  [![Twitter](https://img.shields.io/badge/twitter-alphaTabMusic-blue.svg)](https://twitter.com/alphaTabMusic)
5
7
  [![Facebook](https://img.shields.io/badge/facebook-alphaTabMusic-blue.svg)](https://facebook.com/alphaTabMusic)
8
+ [![Build](https://github.com/CoderLine/alphaTab/workflows/Build/badge.svg?branch=develop)](https://github.com/CoderLine/alphaTab/actions/workflows/build.yml)
6
9
 
7
10
  alphaTab is a cross platform music notation and guitar tablature rendering library. You can use alphaTab within your own website or application to load and display music sheets from data sources like Guitar Pro or the built in markup language named alphaTex.
8
11
 
9
12
  ![alphaTab](img/banner.png?raw=true "alphaTab")
10
13
 
11
- # Getting Started
12
-
13
- To get started follow our guides and tutorials at:
14
+ ## Getting Started
14
15
 
15
- * https://www.alphatab.net/docs/introduction
16
- * https://www.alphatab.net/docs/tutorials
16
+ To get started follow our guides and tutorials at:
17
17
 
18
- ## Build Status
18
+ * <https://www.alphatab.net/docs/introduction>
19
+ * <https://www.alphatab.net/docs/tutorials>
19
20
 
20
- &nbsp; | &nbsp;
21
- --- | ---
22
- **Build** | ![Build](https://github.com/CoderLine/alphaTab/workflows/Build/badge.svg?branch=develop)
23
- **Documentation** | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](https://www.alphatab.net/)
21
+ ## Features
24
22
 
25
- # Features
26
- alphaTab mostly focuses on web based platforms allowing music notation to be embedded into websites and browser based apps but is designed to be used also from various other platforms like .net and Android either as a platform native integration or through runtime specific JavaScript engines.
23
+ alphaTab mostly focuses on web based platforms allowing music notation to be embedded into websites and browser based apps but is also designed to be used on various other platforms like .net and Android either as a platform native integration or through runtime specific JavaScript engines.
27
24
 
28
25
  alphaTab can load music notation from various sources like Guitar Pro 3-7, AlphaTex and MusicXML (experimental) and render them into beautiful music sheets right within your browser (or application). Using a built in midi synthesizer named alphaSynth the music sheets can also be played in your browser.
29
26
 
30
- * load GuitarPro 3-5, GuitarPro 6, Guitar Pro 7, AlphaTex or MusicXML (experimental)
31
- * render as SVG or Raster Graphics (raster graphics depends on platform: HTML5 canvas, GDI+, SkiaSharp, Android Canvas)...
32
- * display single or multiple instruments as standard music notation and guitar tablatures consisting of song information, repeats, alternate endings, guitar tunints, clefs, key signatures, time signatures, notes, rests, accidentals, drum tabs, piano grand staff, tied notes, grace notes, dead notes, ghost notes, markers, tempos, lyrics, chords, vibratos, dynamics, tap/slap/pop, fade-in, let-ring, palm-mute, string bends, whammy bar, tremolo picking, strokes, slides, trills, pick strokes, tuplets, fingering, triplet feels,...
33
- * adapt to your responsive design by dynamic resizing
34
- * play the music sheet via built-in Midi+SoundFont2 Synthesizer (output depends on platform: HTML5 Web Audio, NAudio, Android AudioTrack)
27
+ * Load GuitarPro 3-5, GuitarPro 6, Guitar Pro 7, AlphaTex or MusicXML (experimental)
28
+ * Render as SVG or Raster Graphics (raster graphics depends on platform: HTML5 canvas, GDI+, SkiaSharp, Android Canvas)...
29
+ * Display single or multiple instruments as standard music notation and guitar tablatures consisting of song information, repeats, alternate endings, guitar tunints, clefs, key signatures, time signatures, notes, rests, accidentals, drum tabs, piano grand staff, tied notes, grace notes, dead notes, ghost notes, markers, tempos, lyrics, chords, vibratos, dynamics, tap/slap/pop, fade-in, let-ring, palm-mute, string bends, whammy bar, tremolo picking, strokes, slides, trills, pick strokes, tuplets, fingering, triplet feels,...
30
+ * Adapt to your responsive design by dynamic resizing
31
+ * Play the music sheet via built-in Midi+SoundFont2 Synthesizer (output depends on platform: HTML5 Web Audio, NAudio, Android AudioTrack)
35
32
 
36
- # Officially Supported Platforms
33
+ ## Officially Supported Platforms
37
34
 
38
- Platform | Support | Availability |
39
- ----------|---------|-------|
35
+ Platform | Support | Availability
36
+ ----------|---------|--------------
40
37
  Browsers using `script` includes (UMD) | Full experience including low level APIs, Background Workers, Audio Playback, SVG and HTML5 rendering. UI level integration for user interaction and automatic resizing. | 1.0-latest
41
38
  Node.js using `require` (UMD) | Access to all low level APIs and SVG rendering | 1.0-latest
42
39
  .net standard 2.0 | Access to all low level APIs and multiple render engines (SVG, GDI+, SkiaSharp) | 1.0-latest
@@ -48,7 +45,7 @@ Node.js using `import` (ESM) | Access to all low level APIs and SVG rendering |
48
45
  .net6.0-windows (WinForms) | Full experience including low level APIs, Background Workers, Audio Playback (through NAudio), SVG and HTML5 rendering. UI level integration for user interaction and automatic resizing. Reduced UI level integration related to transparency and animations. | 1.3 (pre-release :warning:)
49
46
  Android (Kotlin) | Full experience including low level APIs, Background Workers, Audio Playback, Android Canvas and SVG rendering. UI level integration for user interaction and automatic resizing. Reduced UI level integration related to transparency and animations. | 1.3 (pre-release :warning:)
50
47
 
51
- # Thanks to...
48
+ ## Thanks to...
52
49
 
53
50
  ... our friends of BrowserStack for a free plan. This allows me to test alphaTab on all browsers on all operating systems. Only with this I can ensure that alphaTab is shown to all your visitors as expected.
54
51
 
@@ -63,6 +60,6 @@ Android (Kotlin) | Full experience including low level APIs, Background Workers,
63
60
  Copyright © 2000-2022 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o.
64
61
  </p>
65
62
 
66
- ... to [Bernhard Schelling](https://github.com/schellingb/TinySoundFont) the author of TinySoundFont and [Steve Folta](https://github.com/stevefolta/SFZero) the author of SFZero for providing the core of the synthesis engine.
63
+ ... [Bernhard Schelling](https://github.com/schellingb/TinySoundFont) the author of TinySoundFont and [Steve Folta](https://github.com/stevefolta/SFZero) the author of SFZero for providing the core of the synthesis engine.
67
64
 
68
- ... to all you people using alphaTab providing new feature ideas and bug reports.
65
+ ... all you people using alphaTab providing new feature ideas and bug reports.
@@ -1864,7 +1864,7 @@ declare class Track {
1864
1864
  percussionArticulations: InstrumentArticulation[];
1865
1865
  ensureStaveCount(staveCount: number): void;
1866
1866
  addStaff(staff: Staff): void;
1867
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
1867
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
1868
1868
  applyLyrics(lyrics: Lyrics[]): void;
1869
1869
  }
1870
1870
 
@@ -2205,7 +2205,7 @@ declare class Voice {
2205
2205
  private chain;
2206
2206
  addGraceBeat(beat: Beat): void;
2207
2207
  getBeatAtPlaybackStart(playbackStart: number): Beat | null;
2208
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
2208
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
2209
2209
  calculateDuration(): number;
2210
2210
  }
2211
2211
 
@@ -2265,7 +2265,7 @@ declare class Bar {
2265
2265
  get masterBar(): MasterBar;
2266
2266
  get isEmpty(): boolean;
2267
2267
  addVoice(voice: Voice): void;
2268
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
2268
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
2269
2269
  calculateDuration(): number;
2270
2270
  }
2271
2271
 
@@ -2402,7 +2402,7 @@ declare class Staff {
2402
2402
  * For some percussion instruments this number might vary.
2403
2403
  */
2404
2404
  standardNotationLineCount: number;
2405
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
2405
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
2406
2406
  addChord(chordId: string, chord: Chord): void;
2407
2407
  hasChord(chordId: string): boolean;
2408
2408
  getChord(chordId: string): Chord | null;
@@ -3147,14 +3147,14 @@ declare class Note {
3147
3147
  get displayValueWithoutBend(): number;
3148
3148
  get hasQuarterToneOffset(): boolean;
3149
3149
  addBendPoint(point: BendPoint): void;
3150
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
3150
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
3151
3151
  private static readonly MaxOffsetForSameLineSearch;
3152
3152
  static nextNoteOnSameLine(note: Note): Note | null;
3153
3153
  static findHammerPullDestination(note: Note): Note | null;
3154
3154
  static findTieOrigin(note: Note): Note | null;
3155
3155
  private static NoteIdLookupKey;
3156
3156
  private _noteIdBag;
3157
- chain(sharedDataBag: Map<string, unknown>): void;
3157
+ chain(sharedDataBag?: Map<string, unknown> | null): void;
3158
3158
  /**
3159
3159
  * @internal
3160
3160
  */
@@ -3610,7 +3610,7 @@ declare class Beat {
3610
3610
  private calculateDuration;
3611
3611
  updateDurations(): void;
3612
3612
  finishTuplet(): void;
3613
- finish(settings: Settings, sharedDataBag: Map<string, unknown>): void;
3613
+ finish(settings: Settings, sharedDataBag?: Map<string, unknown> | null): void;
3614
3614
  /**
3615
3615
  * Checks whether the current beat is timewise before the given beat.
3616
3616
  * @param beat
@@ -3625,7 +3625,7 @@ declare class Beat {
3625
3625
  isAfter(beat: Beat): boolean;
3626
3626
  hasNoteOnString(noteString: number): boolean;
3627
3627
  getNoteWithRealValue(noteRealValue: number): Note | null;
3628
- chain(sharedDataBag: Map<string, unknown>): void;
3628
+ chain(sharedDataBag?: Map<string, unknown> | null): void;
3629
3629
  }
3630
3630
 
3631
3631
  /**
@@ -3786,6 +3786,12 @@ declare class MidiTickLookup {
3786
3786
  * @returns The time in midi ticks at which the masterbar is played the first time or 0 if the masterbar is not contained
3787
3787
  */
3788
3788
  getMasterBarStart(bar: MasterBar): number;
3789
+ /**
3790
+ * Gets the start time in midi ticks for a given beat at which the masterbar is played the first time.
3791
+ * @param beat The beat to find the time period for.
3792
+ * @returns The time in midi ticks at which the beat is played the first time or 0 if the beat is not contained
3793
+ */
3794
+ getBeatStart(beat: Beat): number;
3789
3795
  /**
3790
3796
  * Adds a new {@link MasterBarTickLookup} to the lookup table.
3791
3797
  * @param masterBar The item to add.