diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml
index 8a5a3f277..6e0f6308c 100644
--- a/.github/workflows/build-pr.yml
+++ b/.github/workflows/build-pr.yml
@@ -13,6 +13,7 @@ jobs:
node-version: lts/*
- run: npm install
- run: npm install @coderline/alphatab@alpha
+ - run: npm run generate-alphatabdoc
- run: npm run build
- run: cp web.config ./build
- uses: actions/upload-artifact@v4
diff --git a/.github/workflows/deploy-develop.yml b/.github/workflows/deploy-develop.yml
index a577cc1d5..d97661e5d 100644
--- a/.github/workflows/deploy-develop.yml
+++ b/.github/workflows/deploy-develop.yml
@@ -19,6 +19,7 @@ jobs:
node-version: lts/*
- run: npm install
- run: npm install @coderline/alphatab@alpha
+ - run: npm run generate-alphatabdoc
- run: npm run build
- run: cp web.config ./build
- name: Package Zip
diff --git a/.github/workflows/deploy-main.yml b/.github/workflows/deploy-main.yml
index f9bd1dc7e..1a272fe4b 100644
--- a/.github/workflows/deploy-main.yml
+++ b/.github/workflows/deploy-main.yml
@@ -6,13 +6,15 @@ on:
workflow_dispatch:
schedule:
- cron: '0 1 * * 0'
-
+
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
+ with:
+ ref: 'main'
- uses: montudor/action-zip@v1
- uses: actions/setup-node@v4
with:
diff --git a/.gitignore b/.gitignore
index b2d6de306..cf50bfc74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,6 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+
+src/alphatabdoc/
+docs/reference/types/
\ No newline at end of file
diff --git a/docs/alphatex/bar-metadata.mdx b/docs/alphatex/bar-metadata.mdx
index 7eac84d10..f0ad4e0cb 100644
--- a/docs/alphatex/bar-metadata.mdx
+++ b/docs/alphatex/bar-metadata.mdx
@@ -229,3 +229,60 @@ To apply simile marks use the `\simile type` where type is:
{`
3.3*4 | \\simile simple | 3.3*4 | 4.3*4 | \\simile firstofdouble | \\simile secondofdouble
`}
+
+## Bar Lines
+
+For some special notation needs, the default bar line can be adjusted on every bar.
+The bar line styles are aligned with the ones from [MusicXML](https://www.w3.org/2021/06/musicxml40/musicxml-reference/data-types/bar-style/).
+
+* `\barlineLeft` adjusts the left bar line
+* `\barlineRight` adjusts the right bar line
+
+alphaTab attempts to reuse lines on overlapping styles across bars.
+
+{`
+\\instrument piano
+.
+\\track "Overlapping"
+ \\staff
+ \\barlineleft dashed
+ \\barlineright dotted
+ |
+ \\barlineleft heavyheavy
+ \\barlineright heavyheavy
+
+ \\staff
+ \\barlineleft lightlight
+ \\barlineright lightheavy
+ |
+ \\barlineleft heavylight
+ \\barlineright dashed
+\\track "All Styles"
+ \\staff
+ \\barlineright dashed |
+ \\barlineright dotted |
+ \\barlineright heavy |
+ \\barlineright heavyHeavy |
+ \\barlineright heavyLight |
+ \\barlineright lightHeavy |
+ \\barlineright lightlight |
+ \\barlineright none |
+ \\barlineright regular |
+ \\barlineright short |
+ \\barlineright tick |
+`}
+
+* `automatic` - Bar lines are determined automatically based on details like repeats and free time (default).
+* `dashed`
+* `dotted`
+* `heavy`
+* `heavyheavy`
+* `heavylight`
+* `lightheavy`
+* `lightlight`
+* `none`
+* `regular`
+* `short`
+* `tick`
+
+
diff --git a/docs/alphatex/beat-effects.mdx b/docs/alphatex/beat-effects.mdx
index 1c0275f28..9fcd397ae 100644
--- a/docs/alphatex/beat-effects.mdx
+++ b/docs/alphatex/beat-effects.mdx
@@ -53,7 +53,7 @@ Please find the list of supported effects in the example below.
## Dynamics
-Dynamics are beat effects with the indicator `dy` followed by one of the supported dynamics values FFF, FF, F, MF, MP, P, PP or PPP.
+Dynamics are beat effects with the indicator `dy` followed by one of the supported dynamics values PPP, PP, P, MP, MF, F, FF, FFF, PPPP, PPPPP, PPPPPP, FFFF, FFFFF, FFFFFF, SF, SFP, SFPP, FP, RF, RFZ, SFZ, SFFZ, FZ, N, PF, SFZP.
{`
1.1.8{dy ppp} 1.1{dy pp} 1.1{dy p} 1.1{dy mp} 1.1{dy mf} 1.1{dy f} 1.1{dy ff} 1.1{dy fff}
diff --git a/docs/alphatex/metadata.mdx b/docs/alphatex/metadata.mdx
index 3bd5cc29f..52b4abf8e 100644
--- a/docs/alphatex/metadata.mdx
+++ b/docs/alphatex/metadata.mdx
@@ -3,8 +3,9 @@ title: Metadata
---
import { AlphaTexSample } from '@site/src/components/AlphaTexSample';
+import { SinceBadge } from '@site/src/components/SinceBadge';
-Metadata is specified using `\tagname value value` at the beginning of the score.
+Metadata is specified using `\tagname value` at the beginning of the score.
It can be used to specify global information like title, tempo or track tuning.
Metadata is optional, but if specified, it must be followed by a dot to indicate the end
of the metadata.
@@ -39,6 +40,33 @@ Please refer to the [Tracks and Staves](/docs/alphatex/tracks-staves) or details
Strings can contain escape sequences: `\n`, `\r`, `\t`, `\\`, `\"`, `\'`.
+ its possible to also change the template and alignment of the song information
+via `\tagname value template alignment`.
+
+The `template` is a string which can have following placeholders which are then replaced with the respective info of the song:
+
+* `%TITLE%`
+* `%SUBTITLE%`
+* `%ARTIST%`
+* `%ALBUM%`
+* `%WORDS%`
+* `%WORDSMUSIC%`
+* `%MUSIC%`
+* `%TABBER%`
+* `%COPYRIGHT%`
+
+The `alignment` is one of the following values:
+
+* `left`
+* `center`
+* `right`
+
+{`
+\\title "Song Title" "Title: %TITLE%" left
+\\artist Artist "Written by %ARTIST%" right
+.
+`}
+
## Instrument
As indicated above, the instrument can be changed via the `\instrument` metadata.
Refer to the table below for all possible values and names. The list represents the General MIDI instrument list.
diff --git a/docs/alphatex/stylesheet.mdx b/docs/alphatex/stylesheet.mdx
index 81fb7e1c0..ed38a3d8c 100644
--- a/docs/alphatex/stylesheet.mdx
+++ b/docs/alphatex/stylesheet.mdx
@@ -116,3 +116,31 @@ To configure the mode how to show [track names](/docs/showcase/general.mdx#track
C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |
`}
+## Multi-Bar Rests
+
+To configure whether [multibar rests](/docs/showcase/layouts.mdx#multi-bar-rests) should be enabled use:
+
+* `\multiBarRest` - On top level for configuring the use on multi-track renderings
+* `\track { multiBarRest }` - On track level for single track renderings
+
+{`
+\\title "Multi Track"
+\\multiBarRest
+.
+\\track "Piano 1" "pno1"
+ \\staff {score}
+ C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | C4
+
+\\track "Piano 2" "pno1"
+ \\staff {score}
+ C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | r |
+`}
+
+{`
+\\title "Single Track"
+.
+\\track "Piano 1" "pno1" { multiBarRest }
+ \\staff {score}
+ C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | C4
+`}
+
diff --git a/docs/formats/guitar-pro-7.mdx b/docs/formats/guitar-pro-7.mdx
index a9f0af824..74c384d47 100644
--- a/docs/formats/guitar-pro-7.mdx
+++ b/docs/formats/guitar-pro-7.mdx
@@ -338,11 +338,11 @@ import { FileFormatFeatureTable, FileFormatFeatureGroup, FileFormatFeatureRow, F
tex={[FeatureStatus.Supported]} />
+ model={[FeatureStatus.Supported]}
+ reading={[FeatureStatus.Supported]}
+ render={[FeatureStatus.Supported]}
+ audio={[FeatureStatus.Supported]}
+ tex={[FeatureStatus.Supported]} />
diff --git a/docs/formats/guitar-pro-8.mdx b/docs/formats/guitar-pro-8.mdx
index d4f36081d..0806140c5 100644
--- a/docs/formats/guitar-pro-8.mdx
+++ b/docs/formats/guitar-pro-8.mdx
@@ -350,11 +350,11 @@ import { FileFormatFeatureTable, FileFormatFeatureGroup, FileFormatFeatureRow, F
tex={[FeatureStatus.Supported]} />
+ model={[FeatureStatus.Supported]}
+ reading={[FeatureStatus.Supported]}
+ render={[FeatureStatus.Supported]}
+ audio={[FeatureStatus.Supported]}
+ tex={[FeatureStatus.Supported]} />
diff --git a/docs/formats/musicxml.mdx b/docs/formats/musicxml.mdx
index ddc324c65..0934cefb4 100644
--- a/docs/formats/musicxml.mdx
+++ b/docs/formats/musicxml.mdx
@@ -11,1268 +11,4178 @@ description: The open file format format for exchanging music notation.
> https://www.musicxml.com/
-**Compatibility Level:** Basic, good test coverage.
+**Compatibility Level:** Mature, good test coverage.
MusicXML is a very complex format allowing the same thing to be specified in multiple different ways. The format itself is very mature and supports a vast amount of
notation elements to be described. This also makes it quite complex to handle as applications might have to deal with elements which are not supported by the application itself.
-Additionally the different applications supporting MusicXML have their own slight dialects and expectations to where elements are placed (as element positions can be relatively adjusted).
-This can easily cause visual discrepancies when exchanging files across applications.
+Unfortunately MusicXML implies a lot of details on the visual arrangements of elements and expect applications like alphaTab to adhere to their layouting principles.
+With alphaTab not having a strict print-page display (yet) respecting those arrangement aspects is not possible.
+Additionally MusicXML differenciates between "displayed" music notation and the "sound" of elements which can be potentially inconsistent.
+
+alphaTab does its best to load any semantic information contained in the files (both in visual and sound related elements).
+Due to this alphaTab might visually indicate some elements which are not visually described in MusicXML. This can be a benefit in some cases.
+
+Feel free to open any [improvement request discussion](https://github.com/CoderLine/alphaTab/discussions) if you have some needs in changed display.
+
+The table below describes in a [``](https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/supports/) style fashion which elements and attributes are supported by alphaTab.
+Be sure to check the [MusicXML reference](https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/) for details on the features.
## Feature Table
+**How to read the table:**
+
+* The feature table tries to describe the support matching [MusicXML 4.0 element eference](https://www.w3.org/2021/06/musicxml40/musicxml-reference/elements/).
+* Every group is typically a MusicXML Element describing what attributes and sub-elements are supported.
+* Elements are listed with their exact names, attributes are prefixed with `@`.
+* If individual attribute values are not supported they might be listed in a format like `@attribute=value`. But for keeping this docs at a managable scale not all details might be listed.
+* The sub-element support indicates whether generally the tag is considered. What parts are supported, are then listed in the dedicated group of the respective tag.
+* Some common attributes are only listed once instead on each element. Some simple elements are listed as part of their parent element, while other element are listed as own feature section.
+* Some attributes we considered not relevant at all are not even listed (e.g. `@id` of `credit`).
+* In case of doubts:
+ * Consult the MusicXML documentation to learn where elements are used and relevant.
+ * Consult the [alphaTab Source Code](https://github.com/CoderLine/alphaTab/blob/develop/src/importer/MusicXmlImporter.ts) to see if we are handling elements and attributes.
+ * Consult the [notes in the MusicXML Test Suite](https://github.com/CoderLine/alphaTab/blob/develop/test/importer/MusicXmlImporterTestSuite.test.ts) to see if we marked some things as not supported or "known issue".
+
import { FileFormatFeatureTable, FileFormatFeatureGroup, FileFormatFeatureRow, FeatureStatus } from '@site/src/components/FileFormatFeatureTable'
-
-
+
+ reading={[FeatureStatus.Supported]}
+ render={[FeatureStatus.Supported]}
+ audio={[FeatureStatus.Supported]}
+ tex={[FeatureStatus.Supported]} />
+
+
-
-
-
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
+
+
+
-
-
-
-
+
-
+
-
-
-
+ tex={[FeatureStatus.Supported]} />
+
+
-
-
-
+
+
-
+
-
-
+
-
-
-
-
-
-
+
+
-
+
-
-
+ tex={[FeatureStatus.Supported]} />
+
-
+
+
-
-
+
-
-
+
-
+
+
+
-
-
+
+
-
-
-
-
+
-
-
-
-
+
+
+
+
-
+
+
+ tex={[FeatureStatus.Partial]} />
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+ tex={[FeatureStatus.Supported]} />
+
-
+
-
-
+
-
-
+
+
-
-
+
-
-
+
-
-
+
+
+ tex={[FeatureStatus.Supported]} />
+
-
+
+
+
+
+
-
-
+
-
-
+
+
+ tex={[FeatureStatus.Supported]} />
+
+
+
+
-
+
+
+
+
-
-
-
+
+
+
+ render={[FeatureStatus.NotSupported]}
+ audio={[FeatureStatus.NotSupported]}
+ tex={[FeatureStatus.NotSupported]} />
+
-
+
-
-
-
+
+
-
-
+
+
+
+ tex={[FeatureStatus.NotSupported]} />
+
-
+
+
+
+
+
+ tex={[FeatureStatus.NotSupported]} />
+
-
+
+
+
+
+ tex={[FeatureStatus.Supported]} />
+
-
+
+
+
+
-
-
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
+
+
-
-
+
-
-
+
-
-
+
+ audio={[FeatureStatus.NotSupported]}
+ tex={[FeatureStatus.NotSupported]} />
+
-
+
-
-
+
-
-
+
-
-
-
-
-
-
+
-
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
-
-
+
+
-
-
+
+ tex={[FeatureStatus.NotSupported]} />
+
+
+
+
-
+
+
-
-
+
-
-
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
+
+ tex={[FeatureStatus.Supported]} />
+
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
+ tex={[FeatureStatus.Supported]} />
+
-
+
-
-
+
-
-
+
-
-
+
+ tex={[FeatureStatus.NotSupported]} />
+
-
+
-
-
-
-
+
+
-
-
+
-
-
+
-
-
-
-
+
-
-
+
-
-
-
-
+
-
-
+
-
-
+
+
+ render={[FeatureStatus.NotSupported]}
+ audio={[FeatureStatus.Ignored]}
+ tex={[FeatureStatus.NotSupported]} />
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
+
+
-
-
+
-
-
+
-
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
-
-
-
-
+
+ render={[FeatureStatus.NotSupported]}
+ audio={[FeatureStatus.Ignored]}
+ tex={[FeatureStatus.NotSupported]} />
-
-
-
-
-
-
-
+ tex={[FeatureStatus.NotSupported]} />
-
-
-
-
-
-
-
-
+ render={[FeatureStatus.NotSupported]}
+ audio={[FeatureStatus.Ignored]}
+ tex={[FeatureStatus.NotSupported]} />
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/getting-started/configuration-web.mdx b/docs/getting-started/configuration-web.mdx
index b29c4a15e..74ef36d0a 100644
--- a/docs/getting-started/configuration-web.mdx
+++ b/docs/getting-started/configuration-web.mdx
@@ -108,28 +108,6 @@ api.scoreLoaded.on( (score) => {
});
```
-
-
-
-DOM events are namespaced with a `alphaTab.` prefix and can be subscribed either via `addEventListener(eventName, handler)` or via jQuerys `.on(eventName, handler)`.
-To access potential parameters that are passed along the event, you will need to access the event details.
-
-For raw DOM events, the info object will be contained in the [`detail`](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail) property of the DOM event.
-
-```js
-element.addEventListener('alphaTab.scoreLoaded', (e) => {
- console.log('Score was loaded!', e.detail);
-});
-```
-
-For jQuery events the object related to the event will be the second parameter:
-
-```js
-$(element).on('alphaTab.scoreLoaded', (e, score) => {
- console.log('Score was loaded!', score);
-});
-```
-
diff --git a/docs/guides/breaking-changes-095-096.mdx b/docs/guides/breaking-changes-095-096.mdx
index c60dd8bd5..9da262ce4 100644
--- a/docs/guides/breaking-changes-095-096.mdx
+++ b/docs/guides/breaking-changes-095-096.mdx
@@ -1,5 +1,6 @@
---
title: Breaking changes on settings between 0.9.5 and 0.9.6
+order: 100
---
import { CodeBadge } from '@site/src/components/CodeBadge';
diff --git a/docs/guides/breaking-changes-097-098.mdx b/docs/guides/breaking-changes-097-098.mdx
index 9b3602dc4..a1c745bec 100644
--- a/docs/guides/breaking-changes-097-098.mdx
+++ b/docs/guides/breaking-changes-097-098.mdx
@@ -1,5 +1,6 @@
---
title: Breaking changes on settings between 0.9.7 and 0.9.8
+order: 101
---
import { CodeBadge } from '@site/src/components/CodeBadge';
diff --git a/docs/guides/coloring.mdx b/docs/guides/coloring.mdx
new file mode 100644
index 000000000..d2c7e58d6
--- /dev/null
+++ b/docs/guides/coloring.mdx
@@ -0,0 +1,87 @@
+---
+title: Coloring Music Sheet
+since: 1.5.0
+---
+
+# Coloring Music Sheet
+
+import { SinceBadge } from '@site/src/components/SinceBadge';
+
+
+
+alphaTab supports individual styling of music notation elements via a special `style` container which is available on
+most levels of the [Data Model](../reference/score.mdx). This means you can customize the colors of individual notes being rendered
+base on custom logic.
+
+The best place to apply custom coloring is the [`api.scoreLoaded`](../reference/api/scoreloaded.mdx) event which is triggered whenever
+a new score is detected. But you can modify the styles later at any time by accessing the [`score`](../reference/api/score.mdx) and then
+initiating a re-render via [`render`](../reference/api/render.mdx).
+
+:::important
+alphaTab does not detect dynamically any changes made to the data model. Rendering happens in a background worker, and calling `render` will ensure
+all updated information is passed to this renderer and the display is updated. Calling `render` will initiate a full re-layout and drawing of
+the music sheet to apply any style changes accordingly, hence it is a quite performance intense operation.
+:::
+
+The example codes in this Guide are in JavaScript but can be adapted to the other platforms accordingly.
+
+## Quick Start
+
+This code example here should give you a good first idea how you apply custom colors to elements. Depending on the elements you want to color,
+you have to traverse the tree of elements. Then on the `style` container you can fill the colors with the particular elements
+
+import { ColoringExample } from '@site/src/components/ColoringExample';
+
+
+
+## Styleable elements
+
+alphaTab tries to give fine grained access to coloring music notation elements. Only when it comes to individual effects and annotations things get more coarse.
+
+### Score level
+
+On Score level initialize the `score.style = new alphaTab.model.ScoreStyle()` and then select the element to color via `alphaTab.model.ScoreSubElement`.
+
+import ScoreSubElementDoc from '@site/docs/reference/types/model/scoresubelement/index.mdx';
+
+
+
+### Track level
+
+On Track level initialize the `track.style = new alphaTab.model.TrackStyle()` and then select the element to color via `alphaTab.model.TrackSubElement`.
+
+import TrackSubElementDoc from '@site/docs/reference/types/model/tracksubelement/index.mdx';
+
+
+
+### Bar level
+
+On Bar level initialize the `bar.style = new alphaTab.model.BarStyle()` and then select the element to color via `alphaTab.model.BarSubElement`.
+
+import BarSubElementDoc from '@site/docs/reference/types/model/barsubelement/index.mdx';
+
+
+
+### Voice level
+
+On Bar level initialize the `voice.style = new alphaTab.model.VoiceStyle()` and then select the element to color via `alphaTab.model.VoiceSubElement`.
+
+import VoiceSubElementDoc from '@site/docs/reference/types/model/voicesubelement/index.mdx';
+
+
+
+### Beat level
+
+On Beat level initialize the `beat.style = new alphaTab.model.BeatStyle()` and then select the element to color via `alphaTab.model.BeatSubElement`.
+
+import BeatSubElementDoc from '@site/docs/reference/types/model/beatsubelement/index.mdx';
+
+
+
+### Note level
+
+On Note level initialize the `note.style = new alphaTab.model.NoteStyle()` and then select the element to color via `alphaTab.model.NoteSubElement`.
+
+import NoteSubElementDoc from '@site/docs/reference/types/model/notesubelement/index.mdx';
+
+
\ No newline at end of file
diff --git a/docs/guides/data-attributes.mdx b/docs/guides/data-attributes.mdx
new file mode 100644
index 000000000..ecf05d482
--- /dev/null
+++ b/docs/guides/data-attributes.mdx
@@ -0,0 +1,80 @@
+---
+title: Data Attributes
+---
+
+> [!WARNING]
+> Configuring alphaTab via data attributes has been deprecated in 1.5 and will be removed in 2.x.
+
+HTML Data Attributes are quite a common mechanism to pass configurations from the DOM to JavaScript frameworks. This practice
+is quite common outside frontend frameworks like Angular or React and is known from frameworks like Bootstrap and jQuery.
+
+To reduce the number of configuration mechanisms we need to maintain and support, the configuration with data attributes will be removed in 2.x as a breaking change.
+alphaTab anyhow requires a minimum degree of initialization via JavaScript (e.g. `new AlphaTabApi(element, settings)`) and therefore a migration to the settings object is fairly simple.
+Developers can still decide to fill a settings object based on custom attribute needs.
+
+Until the removal we will maintain backwards compatibility but at the same time we removed any documentation from the API reference related to it.
+
+## Migration
+
+To migrate, move any properties from the respective data attributes in the HTML DOM to a JavaScript settings object.
+
+### Before
+
+The data attributes are added as `data-category-setting` to the DOM element.
+
+```html
+
+
+```
+
+### After (JSON object)
+
+The settings are defined in a plain JSON object (we have type definitions for it) according to the reference docs.
+The JSON object will be converted internally to the real settings object. Later motifications have to be done on `api.settings`.
+
+```html
+
+
+```
+
+### After (Settings object)
+
+A new `Settings` instance is created and filled with the respective values on the defined properties.
+This is useful to make decisions based on default values or if you want to share the same object across
+multiple alphaTab instances.
+
+```html
+
+
+```
\ No newline at end of file
diff --git a/docs/guides/dom-events.mdx b/docs/guides/dom-events.mdx
new file mode 100644
index 000000000..022db8f9e
--- /dev/null
+++ b/docs/guides/dom-events.mdx
@@ -0,0 +1,57 @@
+---
+title: DOM Events
+---
+
+> [!WARNING]
+> Listening to alphaTab via DOM events has been deprecated in 1.5 and will be removed in 2.x.
+
+DOM Events are quite a common mechanism to signal special events from JavaScript frameworks. This practice
+is quite common outside frontend frameworks like Angular or React and is known from frameworks like Bootstrap and jQuery.
+
+To reduce the number of event mechanisms we need to maintain and support, and to improve performance, DOM events will be removed in 2.x as a breaking change.
+alphaTab anyhow requires a minimum degree of initialization via JavaScript (e.g. `new AlphaTabApi(element, settings)`) and therefore a migration to the JavaScript events is fairly simple.
+
+Until the removal we will maintain backwards compatibility but at the same time we removed any documentation from the API reference related to it.
+^
+## Migration
+
+To migrate, move any properties from the respective data attributes in the HTML DOM to a JavaScript settings object.
+
+### Before
+
+The event listeners are registered on the DOM element via `alphaTab.eventName`. The event data is contained in `e.detail`.
+
+```html
+
+
+```
+
+### After
+
+The event listeners are registered via `api.eventName.on(listener)`. The event data is directly passed to the listener.
+
+```html
+
+
+```
\ No newline at end of file
diff --git a/docs/guides/formatting-templates.mdx b/docs/guides/formatting-templates.mdx
new file mode 100644
index 000000000..b2731a2f1
--- /dev/null
+++ b/docs/guides/formatting-templates.mdx
@@ -0,0 +1,38 @@
+---
+title: Song Details Formatting
+since: 1.5.0
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+import { SinceBadge } from '@site/src/components/SinceBadge';
+
+
+
+In the page payout, alphaTab shows the information of the song directly as part of the music sheet.
+The display of this song information can be adjusted in 3 ways:
+
+* Colors can be adjusted via the `style` (see [Coloring Music Sheet](./coloring.mdx))
+* Alignment and the text template can be adjusted via `style`.
+* Fonts can be adjusted via [`settings.display.resources`](/docs/reference/settings/display/resources)
+
+The mechanisms are currently a bit scattered historically. With alphaTab 2.x we plan to consolidate these options.
+
+For some formats like Guitar Pro alphaTab will read the information contained in the file and adjust the alignments and templates.
+In any case, the song info can be adjusted by updating the settings and the data model after it has been loaded.
+
+The examples here are written in TypeScript (for clarity on types), the same methods and properties are available on all flavors of alphaTab.
+When and what to set as styles depends on your needs. You might have an own custom style applied to all files, or you have the style stored beside
+your file and load it along the file itself.
+
+import {FormattingTemplateSample} from '@site/src/components/FormattingTemplateSample'
+
+
+
+The most important parts to know:
+
+* The [`style`](/docs/reference/types/model/score/style) on [`alphaTab.model.Score`](/docs/reference/types/model/score) is used to adjust the style of the visual elements.
+* The [`headerAndFooter`](/docs/reference/types/model/scorestyle/headerandfooter) on [`alphaTab.model.ScoreStyle`](/docs/reference/types/model/scorestyle/) is used to adjust the text, visibility and alignment of the header and footer elements.
+* The [`colors`](/docs/reference/types/model/elementstyle/colors) on `alphaTab.model.ScoreStyle` is used to adjust the color of the header and footer elements (and others).
+* The [`alphaTab.model.ScoreSubElement`](/docs/reference/types/model/scoresubelement) defines the possible list of elements to be styled (not all are song info related)
+
diff --git a/docs/guides/jquery.mdx b/docs/guides/jquery.mdx
new file mode 100644
index 000000000..f0f06ecb8
--- /dev/null
+++ b/docs/guides/jquery.mdx
@@ -0,0 +1,5 @@
+---
+title: jQuery
+---
+
+TODO: Document deprecation of jQuery integration and move reference doc here.
\ No newline at end of file
diff --git a/docs/guides/nodejs.mdx b/docs/guides/nodejs.mdx
index 47a279d01..f43248bdf 100644
--- a/docs/guides/nodejs.mdx
+++ b/docs/guides/nodejs.mdx
@@ -6,6 +6,8 @@ import { SinceBadge } from '@site/src/components/SinceBadge';
+export const SourceLinks = 'linkAlphaTabApi="/docs/reference/types/AlphaTabApi" linkScore="/docs/reference/types/model/Score"'
+
The JavaScript version of alphaTab is primarily optimized for usage in Browsers. At least the top level `AlphaTabApi`
which is a UI focused interface to alphaTab. But alphaTab can also be used in other
JavaScript environments like Node.js or headless JavaScript engines. The core of alphaTab is platform independent
@@ -412,4 +414,4 @@ finalImageCanvas[Symbol.dispose]();
await fs.promises.writeFile(outputFilePath, new Uint8Array(png));
```
-
\ No newline at end of file
+
diff --git a/docs/reference/alphasynth.mdx b/docs/reference/alphasynth.mdx
deleted file mode 100644
index 74f75ff34..000000000
--- a/docs/reference/alphasynth.mdx
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: AlphaSynth
----
-
-import { ReferenceTable } from '@site/src/components/ReferenceTable';
-
-`AlphaSynth` is one of the low level APIs that can be used if no full alphaTab API object with UI interaction
-can be used or is needed. It is the audio synthesis engine of alphaTab which is used to play a midi file
-using a generated midi file and a SoundFont as input.
-
-This page describes all methods, properties and events exposed by this class. Most of the API methods exposed by
-the `IAlphaSynth` interface are also directly available on the normal API object. That's why many documentation pages
-delegate to the related documentation pages there.
-
-import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/countinvolume.mdx b/docs/reference/alphasynth/countinvolume.mdx
deleted file mode 100644
index b014f7111..000000000
--- a/docs/reference/alphasynth/countinvolume.mdx
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: countInVolume
-description: The volume of the count-in metronome ticks
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 1.1.0
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-
-Same value as [`api.countInVolume`](/docs/reference/api/countinvolume)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/destroy.mdx b/docs/reference/alphasynth/destroy.mdx
deleted file mode 100644
index 9d08846db..000000000
--- a/docs/reference/alphasynth/destroy.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: destroy
-description: Destroys the synthesizer and all related components.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This method destroys the audio synthesizer renderer and by this closes all potentially opened
-contexts and shuts down any worker.
-
-If you dynamically create/destroy renderers it is recommended to always call this method
-to ensure all resources are leaked.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-None
-
-### Returns
-Nothing
\ No newline at end of file
diff --git a/docs/reference/alphasynth/finished.mdx b/docs/reference/alphasynth/finished.mdx
deleted file mode 100644
index 4ac042210..000000000
--- a/docs/reference/alphasynth/finished.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: finished
-description: This event is fired when the playback of the whole song finished.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playerFinished`](/docs/reference/api/playerfinished)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/islooping.mdx b/docs/reference/alphasynth/islooping.mdx
deleted file mode 100644
index 4e98ef802..000000000
--- a/docs/reference/alphasynth/islooping.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: isLooping
-description: Whether the playback should automatically restart after it finished
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.isLooping`](/docs/reference/api/islooping)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/isready.mdx b/docs/reference/alphasynth/isready.mdx
deleted file mode 100644
index 3682e0852..000000000
--- a/docs/reference/alphasynth/isready.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: isReady
-description: If the synthesizer is ready for interaction.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-
-## Description
-The audio synthesis engine is running always asynchronously in some worker or thread.
-Before any interaction with alphaSynth can be done it needs to initialize this worker first.
-This property indicates whether the worker is already ready.
-
-The [`ready`](/docs/reference/alphasynth/ready) event is fired when the value changes to true.
-
-This event is signaled as soon as the background worker and the audio output are initialized.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/isreadyforplayback.mdx b/docs/reference/alphasynth/isreadyforplayback.mdx
deleted file mode 100644
index 27d9bec2a..000000000
--- a/docs/reference/alphasynth/isreadyforplayback.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: isReadyForPlayback
-description: If the synthesizer is ready for playback.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.isReadyForPlayback`](/docs/reference/api/isreadyforplayback)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/loadmidifile.mdx b/docs/reference/alphasynth/loadmidifile.mdx
deleted file mode 100644
index df4ada495..000000000
--- a/docs/reference/alphasynth/loadmidifile.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: loadMidiFile
-description: Triggers a load of the given midi file.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Loads a midi file structure for playback in alphaSynth. The `MidiFile` structure
-follows a Standard Midi File (SMF) format 0 structure where only one single track
-with all midi events is contained.
-
-## Signatures
-
-
-
- Load the given midi file structure.
-
-
- Load the given midi file structure.
-
-
- Load the given midi file structure.
-
-
-
-
diff --git a/docs/reference/alphasynth/loadsoundfont.mdx b/docs/reference/alphasynth/loadsoundfont.mdx
deleted file mode 100644
index 5df59b2dc..000000000
--- a/docs/reference/alphasynth/loadsoundfont.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: loadSoundFont
-description: Triggers a load of the soundfont from the given data.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-Same behavior as [`Api.LoadSoundFont`](/docs/reference/api/loadsoundfont) but only raw byte arrays are accepted
-as parameter.
-
-## Signatures
-
-
-
- Load the soundfont from the given raw bytes.
- Append since 1.1.0-alpha.34
-
-
- Load the soundfont from the given raw bytes.
- Append since 1.1.0-alpha.34
-
-
- Load the soundfont from the given raw bytes.
- Append since 1.1.0-alpha.34
-
-
diff --git a/docs/reference/alphasynth/loglevel.mdx b/docs/reference/alphasynth/loglevel.mdx
deleted file mode 100644
index b79238bbb..000000000
--- a/docs/reference/alphasynth/loglevel.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: logLevel
-description: The log level to use within alphaSynth.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`settings.core.logLevel`](/docs/reference/settings/core/loglevel)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/mastervolume.mdx b/docs/reference/alphasynth/mastervolume.mdx
deleted file mode 100644
index 9ac610f32..000000000
--- a/docs/reference/alphasynth/mastervolume.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: masterVolume
-description: The current master volume as percentage
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.masterVolume`](/docs/reference/api/mastervolume)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/metronomevolume.mdx b/docs/reference/alphasynth/metronomevolume.mdx
deleted file mode 100644
index 2a938ee77..000000000
--- a/docs/reference/alphasynth/metronomevolume.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: metronomeVolume
-description: The metronome volume as percentage
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.metronomeVolume`](/docs/reference/api/metronomevolume)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/midieventsplayed.mdx b/docs/reference/alphasynth/midieventsplayed.mdx
deleted file mode 100644
index 1a77f310b..000000000
--- a/docs/reference/alphasynth/midieventsplayed.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: midiEventsPlayed
-description: The midi events which will trigger the `midiEventsPlayed` event
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 1.2.0
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.midiEventsPlayed`](/docs/reference/api/midieventsplayed)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/midieventsplayedfilter.mdx b/docs/reference/alphasynth/midieventsplayedfilter.mdx
deleted file mode 100644
index 6cfdf3313..000000000
--- a/docs/reference/alphasynth/midieventsplayedfilter.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: midiEventsPlayedFilter
-description: The midi events which will trigger the `midiEventsPlayed` event
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 1.2.0
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.midiEventsPlayedFilter`](/docs/reference/api/midieventsplayedfilter)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/midiloaded.mdx b/docs/reference/alphasynth/midiloaded.mdx
deleted file mode 100644
index ac2c6ec74..000000000
--- a/docs/reference/alphasynth/midiloaded.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: midiLoaded
-description: This event is fired when the Midi needed for playback was loaded.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.midiLoaded`](/docs/reference/api/midiloaded)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/midiloadfailed.mdx b/docs/reference/alphasynth/midiloadfailed.mdx
deleted file mode 100644
index 614d8466d..000000000
--- a/docs/reference/alphasynth/midiloadfailed.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: midiLoadFailed
-description: This event is fired when the loading of the Midi failed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This event is fired when an error while loading the Midi failed.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The object containing the error details.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/pause.mdx b/docs/reference/alphasynth/pause.mdx
deleted file mode 100644
index df48512b0..000000000
--- a/docs/reference/alphasynth/pause.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: pause
-description: Pauses the playback of the current song.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same behavior and signature as [`api.pause`](/docs/reference/api/pause)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/play.mdx b/docs/reference/alphasynth/play.mdx
deleted file mode 100644
index ff3d5c36e..000000000
--- a/docs/reference/alphasynth/play.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: play
-description: Starts the playback of the current song.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same behavior and signature as [`api.play`](/docs/reference/api/play)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/playbackrange.mdx b/docs/reference/alphasynth/playbackrange.mdx
deleted file mode 100644
index f91223b81..000000000
--- a/docs/reference/alphasynth/playbackrange.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: playbackRange
-description: The range of the song that should be played
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playbackRange`](/docs/reference/api/playbackrange)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/playbackrangechanged.mdx b/docs/reference/alphasynth/playbackrangechanged.mdx
deleted file mode 100644
index 8d805672a..000000000
--- a/docs/reference/alphasynth/playbackrangechanged.mdx
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: playbackRangeChanged
-description: This event is fired when the playback range changed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 1.2.3
----
-
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-
-Same value as [`api.playbackRangeChanged`](/docs/reference/api/playbackrangechanged)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/playbackspeed.mdx b/docs/reference/alphasynth/playbackspeed.mdx
deleted file mode 100644
index 1025cae22..000000000
--- a/docs/reference/alphasynth/playbackspeed.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: playbackSpeed
-description: The current playback speed as percentage
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playbackSpeed`](/docs/reference/api/playbackspeed)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/playpause.mdx b/docs/reference/alphasynth/playpause.mdx
deleted file mode 100644
index c42a3e0e1..000000000
--- a/docs/reference/alphasynth/playpause.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: playPause
-description: Toggles between play/pause depending on the current player state.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same behavior and signature as [`api.playPause`](/docs/reference/api/playpause)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/positionchanged.mdx b/docs/reference/alphasynth/positionchanged.mdx
deleted file mode 100644
index a99002e3b..000000000
--- a/docs/reference/alphasynth/positionchanged.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: positionChanged
-description: This event is fired when the playback state changed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playerPositionChanged`](/docs/reference/api/playerpositionchanged)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/ready.mdx b/docs/reference/alphasynth/ready.mdx
deleted file mode 100644
index 32868099e..000000000
--- a/docs/reference/alphasynth/ready.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: ready
-description: Fired when the player is ready to be interacted with.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This event is when the player is ready to be interacted with.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-none
\ No newline at end of file
diff --git a/docs/reference/alphasynth/readyforplayback.mdx b/docs/reference/alphasynth/readyforplayback.mdx
deleted file mode 100644
index 39b267ddb..000000000
--- a/docs/reference/alphasynth/readyforplayback.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: readyForPlayback
-description: This event is fired when all required data for playback is loaded and ready.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.readyForPlayback`](/docs/reference/api/readyforplayback)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/resetchannelstate.mdx b/docs/reference/alphasynth/resetchannelstate.mdx
deleted file mode 100644
index 4d8f07eb2..000000000
--- a/docs/reference/alphasynth/resetchannelstate.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: resetChannelStates
-description: Resets the mute/solo change of all channels.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Resets the mute/solo change of all channels.
-
-## Signatures
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/setchannelmute.mdx b/docs/reference/alphasynth/setchannelmute.mdx
deleted file mode 100644
index 7eaa1f2a8..000000000
--- a/docs/reference/alphasynth/setchannelmute.mdx
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: setChannelMute
-description: Mutes or unmutes a single midi channel.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Mutes or unmutes a single midi channel.
-
-## Signatures
-
-
-
- Sets the mute state of a channel
-
-
- Sets the mute state of a channel.
-
-
- Sets the mute state of a channel.
-
-
-
-## Parameters
-
-
-
- The midi channel to mute or unmute.
-
-
- A value indicating whether the channel should be muted or unmuted.
-
-
diff --git a/docs/reference/alphasynth/setchannelsolo.mdx b/docs/reference/alphasynth/setchannelsolo.mdx
deleted file mode 100644
index 1fc2b53fb..000000000
--- a/docs/reference/alphasynth/setchannelsolo.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: setChannelSolo
-description: Flags a single midi channel to e played solo or not.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Flags a single midi channel to e played solo or not. As soon as the first channel
-is marked as playing solo, all channels which are not flagged as solo are not played.
-Multiple channels can be flagged as solo playing.
-
-## Signatures
-
-
-
- Sets the solo state of a channel
-
-
- Sets the solo state of a channel.
-
-
- Sets the solo state of a channel.
-
-
-
-## Parameters
-
-
-
- The midi channel play solo or not.
-
-
- A value indicating whether the channel should be played solo or not.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/setchanneltranspositionpitch.mdx b/docs/reference/alphasynth/setchanneltranspositionpitch.mdx
deleted file mode 100644
index f0e1f0762..000000000
--- a/docs/reference/alphasynth/setchanneltranspositionpitch.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: setChannelTranspositionPitch
-description: Sets the transposition pitch of a given channel.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Sets the transposition pitch of a given channel. This pitch is additionally applied beside the
-ones applied already via `applyTranspositionPitches`.
-
-## Signatures
-
-
-
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The midi channel to set the volume for.
-
-
- The volume as percentage.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/setchannelvolume.mdx b/docs/reference/alphasynth/setchannelvolume.mdx
deleted file mode 100644
index bac4d9e8f..000000000
--- a/docs/reference/alphasynth/setchannelvolume.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: setChannelVolume
-description: Sets the current and initial volume of the given channel.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Sets the current and initial volume of the given channel.
-
-## Signatures
-
-
-
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The midi channel to set the volume for.
-
-
- The volume as percentage.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/soundfontloaded.mdx b/docs/reference/alphasynth/soundfontloaded.mdx
deleted file mode 100644
index 08c4fe07c..000000000
--- a/docs/reference/alphasynth/soundfontloaded.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: soundFontLoaded
-description: This event is fired when the SoundFont needed for playback was loaded.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`Api.SoundFontLoaded`](/docs/reference/api/soundfontloaded)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/soundfontloadfailed.mdx b/docs/reference/alphasynth/soundfontloadfailed.mdx
deleted file mode 100644
index 3bf62f3cf..000000000
--- a/docs/reference/alphasynth/soundfontloadfailed.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: soundFontLoadFailed
-description: This event is fired when the loading of the SoundFont failed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This event is fired when an error while loading the soundfont failed.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The object containing the error details.
-
-
\ No newline at end of file
diff --git a/docs/reference/alphasynth/state.mdx b/docs/reference/alphasynth/state.mdx
deleted file mode 100644
index 60624af81..000000000
--- a/docs/reference/alphasynth/state.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: state
-description: The current player state.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playerState`](/docs/reference/api/playerstate)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/statechanged.mdx b/docs/reference/alphasynth/statechanged.mdx
deleted file mode 100644
index 24c9fb2da..000000000
--- a/docs/reference/alphasynth/statechanged.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: stateChanged
-description: This event is fired when the playback state changed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.playerStateChanged`](/docs/reference/api/playerstatechanged)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/stop.mdx b/docs/reference/alphasynth/stop.mdx
deleted file mode 100644
index f484869b1..000000000
--- a/docs/reference/alphasynth/stop.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: stop
-description: Stops the playback of the current song, and moves the playback position back to the start.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same behavior and signature as [`api.stop`](/docs/reference/api/stop)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/tickposition.mdx b/docs/reference/alphasynth/tickposition.mdx
deleted file mode 100644
index e0a7e1afd..000000000
--- a/docs/reference/alphasynth/tickposition.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: tickPosition
-description: The position within the song in midi ticks
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.tickPosition`](/docs/reference/api/tickposition)
\ No newline at end of file
diff --git a/docs/reference/alphasynth/timeposition.mdx b/docs/reference/alphasynth/timeposition.mdx
deleted file mode 100644
index 3d6ea80df..000000000
--- a/docs/reference/alphasynth/timeposition.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: timePosition
-description: The position within the song in milliseconds
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-Same value as [`api.timePosition`](/docs/reference/api/timeposition)
\ No newline at end of file
diff --git a/docs/reference/api/_boundslookup.mdx b/docs/reference/api/_boundslookup.mdx
new file mode 100644
index 000000000..594f363ca
--- /dev/null
+++ b/docs/reference/api/_boundslookup.mdx
@@ -0,0 +1,12 @@
+import { BoundsLookupViewer } from '@site/src/components/BoundsLookupViewer';
+
+{`
+\\track "Guitar 1"
+12.2{v f} 14.2{v f}.4 :8 15.2 17.2 |
+14.1.2 :8 17.2 15.1 14.1{h} 17.2 |
+15.2{v d}.4 :16 17.2{h} 15.2 :8 14.2 14.1 17.1{b(0 4 4 0)}.4 |
+15.1.8 :16 14.1{tu 3} 15.1{tu 3} 14.1{tu 3} :8 17.2 15.1 14.1 :16 12.1{tu 3} 14.1{tu 3} 12.1{tu 3} :8 15.2 14.2 |
+12.2 14.3 12.3 15.2 :32 14.2{h} 15.2{h} 14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}
+\\track "Guitar 2"
+3.3
+`}
\ No newline at end of file
diff --git a/docs/reference/api/activebeatschanged.mdx b/docs/reference/api/activebeatschanged.mdx
index 9a74278cf..f63029842 100644
--- a/docs/reference/api/activebeatschanged.mdx
+++ b/docs/reference/api/activebeatschanged.mdx
@@ -1,122 +1,72 @@
---
title: activeBeatsChanged
-description: This event is fired when the currently active beats across all tracks change.
+description: "This event is fired when the currently active beats across all tracks change."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.3
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the currently active beats across all tracks change. Unlike the `playedBeatChanged` event
-this event contains the beats of all tracks and voices independent of them being rendered.
-
-
-
-## Types
+### Description
+This event is fired when the currently active beats across all tracks change. Unlike the {"playedBeatChanged"} event this event contains the beats of all tracks and voices independent of them being rendered.
-
-
-
-
-
-
-## Parameters
-
-
-
- The event args containing the info about the active beats.
-
-
- The event args containing the info about the active beats.
-
-
- The event args containing the info about the active beats.
-
-
-
-## ActiveBeatsChangedEventArgs Properties
+
+
+
+
+
-
-
- The currently active beats across all tracks and voices.
-
-
- The currently active beats across all tracks and voices.
-
-
- The currently active beats across all tracks and voices.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.activeBeatsChanged.on(args => {
- updateHighlights(args.activeBeats);
+ updateHighlights(args.activeBeats);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.activeBeatsChanged', (e, args) => {
- updateHighlights(args.activeBeats);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.activeBeatsChanged', (e) => {
- const args = e.detail;
- updateHighlights(args.activeBeats);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.ActiveBeatsChanged.On(args =>
+api.ActiveBeatsChanged.On(args =>
{
UpdateHighlights(args.ActiveBeats);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.activeBeatsChanged.on { args ->
updateHighlights(args.activeBeats)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/beatmousedown.mdx b/docs/reference/api/beatmousedown.mdx
index c0f2be0a5..7509805e8 100644
--- a/docs/reference/api/beatmousedown.mdx
+++ b/docs/reference/api/beatmousedown.mdx
@@ -1,112 +1,72 @@
---
title: beatMouseDown
-description: This event is fired whenever a the user presses the mouse button on a beat.
+description: "This event is fired whenever a the user presses the mouse button on a beat."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.7
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
+### Description
This event is fired whenever a the user presses the mouse button on a beat.
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- The new beat that is now being played..
-
-
- The original mouse event that lead to trigger of the beat event. For the DOM event it is stored in the event.originalEvent.
-
-
- The new beat that is now being played.
-
-
- The new beat that is now being played.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.beatMouseDown.on((beat) => {
startSelectionOnBeat(beat);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.beatMouseDown', (e, beat) => {
- originalEvent.preventDefault();
- startSelectionOnBeat(beat);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.beatMouseDown', (e) => {
- const beat = e.detail;
- e.originalEvent.preventDefault();
- startSelectionOnBeat(beat);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.BeatMouseDown.On(beat =>
+api.BeatMouseDown.On(beat =>
{
StartSelectionOnBeat(args);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.beatMouseDown.on { beat ->
startSelectionOnBeat(args)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/beatmousemove.mdx b/docs/reference/api/beatmousemove.mdx
index b19ae726b..e668b6a03 100644
--- a/docs/reference/api/beatmousemove.mdx
+++ b/docs/reference/api/beatmousemove.mdx
@@ -1,112 +1,72 @@
---
title: beatMouseMove
-description: This event is fired whenever the user moves the mouse over a beat after the user already pressed the button on a beat.
+description: "This event is fired whenever the user moves the mouse over a beat after the user already pressed the button on a beat."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.7
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
+### Description
This event is fired whenever the user moves the mouse over a beat after the user already pressed the button on a beat.
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- Beat on which the mouse was hovered over during mouse down.
-
-
- The original mouse event that lead to trigger of the beat event. For the DOM event it is stored in the event.originalEvent.
-
-
- Beat on which the mouse was hovered over during mouse down.
-
-
- Beat on which the mouse was hovered over during mouse down.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.beatMouseMove.on((beat) => {
expandSelectionToBeat(beat);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.beatMouseMove', (e, beat) => {
- originalEvent.preventDefault();
- expandSelectionToBeat(beat);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.beatMouseMove', (e) => {
- var beat = e.detail;
- e.originalEvent.preventDefault();
- expandSelectionToBeat(beat);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.BeatMouseMove.On(beat =>
+api.BeatMouseMove.On(beat =>
{
ExpandSelectionToBeat(beat);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.beatMouseMove.on { beat ->
expandSelectionToBeat(beat)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/beatmouseup.mdx b/docs/reference/api/beatmouseup.mdx
index 5434413a7..9ba2ef075 100644
--- a/docs/reference/api/beatmouseup.mdx
+++ b/docs/reference/api/beatmouseup.mdx
@@ -1,117 +1,73 @@
---
title: beatMouseUp
-description: This event is fired whenever the user releases the mouse after a mouse press on a beat.
+description: "This event is fired whenever the user releases the mouse after a mouse press on a beat."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.7
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired whenever the user releases the mouse after a mouse press on a beat.
-This event is fired regardless of whether the mouse was released on a beat.
+### Description
+This event is fired whenever the user releases the mouse after a mouse press on a beat. This event is fired regardless of whether the mouse was released on a beat.
The parameter is null if the mouse was released somewhere beside the beat.
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- Beat on which the mouse was released over after mouse down.
- Might be null if no beat could be found in near location.
-
-
- Beat on which the mouse was released over after mouse down.
- Might be null if no beat could be found in near location.
-
-
- The original mouse event that lead to trigger of the beat event. For the DOM event it is stored in the event.originalEvent.
-
-
- Beat on which the mouse was released over after mouse down.
- Might be null if no beat could be found in near location.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.beatMouseUp.on((beat) => {
hideSelection(beat);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.beatMouseUp', (e, beat) => {
- originalEvent.preventDefault();
- hideSelection(beat);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.beatMouseUp', (e) => {
- const beat = e.detail;
- e.originalEvent.preventDefault();
- hideSelection(beat);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.BeatMouseUp.On(beat =>
+api.BeatMouseUp.On(beat =>
{
HideSelection(beat);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.beatMouseUp.on { beat ->
hideSelection(beat)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/boundslookup.mdx b/docs/reference/api/boundslookup.mdx
new file mode 100644
index 000000000..c6ffa31c7
--- /dev/null
+++ b/docs/reference/api/boundslookup.mdx
@@ -0,0 +1,65 @@
+---
+title: boundsLookup
+description: "The tick cache allowing lookup of midi ticks to beats."
+sidebar_custom_props:
+ kind: property
+ category: Properties - Core
+ since: 1.5.0
+---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+
+import { PropertyDescription } from '@site/src/components/PropertyDescription';
+
+
+
+### Description
+The tick cache allowing lookup of midi ticks to beats. In older versions of alphaTab you can access the `boundsLookup` via {"boundsLookup"} on {"renderer"}.
+
+After the rendering completed alphaTab exposes via this lookup the location of the individual
+notation elements. The lookup provides fast access to the bars and beats at a given location.
+If the {"CoreSettings.includeNoteBounds"} option was activated also the location of the individual notes can be obtained.
+
+The property contains a `BoundsLookup` instance which follows a hierarchical structure that represents
+the tree of rendered elements.
+
+The hierarchy is: `staffSystems > bars(1) > bars(2) > beats > notes`
+
+* `staffSystems` - Represent the bounds of the individual systems ("rows") where staves are contained.
+* `bars(1)` - Represent the bounds of all bars for a particular master bar across all tracks.
+* `bars(2)` - Represent the bounds of an individual bar of a track. The bounds on y-axis span the region of the staff and notes might exceed this bounds.
+* `beats` - Represent the bounds of the individual beats within a track. The bounds on y-axis are equal to the bar bounds.
+* `notes` - Represent the bounds of the individual note heads/numbers within a track.
+
+Each bounds hierarchy have a `visualBounds` and `realBounds`.
+
+* `visualBounds` - Represent the area covering all visually visible elements
+* `realBounds` - Represents the actual bounds of the elements in this beat including whitespace areas.
+* `noteHeadBounds` (only on `notes` level) - Represents the area of the note heads or number based on the staff
+
+You can check out the individual sizes and regions.
+
+
+
+
+
+
+
diff --git a/docs/reference/api/changetrackmute.mdx b/docs/reference/api/changetrackmute.mdx
index f52b412de..3ae33ec56 100644
--- a/docs/reference/api/changetrackmute.mdx
+++ b/docs/reference/api/changetrackmute.mdx
@@ -1,94 +1,76 @@
---
title: changeTrackMute
-description: Changes the given tracks to be muted or not.
+description: "Changes the given tracks to be muted or not."
sidebar_custom_props:
- jQueryName: alphaTab('muteTracks')
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
+### Description
Changes the given tracks to be muted or not. This will result in a muting of the primary and secondary midi channel that the track uses
-for playback. If the track shares the channels with another track, all tracks will be muted as during playback they cannot be distinguished.
+for playback. If the track shares the channels with another track, all tracks will be muted as during playback they cannot be distinguished.
-## Signatures
+
+
+
+
+
-
-
-
-
-
-
-### Parameters
-
- The array of tracks that should be muted.
-
-
- The array of tracks that should be muted.
-
-
- The array of tracks that should be muted.
+
+ The list of track to mute or unmute.
-
- value indicating whether the track should be muted or not.
+
+ If set to true, the tracks will be muted. If false they are unmuted.
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.changeTrackMute([api.score.tracks[0], api.score.tracks[1]], true);
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-const tracks = at.alphaTab('tracks');
-at.alphaTab('muteTracks', [tracks[0], tracks[1]], true);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.ChangeTrackMute(new Track[] { api.Score.Tracks[0], api.Score.Tracks[1] }, true);
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.changeTrackMute(alphaTab.collections.List(api.score.tracks[0], api.score.tracks[1]), true);
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/changetracksolo.mdx b/docs/reference/api/changetracksolo.mdx
index cd68fdbce..37f533494 100644
--- a/docs/reference/api/changetracksolo.mdx
+++ b/docs/reference/api/changetracksolo.mdx
@@ -1,97 +1,77 @@
---
title: changeTrackSolo
-description: Changes the given tracks to be played solo or not.
+description: "Changes the given tracks to be played solo or not."
sidebar_custom_props:
- jQueryName: alphaTab('soloTracks')
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
+### Description
Changes the given tracks to be played solo or not. If any track is set to solo, all other tracks are muted, unless they are also flagged as solo.
-This will result in a solo playback of the primary and secondary midi channel that the track uses for playback.
+This will result in a solo playback of the primary and secondary midi channel that the track uses for playback.
If the track shares the channels with another track, all related tracks will be played as they cannot be distinguished.
-## Signatures
-
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The array of tracks that should be played solo.
-
-
- The array of tracks that should be played solo.
+
+ The list of tracks to play solo or not.
-
- The array of tracks that should be played solo.
-
-
- A value indicating whether the track should be played solo or not.
+
+ If set to true, the tracks will be added to the solo list. If false, they are removed.
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.changeTrackSolo([api.score.tracks[0], api.score.tracks[1]], true);
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-const tracks = at.alphaTab('tracks');
-at.alphaTab('soloTracks', [tracks[0], tracks[1]], true);
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.ChangeTrackSolo(new Track[] { api.Score.Tracks[0], api.Score.Tracks[1] }, true);
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.changeTrackSolo(alphaTab.collections.List(api.score.tracks[0], api.score.tracks[1]), true);
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/changetracktranspositionpitch.mdx b/docs/reference/api/changetracktranspositionpitch.mdx
index 1ff85a3ef..a26b3e595 100644
--- a/docs/reference/api/changetracktranspositionpitch.mdx
+++ b/docs/reference/api/changetracktranspositionpitch.mdx
@@ -1,86 +1,78 @@
---
title: changeTrackTranspositionPitch
-description: Changes the pitch transpose applied to the given tracks.
+description: "Changes the pitch transpose applied to the given tracks."
sidebar_custom_props:
+ kind: method
category: Methods - Player
since: 1.4.0
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Changes the pitch transpose applied to the given tracks. These pitches are additional to the ones
-applied to the song via the settings and data model and allows a more live-update via a UI.
-
-## Signatures
+### Description
+Changes the pitch transpose applied to the given tracks. These pitches are additional to the ones applied to the song via the settings and data model and allows a more live-update via a UI.
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The array of tracks that should be changed.
-
-
- The array of tracks that should be changed.
+
+ The list of tracks to change.
-
- The array of tracks that should be changed.
-
-
- The number of semitones to apply as pitch offset
+
+ The number of semitones to apply as pitch offset.
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.changeTrackTranspositionPitch([api.score.tracks[0], api.score.tracks[1]], 3);
api.changeTrackTranspositionPitch([api.score.tracks[2]], 2);
```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.ChangeTrackTranspositionPitch(new Track[] { api.Score.Tracks[0], api.Score.Tracks[1] }, 3);
api.ChangeTrackTranspositionPitch(new Track[] { api.Score.Tracks[2] }, 3);
```
-
-
```kotlin
val api = AlphaTabApi(...);
api.changeTrackTranspositionPitch(alphaTab.collections.List(api.score.tracks[0], api.score.tracks[1]), 3);
api.changeTrackTranspositionPitch(alphaTab.collections.List(api.score.tracks[2]), 2);
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/changetrackvolume.mdx b/docs/reference/api/changetrackvolume.mdx
index f99b2ee53..dd54ef943 100644
--- a/docs/reference/api/changetrackvolume.mdx
+++ b/docs/reference/api/changetrackvolume.mdx
@@ -1,100 +1,79 @@
---
title: changeTrackVolume
-description: Changes the volume of the given tracks.
+description: "Changes the volume of the given tracks."
sidebar_custom_props:
- jQueryName: alphaTab('trackVolume')
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Changes the volume of the given tracks. This will result in a volume change of the primary and secondary midi channel that the track uses for playback.
+### Description
+Changes the volume of the given tracks. This will result in a volume change of the primary and secondary midi channel that the track uses for playback.
If the track shares the channels with another track, all related tracks will be changed as they cannot be distinguished.
-## Signatures
-
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The array of tracks that should be changed.
-
-
- The array of tracks that should be changed.
+
+ The tracks for which the volume should be changed.
-
- The array of tracks that should be changed.
-
-
- The volume multiplicator that should be added to the volume that the track normally has. e.g. 1.0 for no change on the volume,
- 2.0 for doubling the volume. Allowed range: 0.0 - 3.0.
+
+ The volume to set for all tracks in percent (0-1)
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.changeTrackVolume([api.score.tracks[0], api.score.tracks[1]], 1.5);
api.changeTrackVolume([api.score.tracks[2]], 0.5);
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-const tracks = at.alphaTab('tracks');
-at.alphaTab('trackVolume', [tracks[0], tracks[1]], 1.5);
-at.alphaTab('trackVolume', [tracks[0], tracks[1]], 0.5);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.ChangeTrackVolume(new Track[] { api.Score.Tracks[0], api.Score.Tracks[1] }, 1.5);
api.ChangeTrackVolume(new Track[] { api.Score.Tracks[2] }, 0.5);
```
-
-
```kotlin
val api = AlphaTabApi(...);
api.changeTrackVolume(alphaTab.collections.List(api.score.tracks[0], api.score.tracks[1]), 1.5);
api.changeTrackVolume(alphaTab.collections.List(api.score.tracks[2]), 0.5);
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/container.mdx b/docs/reference/api/container.mdx
index 30cd830f0..60c98fcdc 100644
--- a/docs/reference/api/container.mdx
+++ b/docs/reference/api/container.mdx
@@ -1,78 +1,68 @@
---
title: container
-description: The UI container that holds the whole alphaTab control.
+description: "The UI container that holds the whole alphaTab control."
sidebar_custom_props:
+ kind: property
category: Properties - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets the UI container that represents the element on which alphaTab was initialized. Note that this is not the raw instance, but a UI framework specific wrapper for alphaTab.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The UI container that holds the whole alphaTab control. Gets the UI container that represents the element on which alphaTab was initialized. Note that this is not the raw instance, but a UI framework specific wrapper for alphaTab.
-## Types
+
+
+
+
+
-
-
-
-
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
const container = api.container;
```
-
-
-
-
-```js
-const container = $('#alphaTab').alphaTab('container');
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
var container = api.Container;
```
-
-
-
```kotlin
val api = AlphaTabApi(...)
val container = api.container;
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/countinvolume.mdx b/docs/reference/api/countinvolume.mdx
index cedf61d7b..d399b21a4 100644
--- a/docs/reference/api/countinvolume.mdx
+++ b/docs/reference/api/countinvolume.mdx
@@ -1,75 +1,68 @@
---
title: countInVolume
-description: The volume of the count-in metronome ticks
+description: "The volume of the count-in metronome ticks."
sidebar_custom_props:
+ kind: property
category: Properties - Player
since: 1.1.0
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets or sets the volume of the metronome during the count-in of the song. By default the count-in is disabled but can be enabled by setting the volume different.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
-## Types
-
-
-
-
+### Description
+The volume of the count-in metronome ticks. Gets or sets the volume of the metronome during the count-in of the song. By default the count-in is disabled but can be enabled by setting the volume different.
-## Default Value
+
+
+
+
+
-`0.0`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.countInVolume = 0.5;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('countInVolume', 0.5)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.CountInVolume = 0.5;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.countInVolume = 0.5
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/destroy.mdx b/docs/reference/api/destroy.mdx
index d3de29fbd..fbc1535f8 100644
--- a/docs/reference/api/destroy.mdx
+++ b/docs/reference/api/destroy.mdx
@@ -1,79 +1,67 @@
---
title: destroy
-description: Destroys the alphaTab control and restores the initial state of the UI.
+description: "Destroys the alphaTab control and restores the initial state of the UI."
sidebar_custom_props:
+ kind: method
category: Methods - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+### Description
+Destroys the alphaTab control and restores the initial state of the UI. This function destroys the alphaTab control and tries to restore the initial state of the UI. This might be useful if
+our website is quite dynamic and you need to uninitialize alphaTab from an element again. After destroying alphaTab
+it cannot be used anymore. Any further usage leads to unexpected behavior.
-## Description
-This function destroys the alphaTab control and tries to restore the initial state of the UI. This might be useful if
-your website is quite dynamic and you need to uninitialize alphaTab from an element again. After destroying alphaTab
-it cannot be used anymore. Any further usage leads to unexpected behavior.
-
-## Signatures
-
-
-
-
-
-
-
-
-### Parameters
-None
+
+
+
+
+
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.destroy();
```
-
-
-
-```js
-$('#alphaTab').alphaTab('destroy');
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Destroy();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.destroy()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/downloadmidi.mdx b/docs/reference/api/downloadmidi.mdx
index c50b13fa5..9d1a71c7c 100644
--- a/docs/reference/api/downloadmidi.mdx
+++ b/docs/reference/api/downloadmidi.mdx
@@ -1,58 +1,42 @@
---
title: downloadMidi
-description: Generates an SMF1.0 file and downloads it
+description: "Generates an SMF1.0 file and downloads it"
sidebar_custom_props:
+ kind: method
javaScriptOnly: true
category: Methods - Core
- since: 1.3.0
+ since: 1.3.0
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Generates a SMF1.0 compliant MIDI file of the currently loaded song and starts the download of it.
+### Description
+Generates an SMF1.0 file and downloads it Generates a SMF1.0 compliant MIDI file of the currently loaded song and starts the download of it.
Please be aware that SMF1.0 does not support bends per note which might result in wrong bend effects
in case multiple bends are applied on the same beat (e.g. two notes bending or vibrato + bends).
-## Signatures
-
-
-
-
-
+
-### Parameters
-
- The SMF file format to which the song should be exported. (default: `SingleTrackMultiChannel`)
+
+ (no description)
-### Returns
-Nothing
-## Examples
-
-
-
+## Example - JavaScript
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.downloadMidi();
```
-
-
-
\ No newline at end of file
diff --git a/docs/reference/api/enumerateoutputdevices.mdx b/docs/reference/api/enumerateoutputdevices.mdx
new file mode 100644
index 000000000..c87f820e2
--- /dev/null
+++ b/docs/reference/api/enumerateoutputdevices.mdx
@@ -0,0 +1,89 @@
+---
+title: enumerateOutputDevices
+description: "Loads and lists the available output devices which can be used by the player."
+sidebar_custom_props:
+ kind: method
+ category: Methods - Player
+ since: 1.5.0
+---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+
+
+### Description
+Loads and lists the available output devices which can be used by the player. Will request permissions if needed.
+
+The values provided, can be passed into {"setOutputDevice"} to change dynamically the output device on which
+the sound is played.
+
+In the web version this functionality relies on experimental APIs and might not yet be available in all browsers. https://caniuse.com/mdn-api_audiocontext_sinkid
+
+
+
+
+
+
+
+### Returns
+the list of available devices or an empty list if there are no permissions, or the player is not enabled.
+
+
+## Examples
+
+
+
+```js
+const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
+const devices = await api.enumerateOutputDevices();
+
+buildDeviceSelector(devices, async selectedDevice => {
+ await api.setOutputDevice(selectedDevice);
+});
+```
+
+
+```cs
+var api = new AlphaTabApi(...);
+var devices = await api.EnumerateOutputDevices();
+
+BuildDeviceSelector(devices, async selectedDevice => {
+ await api.SetOutputDevice(selectedDevice);
+});
+```
+
+
+```kotlin
+fun init() = kotlinx.coroutines.runBlocking {
+ val api = AlphaTabApi(...)
+ val devices = api.enumerateOutputDevices().await()
+
+ buildDeviceSelector(devices, fun (selectedDevice) {
+ suspend {
+ await api.setOutputDevice(selectedDevice)
+ }
+ });
+}
+```
+
+
diff --git a/docs/reference/api/error.mdx b/docs/reference/api/error.mdx
index 0a380c9f1..27063a0f2 100644
--- a/docs/reference/api/error.mdx
+++ b/docs/reference/api/error.mdx
@@ -1,102 +1,74 @@
---
title: error
-description: This event is fired when an error within alphatab occurred.
+description: "This event is fired when an error within alphatab occurred."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when an error within alphatab occurred. Use this event as global error handler to show errors
+### Description
+This event is fired when an error within alphatab occurred. This event is fired when an error within alphatab occurred. Use this event as global error handler to show errors
to end-users. Due to the asynchronous nature of alphaTab, no call to the API will directly throw an error if it fails.
-Instead a signal to this error handlers will be sent.
-
-
-
-## Types
+Instead a signal to this error handlers will be sent.
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
+
+### Returns
+The custom configured output device which was set via {"setOutputDevice"} or `null`
+if the default outputDevice is used.
+The output device might change dynamically if devices are connected/disconnected (e.g. bluetooth headset).
+
+
+## Examples
+
+
+
+```js
+const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
+updateOutputDeviceUI(await api.getOutputDevice())
+```
+
+
+```cs
+var api = new AlphaTabApi(...);
+UpdateOutputDeviceUI(await api.GetOutputDevice())
+```
+
+
+```kotlin
+fun init() = kotlinx.coroutines.runBlocking {
+ val api = AlphaTabApi(...)
+ updateOutputDeviceUI(api.getOutputDevice().await())
+}
+```
+
+
diff --git a/docs/reference/api/init.mdx b/docs/reference/api/init.mdx
deleted file mode 100644
index 276893243..000000000
--- a/docs/reference/api/init.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: alphaTab()
-description: Initializes AlphaTab.
-sidebar_custom_props:
- jQueryOnly: true
- jQueryName: alphaTab()
- category: Methods - Core
- since: 0.9.4
----
-
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This jQuery specific function initializes alphaTab. For other systems this is not needed as the API is directly created.
-
-## Signatures
-
-
-
-
-
-### Parameters
-
-
-
- The settings to use for alphaTab. Either as JSON structure or as Settings instance.
-
-
-
-### Returns
-Nothing
-
-## Examples
-
-
-
-
-
-```js
-$('#alphaTab').alphaTab({
- scale: 1.5
-});
-```
-
-
-
-
diff --git a/docs/reference/api/islooping.mdx b/docs/reference/api/islooping.mdx
index 37ca0bbe8..028fb289b 100644
--- a/docs/reference/api/islooping.mdx
+++ b/docs/reference/api/islooping.mdx
@@ -1,76 +1,68 @@
---
title: isLooping
-description: Whether the playback should automatically restart after it finished
+description: "Whether the playback should automatically restart after it finished."
sidebar_custom_props:
- jQueryName: alphaTab('looping')
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This setting controls whether the playback should automatically restart after it finished to create a playback loop.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
-## Types
-
-
-
-
+### Description
+Whether the playback should automatically restart after it finished. This setting controls whether the playback should automatically restart after it finished to create a playback loop.
-## Default Value
+
+
+
+
+
-`false`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.isLooping = true;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('looping', true)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.IsLooping = true;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.isLooping = true
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/isreadyforplayback.mdx b/docs/reference/api/isreadyforplayback.mdx
index e57cb5bee..32197f904 100644
--- a/docs/reference/api/isreadyforplayback.mdx
+++ b/docs/reference/api/isreadyforplayback.mdx
@@ -1,74 +1,69 @@
---
title: isReadyForPlayback
-description: Whether the player is ready for starting the playback.
+description: "Whether the player is ready for starting the playback."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets whether the synthesizer is ready for playback. The player is ready for playback when
-all background workers are started, the audio output is initialized, a soundfont is loaded, and a song was loaded into the player as midi file.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+Whether the player is ready for starting the playback. Gets whether the synthesizer is ready for playback. The player is ready for playback when
+all background workers are started, the audio output is initialized, a soundfont is loaded, and a song was loaded into the player as midi file.
-## Types
+
+
+
+
+
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
if(api.isReadyForPlayback)) api.play();
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-if(at.alphaTab('isReadyForPlayback')) at.alphaTab('play');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
if(api.IsReadyForPlayback) api.Play();
```
-
-
```kotlin
val api = AlphaTabApi(...)
if (api.isReadyForPlayback) api.play()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/load.mdx b/docs/reference/api/load.mdx
index 826223cd0..8ce4d30fd 100644
--- a/docs/reference/api/load.mdx
+++ b/docs/reference/api/load.mdx
@@ -1,186 +1,85 @@
---
title: load
-description: Initiates a load of the score using the given data.
+description: "Initiates a load of the score using the given data."
sidebar_custom_props:
- category: Methods - Core
- since: 0.9.4
+ kind: method
+ category: Methods - Player
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
+### Description
+Initiates a load of the score using the given data.
-## Description
-This function initiates a load of the score using the given data. The supported types is depending on the platform.
-
-## Signatures
-
-
-
- Load the given score object
-
-
- Load the given score object
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given URL via Ajax using the available score loaders
-
-
- Load the score from the given URL via Ajax using the available score loaders
-
-
- Load the given score object
-
-
- Load the given score object
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given URL via Ajax using the available score loaders
-
-
- Load the score from the given URL via Ajax using the available score loaders
-
-
- Load the given score object
-
-
- Load the given score object
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given stream using the available score loaders
-
-
- Load the score from the given stream using the available score loaders
-
-
- Load the given score object
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given raw bytes using the available score loaders
-
-
- Load the score from the given strean using the available score loaders
-
-
+
+
+
+
+
-### Parameters
-
- The arraybuffer containing the raw bytes of a file supported by the score loaders
-
-
- The Uint8Array containing the raw bytes of a file supported by the score loaders
-
-
- A indexes of the tracks that should be rendered after the track is loaded. If not supplied, the first song will be rendered.
-
-
- The score object to load.
-
-
- The raw bytes containing a file supported by the score loaders.
-
-
- The stream containing a file supported by the score loaders.
-
-
- The score object to load.
-
-
- The raw bytes containing a file supported by the score loaders.
-
-
- The raw bytes containing a file supported by the score loaders.
+
+ The data container supported by {"IUiFacade"}. The supported types is depending on the platform:
+
+ * A `alphaTab.model.Score` instance (all platforms)
+ * A `ArrayBuffer` or `Uint8Array` containing one of the supported file formats (all platforms, native byte array or input streams on other platforms)
+ * A url from where to download the binary data of one of the supported file formats (browser only)
-
- The stream containing a file supported by the score loaders.
+
+ The indexes of the tracks from the song that should be rendered. If not provided, the first track of the
+ song will be shown.
-### Returns
-`true` if the passed in object is a supported format and loading was initiated, otherwise `false`.
+### Returns
+true if the data object is supported and a load was initiated, otherwise false
+
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.load('/assets/MyFile.gp');
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('load', '/assets/MyFile.gp');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Load(System.IO.File.OpenRead("MyFile.gp"));
```
-
-
```kotlin
val api = AlphaTabApi(...)
contentResolver.openInputStream(uri).use {
api.load(it)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/loadsoundfont.mdx b/docs/reference/api/loadsoundfont.mdx
index 06bf1cd98..92558f846 100644
--- a/docs/reference/api/loadsoundfont.mdx
+++ b/docs/reference/api/loadsoundfont.mdx
@@ -1,141 +1,83 @@
---
title: loadSoundFont
-description: Triggers a load of the soundfont from the given data.
+description: "Triggers a load of the soundfont from the given data."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This function initiates a load of the soundfont using the given data. The supported data types is depending on the platform. AlphaTab only supports SoundFont2 and SoundFont3 () encoded soundfonts for loading. To load a soundfont the player must be enabled in advance.
+### Description
+Triggers a load of the soundfont from the given data. AlphaTab only supports SoundFont2 and SoundFont3 encoded soundfonts for loading. To load a soundfont the player must be enabled in advance.
-## Signatures
-
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given URL via AJAX.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given URL via AJAX.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given stream.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given raw bytes.
-
-
- Load the soundfont from the given stream.
-
-
+
+
+
+
+
-### Parameters
-
- The arraybuffer containing the raw bytes of a SoundFont file
-
-
- The Uint8Array containing the raw bytes of a SoundFont file
-
-
- A URL pointing to a SoundFont file that should be loaded via AJAX.
-
-
- The raw bytes containing a SoundFont file.
-
-
- The stream containing a SoundFont file.
-
-
- The raw bytes containing a SoundFont file.
-
-
- The raw bytes containing a SoundFont file.
-
-
- The raw bytes containing a SoundFont file.
+
+ The data object to decode. The supported data types is depending on the platform.
+
+ * A `ArrayBuffer` or `Uint8Array` (all platforms, native byte array or input streams on other platforms)
+ * A url from where to download the binary data of one of the supported file formats (browser only)
-
- The stream containing a SoundFont file.
-
-
- Whether to append the presets of the new soundfont to the already loaded
- ones. Since: 1.1.0
+
+ Whether to fully replace or append the data from the given soundfont.
-### Returns
-`true` if the passed in object is a supported format and loading was initiated, otherwise `false`.
+### Returns
+`true` if the passed in object is a supported format and loading was initiated, otherwise `false`.
+
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.loadSoundFont('/assets/MyFile.sf2');
```
-
-
-
-```js
-$('#alphaTab').alphaTab('loadSoundFont', '/assets/MyFile.sf2');
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.LoadSoundFont(System.IO.File.OpenRead("MyFile.sf2"));
```
-
-
```kotlin
val api = AlphaTabApi(...)
contentResolver.openInputStream(uri).use {
api.loadSoundFont(it)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/loadsoundfontfromurl.mdx b/docs/reference/api/loadsoundfontfromurl.mdx
new file mode 100644
index 000000000..4bf6450f1
--- /dev/null
+++ b/docs/reference/api/loadsoundfontfromurl.mdx
@@ -0,0 +1,36 @@
+---
+title: loadSoundFontFromUrl
+description: "Triggers a load of the soundfont from the given URL."
+sidebar_custom_props:
+ kind: method
+ javaScriptOnly: true
+ category: Methods - Player
+ since: 0.9.4
+---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+
+
+### Description
+Triggers a load of the soundfont from the given URL.
+
+
+
+
+
+
+ The URL from which to load the soundfont
+
+
+ Whether to fully replace or append the data from the given soundfont.
+
+
+
diff --git a/docs/reference/api/mastervolume.mdx b/docs/reference/api/mastervolume.mdx
index 9b6b6d1f1..f5f96be5b 100644
--- a/docs/reference/api/mastervolume.mdx
+++ b/docs/reference/api/mastervolume.mdx
@@ -1,76 +1,68 @@
---
title: masterVolume
-description: The current master volume as percentage
+description: "The current master volume as percentage (0-1)."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets or sets the master volume of the overall audio being played. The volume is annotated in percentage where 1.0 would be the normal volume and 0.5 only 50%.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The current master volume as percentage (0-1). Gets or sets the master volume of the overall audio being played. The volume is annotated in percentage where 1.0 would be the normal volume and 0.5 only 50%.
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`1.0`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.masterVolume = 0.5;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('masterVolume', 0.5)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.MasterVolume = 0.5;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.masterVolume = 0.5
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/metronomevolume.mdx b/docs/reference/api/metronomevolume.mdx
index d786e6986..38c7bdb39 100644
--- a/docs/reference/api/metronomevolume.mdx
+++ b/docs/reference/api/metronomevolume.mdx
@@ -1,76 +1,68 @@
---
title: metronomeVolume
-description: The metronome volume as percentage
+description: "The metronome volume as percentage (0-1)."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets or sets the volume of the metronome. By default the metronome is disabled but can be enabled by setting the volume different.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The metronome volume as percentage (0-1). Gets or sets the volume of the metronome. By default the metronome is disabled but can be enabled by setting the volume different.
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`0.0`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.metronomeVolume = 0.5;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('metronomeVolume', 0.5)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.MetronomeVolume = 0.5;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.metronomeVolume = 0.5
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/midieventsplayed.mdx b/docs/reference/api/midieventsplayed.mdx
index 88a4ae790..05329f713 100644
--- a/docs/reference/api/midieventsplayed.mdx
+++ b/docs/reference/api/midieventsplayed.mdx
@@ -1,423 +1,95 @@
---
title: midiEventsPlayed
-description: The midi events which will trigger the `midiEventsPlayed` event
+description: "This event is fired when the synthesizer played certain midi events."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.0
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the synthesizer played certain midi events. This allows reacing on various low level
-audio playback elements like notes/rests played or metronome ticks.
-
-Refer to the [related guide](/docs/guides/handling-midi-events) to learn more about this feature.
-
-Also note that the provided data models changed significantly in `1.3.0`. We try to provide backwards compatibility
-until some extend but highly encourage changing to the new models in case of problems.
-
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The information about the played events.
-
-
- The information about the played events.
-
-
- The information about the played events.
-
-
-
-## MidiEventsPlayedEventArgs Properties
-
-
-
- The played midi events.
-
-
- The current time position within the song in milliseconds.
-
-
- The current time position within the song in milliseconds.
-
-
-
-Following midi event classes exist which represent the usual
-events of a midi file.
-
-### alphaTab.midi.MidiEvent
-The base class for all midi events. Check the `type` property to find out which type it is.
-
-
-
- The track to which this event belongs.
-
-
- The 32-bit encoded raw midi message. Deprecated since 1.3.0. Use the properties of the subclasses instead.
-
-
- The absolute midi tick of when this event is played.
-
-
- The midi channel to which this event belongs (not valid for all events).
-
-
- The type of this event. (Deprecated since 1.3, use `type` instead)
-
-
- The type of this event.
-
-
- The first data byte. Meaning depends on midi event type. (Deprecated since 1.3, use the specific properties of the midi event depending on type)
-
-
- The second data byte Meaning depends on midi event type. (Deprecated since 1.3, use the specific properties of the midi event depending on type)
-
-
-
-### alphaTab.midi.TimeSignatureEvent
-
-
-Indicates a time signature change. Type: `alphaTab.midi.MidiEventType.TimeSignature`
-
-
-
- The time signature numerator.
-
-
- The MIDI denominator index (the actual denominator is calculated via `2^(index)`)
-
-
- The number of MIDI clocks in a metronome click.
-
-
- The number of notated 32nd-notes in what MIDI thinks of as a quarter-note (24 MIDI Clocks)
-
-
-
-### alphaTab.midi.AlphaTabMetronomeEvent
-
-
-Represents a metronome event. Type: `alphaTab.midi.MidiEventType.AlphaTabMetronome`.
-
-
-
- The counter of the metronome as per time signature.
-
-
- The duration of this metronome tick in MIDI Ticks.
-
-
- The duration of this metronome tick in MIDI milliseconds.
-
-
-
-### alphaTab.midi.AlphaTabRestEvent
-
-
-Represents a metronome event. Type: `alphaTab.midi.MidiEventType.AlphaTabRest`.
-
-
-
- The counter of the metronome as per time signature.
-
-
- The duration of this metronome tick in MIDI Ticks.
-
-
- The duration of this metronome tick in MIDI milliseconds.
-
-
-
-### alphaTab.midi.NoteOnEvent
-
-
-Represents a note which started playing. Type: `alphaTab.midi.MidiEventType.NoteOn`.
-
-
-
- The midi channel on which it plays.
-
-
- The key of the note. (aka. note height)
-
-
- The velocity of the note. (aka. note intensity or loudness)
-
-
-
-### alphaTab.midi.NoteOffEvent
-
-
-Represents a note which stopped playing. Type: `alphaTab.midi.MidiEventType.NoteOff`.
-
-
-
- The midi channel on which it plays.
-
-
- The key of the note. (aka. note height)
-
-
- The velocity of the note. (aka. note intensity or loudness)
-
-
-
-### alphaTab.midi.ControlChangeEvent
-
-
-Represents a change of a midi controller on a channel. Type: `alphaTab.midi.MidiEventType.ControlChange`.
-
-
-
- The midi channel on which it plays.
-
-
- The controller for which the value changes.
-
-
- The new value of the controller. The meaning of the value depends on the controller.
-
-
-
-### alphaTab.midi.ProgramChangeEvent
-
-
-Represents a change of a MIDI program on a channel. Type: `alphaTab.midi.MidiEventType.ProgramChange`.
-
-
-
- The midi channel on which it plays.
-
-
- The new MIDI program used on the channel.
-
-
-
-### alphaTab.midi.TempoChangeEvent
-
-
-Represents the change of the played tempo. Type: `alphaTab.midi.MidiEventType.TempoChange`.
+### Description
+This event is fired when the synthesizer played certain midi events. This event is fired when the synthesizer played certain midi events. This allows reacing on various low level
+audio playback elements like notes/rests played or metronome ticks.
-
-
- The tempo in microseconds per quarter note (USQ). (BPM = 60000000 / USQ)
-
-
+Refer to the [related guide](/docs/guides/handling-midi-events) to learn more about this feature.
-### alphaTab.midi.PitchBendEvent
-
+Also note that the provided data models changed significantly in `{@version 1.3.0}`. We try to provide backwards compatibility
+until some extend but highly encourage changing to the new models in case of problems.
-Represents the pitch-bend (aka. pitch wheel) change on a whole midi channel. Type: `alphaTab.midi.MidiEventType.PitchBend`.
-
-
-
- The midi channel for which the pitch-bend is applied.
-
-
- The pitch wheel value as per MIDI1.0 spec.
-
-
-
-### alphaTab.midi.NoteBendEvent
-
-
-Represents the pitch-bend (aka. pitch wheel) change on a single played note. This midi message was only introduced in MIDI2.0 and
-alphaTab has internal support for it. But when exporting SMF1.0 files normal `PitchBendEvent` are generated. Type: `alphaTab.midi.MidiEventType.PerNotePitchBend`.
-
-
-
- The midi channel for which the pitch-bend is applied.
-
-
- The key of the note on the channel for which to apply the bend.
-
-
- The pitch wheel value as per MIDI1.0 spec.
-
-
-
-### alphaTab.midi.EndOfTrackEvent
-
-
-Indicates the end of a midi track. Type: `alphaTab.midi.MidiEventType.EndOfTrack`.
-
-
-
- The midi channel for which the pitch-bend is applied.
-
-
- The key of the note on the channel for which to apply the bend.
-
-
- The pitch wheel value as per MIDI1.0 spec.
-
-
-
-### alphaTab.midi.MetaEvent (deprecated since 1.3)
-Any Meta Events.
-
-
-
- The type of meta event.
-
-
-
-### alphaTab.midi.MetaDataEvent (deprecated since 1.3)
-Meta Events with a related data array (e.g. time signature changes).
-
-
-
- The raw binary data attached to this meta event.
-
-
-
-### alphaTab.midi.MetaNumberEvent (deprecated since 1.3)
-Meta Events with a number value (e.g. tempo changes).
-
-
-
- The number value of this meta event.
-
-
-
-
-### alphaTab.midi.Midi20PerNotePitchBendEvent (deprecated since 1.3)
-A Midi 2.0 comparable per-note pitch bend.
-
-
-
- The key of the note on the related channel which should be bent.
-
-
- The 32 bit pitch wheel value according to the Midi 2.0 standard.
-
-
-
-### alphaTab.midi.SystemCommonEvent (deprecated since 1.3)
-Not used in alphaTab by default.
-
-### alphaTab.midi.SystemExclusiveEvent (deprecated since 1.3)
-For special alphaTab specific events (e.g. rest played, metronome tick).
+
+
+
+
+
-
-
- The raw binary data attached to this event.
-
-
- Whether this event is a metronome tick event.
-
-
- If the event is a metronome event it contains the zero based metronome numerator according to the time signature (e.g. 0, 1, 2 on a 3/4 signature).
-
-
- If the event is a metronome event it contains the current duration of the metronome event in ticks.
-
-
- If the event is a metronome event it contains the current duration of the metronome event in milliseconds.
- This duration is assuming playback speed=1.
-
-
- Whether this event is a rest play event.
-
-
- The manufacturer ID of this specific event (0x7D for alphaTab).
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.midiEventsPlayedFilter = [alphaTab.midi.MidiEventType.AlphaTabMetronome];
api.midiEventsPlayed.on(function(e) {
for(const midi of e.events) {
if(midi.isMetronome) {
- console.log('Metronome tick ' + midi.tick);
+ console.log('Metronome tick ' + midi.tick);
}
}
});
```
-
-
-
-
-```js
-$('#alphaTab')
- .alphaTab('midiEventsPlayedFilter', [alphaTab.midi.MidiEventType.AlphaTabMetronome])
- .on('alphaTab.midiEventsPlayed', (e, args) => {
- for(const midi of args.events) {
- if(midi.isMetronome) {
- console.log('Metronome tick ' + midi.tick);
- }
- }
- });
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.MidiEventsPlayedFilter = new MidiEventType[] { AlphaTab.Midi.MidiEventType.AlphaTabMetronome };
-api.MidiEventsPlayed.On(e =>
+api.MidiEventsPlayed.On(e =>
{
- foreach(var midi of e.events)
+ foreach(var midi of e.events)
{
- if(midi is AlphaTab.Midi.AlphaTabMetronomeEvent sysex && sysex.IsMetronome)
+ if(midi is AlphaTab.Midi.AlphaTabMetronomeEvent sysex && sysex.IsMetronome)
{
- Console.WriteLine("Metronome tick " + midi.Tick);
+ Console.WriteLine("Metronome tick " + midi.Tick);
}
}
});
```
-
-
```kotlin
val api = AlphaTabApi(...);
api.midiEventsPlayedFilter = alphaTab.collections.List( alphaTab.midi.MidiEventType.AlphaTabMetronome )
api.midiEventsPlayed.on { e ->
for (midi in e.events) {
if(midi instanceof alphaTab.midi.AlphaTabMetronomeEvent && midi.isMetronome) {
- println("Metronome tick " + midi.tick);
+ println("Metronome tick " + midi.tick);
}
}
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/midieventsplayedfilter.mdx b/docs/reference/api/midieventsplayedfilter.mdx
index a5ca52dd1..c85635e26 100644
--- a/docs/reference/api/midieventsplayedfilter.mdx
+++ b/docs/reference/api/midieventsplayedfilter.mdx
@@ -1,116 +1,96 @@
---
title: midiEventsPlayedFilter
-description: The midi events which will trigger the `midiEventsPlayed` event
+description: "The midi events which will trigger the `midiEventsPlayed` event"
sidebar_custom_props:
+ kind: property
category: Properties - Player
since: 1.2.0
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-Gets or sets the midi events which will trigger the `midiEventsPlayed` event. With this filter set you can enable
-that alphaTab will signal any midi events as they are played by the synthesizer. This allows reacing on various low level
-audio playback elements like notes/rests played or metronome ticks.
-
-Refer to the [related guide](/docs/guides/handling-midi-events) to learn more about this feature.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The midi events which will trigger the `midiEventsPlayed` event Gets or sets the midi events which will trigger the `midiEventsPlayed` event. With this filter set you can enable
+that alphaTab will signal any midi events as they are played by the synthesizer. This allows reacing on various low level
+audio playback elements like notes/rests played or metronome ticks.
-## Types
-
-
-
-
-
-
+Refer to the [related guide](/docs/guides/handling-midi-events) to learn more about this feature.
-## Default Value
+
+
+
+
+
-`[]`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.midiEventsPlayedFilter = [alphaTab.midi.MidiEventType.AlphaTabMetronome];
api.midiEventsPlayed.on(function(e) {
for(const midi of e.events) {
if(midi.isMetronome) {
- console.log('Metronome tick ' + midi.metronomeNumerator);
+ console.log('Metronome tick ' + midi.metronomeNumerator);
}
}
});
```
-
-
-
-```js
-$('#alphaTab')
- .alphaTab('midiEventsPlayedFilter', [alphaTab.midi.MidiEventType.AlphaTabMetronome])
- .on('alphaTab.midiEventsPlayed', (e, args) => {
- for(const midi of args.events) {
- if(midi.isMetronome) {
- console.log('Metronome tick ' + midi.metronomeNumerator);
- }
- }
- });
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.MidiEventsPlayedFilter = new MidiEventType[] { AlphaTab.Midi.MidiEventType.AlphaTabMetronome };
-api.MidiEventsPlayed.On(e =>
+api.MidiEventsPlayed.On(e =>
{
- foreach(var midi of e.events)
+ foreach(var midi of e.events)
{
- if(midi is AlphaTab.Midi.AlphaTabMetronomeEvent metronome)
+ if(midi is AlphaTab.Midi.AlphaTabMetronomeEvent metronome)
{
- Console.WriteLine("Metronome tick " + metronome.MetronomeNumerator);
+ Console.WriteLine("Metronome tick " + metronome.MetronomeNumerator);
}
}
});
```
-
-
```kotlin
val api = AlphaTabApi(...);
api.midiEventsPlayedFilter = alphaTab.collections.List( alphaTab.midi.MidiEventType.AlphaTabMetronome )
api.midiEventsPlayed.on { e ->
for (midi in e.events) {
if(midi instanceof alphaTab.midi.AlphaTabMetronomeEvent && midi.isMetronome) {
- println("Metronome tick " + midi.tick);
+ println("Metronome tick " + midi.tick);
}
}
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/midiload.mdx b/docs/reference/api/midiload.mdx
index 64137d82e..705d446e2 100644
--- a/docs/reference/api/midiload.mdx
+++ b/docs/reference/api/midiload.mdx
@@ -1,113 +1,79 @@
---
title: midiLoad
-description: This event is fired when a Midi file is being loaded.
+description: "This event is fired when a Midi file is being loaded."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.0
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when a Midi file for the song was generated and is being loaded
-by the synthesizer. This event can be used to inspect or modify the midi events
+### Description
+This event is fired when a Midi file is being loaded. This event is fired when a Midi file for the song was generated and is being loaded
+by the synthesizer. This event can be used to inspect or modify the midi events
which will be played for the song. This can be used to generate other visual representations
of the song.
-:::note
-The generated midi file will NOT contain any metronome and count-in related events. The metronome and
-count-in ticks are handled within the synthesizer.
-:::
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
- The midi file containing all events which will be synthesized.
-
-
-
-## MidiFile Properties
+> [!NOTE]
+> The generated midi file will NOT contain any metronome and count-in related events. The metronome and
+> count-in ticks are handled within the synthesizer.
+
+
+
+
+
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.midiLoad.on(file => {
initializePianoPractice(file);
});
```
-
-
-
-
-```js
-$('#alphaTab').on('alphaTab.midiLoad', (e) => {
- const file = e.detail;
- initializePianoPractice(file);
-});
-```
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.midiLoad', e => {
- const file = e.detail;
- initializePianoPractice(file);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.MidiLoad.On(file =>
+api.MidiLoad.On(file =>
{
InitializePianoPractice(file);
});
```
-
-
-```cs
+```kotlin
val api = AlphaTabApi(...)
api.midiLoad.on { file ->
initializePianoPractice(file)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/midiloaded.mdx b/docs/reference/api/midiloaded.mdx
index b168e27dc..943d989fe 100644
--- a/docs/reference/api/midiloaded.mdx
+++ b/docs/reference/api/midiloaded.mdx
@@ -1,64 +1,50 @@
---
title: midiLoaded
-description: This event is fired when the Midi file needed for playback was loaded.
+description: "This event is fired when the Midi file needed for playback was loaded."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the Midi file needed for playback was loaded.
-
-
-
-## Types
-
-
-
-
-
-
+### Description
+This event is fired when the Midi file needed for playback was loaded.
-## Parameters
-
-
- The information about the song duration. since 1.2.0-alpha.97
-
-
- The information about the song duration. since 1.2.0-alpha.97
-
-
- The information about the song duration.
-
-
-
-## PositionChangedEventArgs Properties
+
+
+
+
+
-See [`playerPositionChanged`](/docs/reference/api/playerpositionchanged)
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.midiLoaded.on(e => {
@@ -66,43 +52,18 @@ api.midiLoaded.on(e => {
updateSongDuration(e.endTime);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.midiFileLoaded', (e) => {
- var args = e.detail;
- hideGeneratingAudioIndicator();
- updateSongDuration(args.endTime);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.midiFileLoaded', e => {
- hideGeneratingAudioIndicator();
- updateSongDuration(e.endTime);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.MidiLoaded.On(e =>
+api.MidiLoaded.On(e =>
{
HideGeneratingAudioIndicator();
UpdateSongDuration(e.EndTime);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.midiLoaded.on { e ->
@@ -110,6 +71,5 @@ api.midiLoaded.on { e ->
updateSongDuration(e.endTime)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/notemousedown.mdx b/docs/reference/api/notemousedown.mdx
index 630b919be..59e91558f 100644
--- a/docs/reference/api/notemousedown.mdx
+++ b/docs/reference/api/notemousedown.mdx
@@ -1,99 +1,74 @@
---
title: noteMouseDown
-description: This event is fired whenever a the user presses the mouse button on a note head/number.
+description: "This event is fired whenever a the user presses the mouse button on a note head/number."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.3
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired whenever a the user presses the mouse button on a note.
-It is only fired if [`includeNoteBounds`](/docs/reference/settings/core/includenotebounds) was set to true because
-only then this hit detection can be done. A click on a note is considered if the note head or the note number on tabs are clicked as documented in the [`boundsLookup`](/docs/reference/scorerenderer/boundslookup)
-
-
+### Description
+This event is fired whenever a the user presses the mouse button on a note head/number. This event is fired whenever a the user presses the mouse button on a note.
+It is only fired if {"CoreSettings.includeNoteBounds"} was set to `true` because
+only then this hit detection can be done. A click on a note is considered if the note head or the note number on tabs are clicked as documented in {"boundsLookup"}.
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- The note which was clicked.
-
-
- The note which was clicked.
-
-
- The note which was clicked.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.noteMouseDown.on((note) => {
api.playNote(note);
});
```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.noteMouseDown', (e) => {
- const note = e.detail;
- api.playNote(beat);
-}, false);
-```
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.NoteMouseDown.On(note =>
+api.NoteMouseDown.On(note =>
{
api.PlayNote(note);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
-api.noteMouseDown.on { note ->
+api.noteMouseDown.on { note ->
api.playNote(note)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/notemousemove.mdx b/docs/reference/api/notemousemove.mdx
index b732ba3db..4f1835c71 100644
--- a/docs/reference/api/notemousemove.mdx
+++ b/docs/reference/api/notemousemove.mdx
@@ -1,99 +1,74 @@
---
title: noteMouseMove
-description: This event is fired whenever the user moves the mouse over a note after the user already pressed the button on a note.
+description: "This event is fired whenever the user moves the mouse over a note after the user already pressed the button on a note."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.3
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired whenever the user moves the mouse over a note after the user already pressed the button on a note.
-It is only fired if [`includeNoteBounds`](/docs/reference/settings/core/includenotebounds) was set to true because
-only then this hit detection can be done. A move on a note is considered if the note head or the note number on tabs are clicked as documented in the [`boundsLookup`](/docs/reference/scorerenderer/boundslookup)
-
-
+### Description
+This event is fired whenever the user moves the mouse over a note after the user already pressed the button on a note. This event is fired whenever the user moves the mouse over a note after the user already pressed the button on a note.
+It is only fired if {"CoreSettings.includeNoteBounds"} was set to `true` because
+only then this hit detection can be done. A click on a note is considered if the note head or the note number on tabs are clicked as documented in {"boundsLookup"}
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- Note on which the mouse was hovered over during mouse down.
-
-
- Note on which the mouse was hovered over during mouse down.
-
-
- Note on which the mouse was hovered over during mouse down.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.noteMouseMove.on((note) => {
changeNote(note)
});
```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.noteMouseMove', (e) => {
- var note = e.detail;
- changeNote(note)
-}, false);
-```
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.NoteMouseMove.On(note =>
+api.NoteMouseMove.On(note =>
{
ChangeNote(note);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
-api.noteMouseMove.on { note ->
+api.noteMouseMove.on { note ->
changeNote(note)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/notemouseup.mdx b/docs/reference/api/notemouseup.mdx
index 2d8f3f4cb..07ee64cfe 100644
--- a/docs/reference/api/notemouseup.mdx
+++ b/docs/reference/api/notemouseup.mdx
@@ -1,104 +1,76 @@
---
title: noteMouseUp
-description: This event is fired whenever the user releases the mouse after a mouse press on a note.
+description: "This event is fired whenever the user releases the mouse after a mouse press on a note."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 1.2.3
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired whenever the user releases the mouse after a mouse press on a note.
+### Description
+This event is fired whenever the user releases the mouse after a mouse press on a note. This event is fired whenever a the user presses the mouse button on a note.
This event is fired regardless of whether the mouse was released on a note.
The parameter is null if the mouse was released somewhere beside the note.
-It is only fired if [`includeNoteBounds`](/docs/reference/settings/core/includenotebounds) was set to true because
-only then this hit detection can be done. A move on a note is considered if the note head or the note number on tabs are clicked as documented in the [`boundsLookup`](/docs/reference/scorerenderer/boundslookup)
-
-
+It is only fired if {"CoreSettings.includeNoteBounds"} was set to `true` because
+only then this hit detection can be done. A click on a note is considered if the note head or the note number on tabs are clicked as documented in the {"boundsLookup"}.
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- Note on which the mouse was released over after mouse down.
- Might be null if no note could be found in near location.
-
-
- Note on which the mouse was released over after mouse down.
- Might be null if no note could be found in near location.
-
-
- Note on which the mouse was released over after mouse down.
- Might be null if no note could be found in near location.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.noteMouseUp.on((note) => {
api.playNote(note);
});
```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.noteMouseUp', (e) => {
- const note = e.detail;
- api.playNote(note);
-}, false);
-```
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.NoteMouseUp.On(note =>
+api.NoteMouseUp.On(note =>
{
api.PlayNote(note);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.noteMouseUp.on { note ->
api.playNote(note)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/pause.mdx b/docs/reference/api/pause.mdx
index f58b068d8..efd4e9957 100644
--- a/docs/reference/api/pause.mdx
+++ b/docs/reference/api/pause.mdx
@@ -1,76 +1,65 @@
---
title: pause
-description: Pauses the playback of the current song.
+description: "Pauses the playback of the current song."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
+### Description
Pauses the playback of the current song.
-## Signatures
-
-
-
-
-
-
-
-
-### Parameters
-None
+
+
+
{"pause"}{"("}{")"}{":"}{" "}{"void"}
+
+
+
{"void"}{" "}{"Pause"}{"("}{")"}
+
+
+
{"fun"}{" "}{"pause"}{"("}{")"}{":"}{" "}{"Unit"}
+
+
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.pause();
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('pause');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Pause();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.pause();
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/play.mdx b/docs/reference/api/play.mdx
index 30bd0e9af..8f21c6af8 100644
--- a/docs/reference/api/play.mdx
+++ b/docs/reference/api/play.mdx
@@ -1,76 +1,68 @@
---
title: play
-description: Starts the playback of the current song.
+description: "Starts the playback of the current song."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Starts the playback of the current song if possible.Reasons for not starting can be that the player is not ready yet or it is already playing.
-
-## Signatures
+### Description
+Starts the playback of the current song.
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-None
+### Returns
+true if the playback was started, otherwise false. Reasons for not starting can be that the player is not ready or already playing.
-### Returns
-true if the playback was started, otherwise false. Reasons for not starting can be that the player is not ready or already playing.
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.play();
```
-
-
-
-```js
-$('#alphaTab').alphaTab('play');
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Play();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.play()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playbackrange.mdx b/docs/reference/api/playbackrange.mdx
index c57b1bf6c..5a264b1e9 100644
--- a/docs/reference/api/playbackrange.mdx
+++ b/docs/reference/api/playbackrange.mdx
@@ -1,119 +1,71 @@
---
title: playbackRange
-description: The range of the song that should be played
+description: "The range of the song that should be played."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
import { CodeBadge } from '@site/src/components/CodeBadge';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Gets or sets the range of the song that should be played. The range is defined in midi ticks or the whole song is played if the range is set to null
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The range of the song that should be played. Gets or sets the range of the song that should be played. The range is defined in midi ticks or the whole song is played if the range is set to null
-## Types
-
-
-
-
-
-
-
-## PlaybackRange Properties
-
-
-
-
-
Property
-
Type
-
Summary
-
-
-
-
-
-
-
-
-
-
int
-
- The position in midi ticks from where the song should start
-
-
-
-
-
-
-
-
-
int
-
- The position in midi ticks to where the song should be played.
-
+
+
-
-
- The new playback range or null if no range is selected. (see [PlaybackRange](/docs/reference/api/playbackrange))
-
-
- The new playback range or null if no range is selected. (see [PlaybackRange](/docs/reference/api/playbackrange))
-
-
- The new playback range or null if no range is selected. (see [PlaybackRange](/docs/reference/api/playbackrange))
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playbackRangeChanged.on((args) => {
@@ -80,55 +55,24 @@ api.playbackRangeChanged.on((args) => {
}
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.playbackRangeChanged', (e, args) => {
- if (args.playbackRange) {
- highlightRangeInProgressBar(args.playbackRange.startTick, args.playbackRange.endTick);
- } else {
- clearHighlightInProgressBar();
- }
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.playbackRangeChanged', (e) => {
- const args = e.detail;
- if (args.playbackRange) {
- highlightRangeInProgressBar(args.playbackRange.startTick, args.playbackRange.endTick);
- } else {
- clearHighlightInProgressBar();
- }
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.PlaybackRangeChanged.On(args =>
+api.PlaybackRangeChanged.On(args =>
{
- if (args.PlaybackRange != null)
+ if (args.PlaybackRange != null)
{
HighlightRangeInProgressBar(args.PlaybackRange.StartTick, args.PlaybackRange.EndTick);
}
- else
+ else
{
ClearHighlightInProgressBar();
}
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playbackRangeChanged.on { args ->
@@ -140,6 +84,5 @@ api.playbackRangeChanged.on { args ->
}
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playbackspeed.mdx b/docs/reference/api/playbackspeed.mdx
index b4613b6cb..55ddf5e2a 100644
--- a/docs/reference/api/playbackspeed.mdx
+++ b/docs/reference/api/playbackspeed.mdx
@@ -1,76 +1,68 @@
---
title: playbackSpeed
-description: The current playback speed as percentage
+description: "The current playback speed as percentage"
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Controls the current playback speed as percentual value. Normal speed is 1.0 (100%) and 0.5 would be 50%.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The current playback speed as percentage Controls the current playback speed as percentual value. Normal speed is 1.0 (100%) and 0.5 would be 50%.
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`1.0`
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playbackSpeed = 0.5;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('playbackSpeed', 0.5)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.PlaybackSpeed = 0.5;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playbackSpeed = 0.5
```
-
diff --git a/docs/reference/api/playbeat.mdx b/docs/reference/api/playbeat.mdx
index 289cdf538..7fb785251 100644
--- a/docs/reference/api/playbeat.mdx
+++ b/docs/reference/api/playbeat.mdx
@@ -1,93 +1,78 @@
---
title: playBeat
-description: Triggers the play of the given beat.
+description: "Triggers the play of the given beat."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 1.1.0
+ since: 1.1.0
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import { SinceBadge } from '@site/src/components/SinceBadge';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+
-## Description
+### Description
Triggers the play of the given beat. This will stop the any other current ongoing playback.
-This method can be used in applications when individual beats need to be played for lesson or editor style purposes.
-The player will not report any change in state or playback position during the playback of the requested beat.
-It is a playback of audio separate to the main song playback.
-
-## Signatures
+This method can be used in applications when individual beats need to be played for lesson or editor style purposes.
+The player will not report any change in state or playback position during the playback of the requested beat.
+It is a playback of audio separate to the main song playback.
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The single beat to play.
-
-
- The single beat to play.
-
-
- The single beat to play.
+
+ the single beat to play
-
-### Returns
+### Returns
+true if the playback was started, otherwise false. Reasons for not starting can be that the player is not ready or already playing.
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playBeat(api.score.tracks[0].staves[0].bars[0].voices[0].beats[0]);
```
-
-
-
-
-```js
-const beat = $('#alphaTab').alphaTab('score').tracks[0].staves[0].bars[0].voices[0].beats[0];
-$('#alphaTab').alphaTab('playBeat', beat);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.PlayBeat(api.Score.Tracks[0].Staves[0].Bars[0].Voices[0].Beats[0]);
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playBeat(api.score.tracks[0].staves[0].bars[0].voices[0].beats[0])
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playedbeatchanged.mdx b/docs/reference/api/playedbeatchanged.mdx
index 62a98df11..e796c9d7e 100644
--- a/docs/reference/api/playedbeatchanged.mdx
+++ b/docs/reference/api/playedbeatchanged.mdx
@@ -1,107 +1,72 @@
---
title: playedBeatChanged
-description: This event is fired when the played beat changed.
+description: "This event is fired when the played beat changed."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
+### Description
This event is fired when the played beat changed.
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-
-
- The new beat that is now being played..
-
-
- The new beat that is now being played..
-
-
- The new beat that is now being played..
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playedBeatChanged.on((beat) => {
updateFretboard(beat);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.playedBeatChanged', (e, beat) => {
- updateFretboard(beat);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.playedBeatChanged', (e) => {
- const beat = e.detail;
- updateFretboard(beat);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.PlayedBeatChanged.On(beat =>
+api.PlayedBeatChanged.On(beat =>
{
UpdateFretboard(beat);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playedBeatChanged.on { beat ->
updateFretboard(beat)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/player.mdx b/docs/reference/api/player.mdx
index 4a13bf7d0..8c28e9224 100644
--- a/docs/reference/api/player.mdx
+++ b/docs/reference/api/player.mdx
@@ -1,74 +1,69 @@
---
title: player
-description: The alphaSynth player used for playback. This is the low-level API to the Midi synthesizer used for playback.
+description: "The alphaSynth player used for playback."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets access to the underling `alphaTab.synth.IAlphaSynth` that is used for the audio playback.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The alphaSynth player used for playback. This is the low-level API to the Midi synthesizer used for playback.
+Gets access to the underling {"IAlphaSynth"} that is used for the audio playback.
-## Types
+
+
+
+
+
-
-
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
setupPlayerEvents(api.settings);
```
-
-
-
-
-```js
-setupPlayerEvents($('#alphaTab').alphaTab('player'));
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
SetupPlayerEvents(api.Player);
```
-
-
```kotlin
val api = AlphaTabApi(...)
setupPlayerEvents(api.player)
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playerfinished.mdx b/docs/reference/api/playerfinished.mdx
index 0f9b9b038..481b7eeb5 100644
--- a/docs/reference/api/playerfinished.mdx
+++ b/docs/reference/api/playerfinished.mdx
@@ -1,50 +1,50 @@
---
title: playerFinished
-description: This event is fired when the playback of the whole song finished.
+description: "This event is fired when the playback of the whole song finished."
sidebar_custom_props:
+ kind: event
category: Events - Player
- since: 0.9.4
+ since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
+### Description
This event is fired when the playback of the whole song finished. This event is finished regardless on whether looping is enabled or not.
-
-
-## Types
-
-
-
-
-
-
+
+
+
+
+
-
-
- The current time position within the song in milliseconds.
-
-
- The current time position within the song in milliseconds.
-
-
- The current time position within the song in milliseconds.
-
-
- The total length of the song in milliseconds.
-
-
- The current time position within the song in milliseconds.
-
-
- The current time position within the song in milliseconds.
-
-
- The current time position within the song in midi ticks.
-
-
- The current time position within the song in midi ticks.
-
-
- The current time position within the song in midi ticks.
-
-
- The total length of the song in midi ticks.
-
-
- The current time position within the song in midi ticks.
-
-
- The current time position within the song in midi ticks.
-
-
- Whether the position changed because of time seeking and not due to playback. since 1.2.0-alpha.97
-
-
- Whether the position changed because of time seeking and not due to playback. since 1.2.0-alpha.97
-
-
- Whether the position changed because of time seeking and not due to playback. since 1.2.0-alpha.97
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playerPositionChanged.on((args) => {
updatePlayerPosition(args);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.positionChanged', (e, args) => {
- updatePlayerPosition(args);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.positionChanged', (e) => {
- var args = e.detail;
- updatePlayerPosition(args);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.PlayerPositionChanged.On(args =>
+api.PlayerPositionChanged.On(args =>
{
UpdatePlayerPosition(args);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playerPositionChanged.on { args ->
updatePlayerPosition(args)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playerready.mdx b/docs/reference/api/playerready.mdx
new file mode 100644
index 000000000..fde4d6ab9
--- /dev/null
+++ b/docs/reference/api/playerready.mdx
@@ -0,0 +1,73 @@
+---
+title: playerReady
+description: "This event is fired when all required data for playback is loaded and ready."
+sidebar_custom_props:
+ kind: event
+ category: Events - Player
+ since: 0.9.4
+---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+
+
+### Description
+This event is fired when all required data for playback is loaded and ready. This event is fired when all required data for playback is loaded and ready. The player is ready for playback when
+all background workers are started, the audio output is initialized, a soundfont is loaded, and a song was loaded into the player as midi file.
+
+
+
+
+
+
+
+
+## Examples
+
+
+
+```js
+const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
+api.playerReady.on(() => {
+ enablePlayerControls();
+});
+```
+
+
+```cs
+var api = new AlphaTabApi(...);
+api.PlayerReady.On(() =>
+{
+ EnablePlayerControls()
+});
+```
+
+
+```kotlin
+val api = AlphaTabApi(...)
+api.playerReady.on {
+ enablePlayerControls()
+}
+```
+
+
diff --git a/docs/reference/api/playerstate.mdx b/docs/reference/api/playerstate.mdx
index ab3264328..3bf4a172f 100644
--- a/docs/reference/api/playerstate.mdx
+++ b/docs/reference/api/playerstate.mdx
@@ -1,78 +1,68 @@
---
title: playerState
-description: The current player state
+description: "The current player state."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets the current player state, meaning whether it is paused or playing.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The current player state. Gets the current player state, meaning whether it is paused or playing.
-## Types
+
+
+
+
+
-
-
- `0` for paused
- `1` for playing
-
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
if(api.playerState != alphaTab.synth.PlayerState.Playing) api.play();
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-if(at.alphaTab('playerState') != alphaTab.synth.PlayerState.Playing) at.alphaTab('play');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
if(api.PlayerState != PlayerState.Playing) api.Play();
```
-
-
```kotlin
val api = AlphaTabApi(...)
if (api.playerState != PlayerState.Playing) api.play()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playerstatechanged.mdx b/docs/reference/api/playerstatechanged.mdx
index 88650b5cc..5f0f73359 100644
--- a/docs/reference/api/playerstatechanged.mdx
+++ b/docs/reference/api/playerstatechanged.mdx
@@ -1,126 +1,72 @@
---
title: playerStateChanged
-description: This event is fired when the playback state changed.
+description: "This event is fired when the playback state changed."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the playback state changed.
-
-
-
-## Types
-
-
-
-
-
-
+### Description
+This event is fired when the playback state changed.
-## Parameters
-
-
-
- The information about the player state change event.
-
-
- The information about the player state change event.
-
-
- The information about the player state change event.
-
-
-
-## PlayerStateChangedEventArgs Properties
+
+
+
+
+
-
-
- The new state of the player.
- `0` - Paused
- `1` - Playing
-
-
- The new state of the player.
-
-
- The new state of the player.
-
-
- Whether the playback was fully stopped (including jump to start) or only paused.
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playerStateChanged.on((args) => {
updatePlayerControls(args.state, args.stopped);
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.playerStateChanged', (e, args) => {
- updatePlayerControls(args.state, args.stopped);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.playerStateChanged', (e) => {
- const args = e.detail;
- updatePlayerControls(args.state, args.stopped);
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.PlayerStateChanged.On(args =>
+api.PlayerStateChanged.On(args =>
{
UpdatePlayerControls(args);
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playerStateChanged.on { args ->
updatePlayerControls(args)
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playnote.mdx b/docs/reference/api/playnote.mdx
index 7cecb47c2..aec6bfaad 100644
--- a/docs/reference/api/playnote.mdx
+++ b/docs/reference/api/playnote.mdx
@@ -1,93 +1,75 @@
---
title: playNote
-description: Triggers the play of the given note.
+description: "Triggers the play of the given note."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 1.1.0
+ since: 1.1.0
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
+### Description
Triggers the play of the given note. This will stop the any other current ongoing playback.
-This method can be used in applications when individual notes need to be played for lesson or editor style purposes.
-The player will not report any change in state or playback position during the playback of the requested note.
-It is a playback of audio separate to the main song playback.
+This method can be used in applications when individual notes need to be played for lesson or editor style purposes.
+The player will not report any change in state or playback position during the playback of the requested note.
+It is a playback of audio separate to the main song playback.
-## Signatures
-
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The single note to play.
-
-
- The single note to play.
-
-
- The single note to play.
+
+ the single note to play
-### Returns
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playNote(api.score.tracks[0].staves[0].bars[0].voices[0].beats[0].notes[0]);
```
-
-
-
-
-```js
-const note = $('#alphaTab').alphaTab('score').tracks[0].staves[0].bars[0].voices[0].beats[0].notes[0];
-$('#alphaTab').alphaTab('playNote', beat);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.PlayNote(api.Score.Tracks[0].Staves[0].Bars[0].Voices[0].Beats[0].Notes[0]);
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playNote(api.score.tracks[0].staves[0].bars[0].voices[0].beats[0].notes[0]);
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/playpause.mdx b/docs/reference/api/playpause.mdx
index f4efa032b..c02303c90 100644
--- a/docs/reference/api/playpause.mdx
+++ b/docs/reference/api/playpause.mdx
@@ -1,75 +1,65 @@
---
title: playPause
-description: Toggles between play/pause depending on the current player state.
+description: "Toggles between play/pause depending on the current player state."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Toggles between play/pause depending on the current player state. if the player was playing, it will pause. If it is paused, it will initiate a play.
-
-## Signatures
+### Description
+Toggles between play/pause depending on the current player state. If the player was playing, it will pause. If it is paused, it will initiate a play.
-
-
-
-
-
-
-
-### Parameters
-None
+
+
+
+
+
-### Returns
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.playPause();
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('playPause');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.PlayPause();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.playPause()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/postrenderfinished.mdx b/docs/reference/api/postrenderfinished.mdx
index 69b2a2f27..1708e5ab4 100644
--- a/docs/reference/api/postrenderfinished.mdx
+++ b/docs/reference/api/postrenderfinished.mdx
@@ -1,96 +1,76 @@
---
title: postRenderFinished
-description: This event is fired when the rendering of the whole music sheet is finished, and all handlers of RenderFinished ran.
+description: "This event is fired when the rendering of the whole music sheet is finished, and all handlers of `renderFinished` ran."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the rendering of the whole music sheet is finished, and all handlers of RenderFinished ran. When this
-handlers are called, the whole rendering and display pipeline is completed.
-
-
-
-## Types
+### Description
+This event is fired when the rendering of the whole music sheet is finished, and all handlers of `renderFinished` ran. If {"CoreSettings.enableLazyLoading"} is enabled not all partial images of the music sheet might be rendered.
+In this case the `renderFinished` event rather represents that the whole music sheet has been layouted and arranged
+and every partial image can be requested for rendering. If you neeed more fine-grained access
+to the actual layouting and rendering progress, you need to look at the low-level apis {"partialLayoutFinished"} and
+{"partialRenderFinished"} accessible via {"renderer"}.
-
-
-
-
-
+
+
+
+
+
-## Parameters
-None
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.postRenderFinished.on(() => {
hideLoadingIndicator();
-});
-```
-
-
-
-
-```js
-$('#alphaTab').on('alphaTab.postRendered', () => {
- hideLoadingIndicator();
});
```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.postRendered', (e) => {
- hideLoadingIndicator();
-}, false);
-```
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.PostRenderFinished.On(() =>
+api.PostRenderFinished.On(() =>
{
HideLoadingIndicator();
});
```
-
-
```kotlin
val api = AlphaTabApi(...)
-api.postRenderFinished.on {
+api.postRenderFinished.on {
hideLoadingIndicator();
}
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/print.mdx b/docs/reference/api/print.mdx
index 74fca70ec..44e4ec7f8 100644
--- a/docs/reference/api/print.mdx
+++ b/docs/reference/api/print.mdx
@@ -1,79 +1,51 @@
---
title: print
-description: Opens a popup window with the rendered music notation for printing.
+description: "Opens a popup window with the rendered music notation for printing."
sidebar_custom_props:
+ kind: method
javaScriptOnly: true
category: Methods - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Opens a popup window with the rendered music notation for printing. The default display of alphaTab in the browser is not very
+### Description
+Opens a popup window with the rendered music notation for printing. Opens a popup window with the rendered music notation for printing. The default display of alphaTab in the browser is not very
suitable for printing. The items are lazy loaded, the width can be dynamic, and the scale might be better suitable for screens.
-This function opens a popup window which is filled with a by-default A4 optimized view of the rendered score:
+This function opens a popup window which is filled with a by-default A4 optimized view of the rendered score:
* Lazy loading is disabled
* The scale is reduced to 0.8
* The stretch force is reduced to 0.8
* The width is optimized to A4. Portrait if the page-layout is used, landscape if the horizontal-layout is used.
-## Signatures
-
-
-
-
-
-
-
-
+
-### Parameters
-
+
An optional custom width as CSS width that should be used. Best is to use a CSS width that is suitable for your preferred page size.
-
- An optional parameter to specify additional setting values which should be respected during printing.
- since 1.2.0-alpha.79
+
+ An optional parameter to specify additional setting values which should be respected during printing ()
-### Returns
-Nothing
-## Examples
-
-
-
+## Example - JavaScript
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.print();
api.print(undefined, { display: { barsPerRow: 5 } });
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('print');
-```
-
-
-
\ No newline at end of file
diff --git a/docs/reference/api/readyforplayback.mdx b/docs/reference/api/readyforplayback.mdx
deleted file mode 100644
index dc79a71ad..000000000
--- a/docs/reference/api/readyforplayback.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: playerReady
-description: This event is fired when all required data for playback is loaded and ready.
-sidebar_custom_props:
- category: Events - Player
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when all required data for playback is loaded and ready. The player is ready for playback when
-all background workers are started, the audio output is initialized, a soundfont is loaded, and a song was loaded into the player as midi file.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-none
-
-## Examples
-
-
-
-
-```js
-const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
-api.playerReady.on(() => {
- enablePlayerControls();
-});
-```
-
-
-
-
-```js
-$('#alphaTab').on('alphaTab.playerReady', (e) => {
- enablePlayerControls();
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.playerReady', () => {
- enablePlayerControls();
-}, false);
-```
-
-
-
-
-```cs
-var api = new AlphaTabApi(...);
-api.PlayerReady.On(() =>
-{
- EnablePlayerControls()
-});
-```
-
-
-
-
-```kotlin
-val api = AlphaTabApi(...)
-api.playerReady.on {
- enablePlayerControls()
-}
-```
-
-
-
\ No newline at end of file
diff --git a/docs/reference/api/render.mdx b/docs/reference/api/render.mdx
index e8b5f67f5..2255c8a7e 100644
--- a/docs/reference/api/render.mdx
+++ b/docs/reference/api/render.mdx
@@ -1,78 +1,65 @@
---
title: render
-description: Initiates a re-rendering of the current setup.
+description: "Initiates a re-rendering of the current setup."
sidebar_custom_props:
+ kind: method
category: Methods - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
+### Description
Initiates a re-rendering of the current setup. If rendering is not yet possible, it will be deferred until the UI changes to be ready for rendering.
-## Signatures
-
-
-
-
-
-
-
-
-### Parameters
-None
-
-### Returns
-Nothing
+
+
+
+
+
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.render();
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('render');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Render();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.render()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/renderer.mdx b/docs/reference/api/renderer.mdx
index 1d4896cb9..e6142700b 100644
--- a/docs/reference/api/renderer.mdx
+++ b/docs/reference/api/renderer.mdx
@@ -1,28 +1,39 @@
---
title: renderer
-description: The score renderer used for rendering the music sheet. This is the low-level API responsible for the actual rendering chain.
+description: "The score renderer used for rendering the music sheet."
sidebar_custom_props:
+ kind: property
category: Properties - Core
- since: 0.9.4
+ since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets access to the underling `AlphaTab.Rendering.IScoreRenderer` that is used for the rendering.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The score renderer used for rendering the music sheet. This is the low-level API responsible for the actual rendering engine.
+Gets access to the underling {"IScoreRenderer"} that is used for the rendering.
+
+
+
+
+
+
-## Types
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/reference/api/renderfinished.mdx b/docs/reference/api/renderfinished.mdx
index a45bdc709..3724e694a 100644
--- a/docs/reference/api/renderfinished.mdx
+++ b/docs/reference/api/renderfinished.mdx
@@ -1,96 +1,73 @@
---
title: renderFinished
-description: This event is fired when the rendering of the whole music sheet is finished.
+description: "This event is fired when the rendering of the whole music sheet is finished."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the rendering of the whole music sheet is finished from the render engine side. There might be still tasks open for
-the display component to visually display the rendered components when this event is notified.
-
-
-
-## Types
+### Description
+This event is fired when the rendering of the whole music sheet is finished. This event is fired when the rendering of the whole music sheet is finished from the render engine side. There might be still tasks open for
+the display component to visually display the rendered components when this event is notified (e.g. resizing of DOM elements are done).
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The score that contains the tracks to be rendered.
-
-
- The indexes of the tracks that should be rendered. If not provided, the first track of the song will be rendered.
-
-
- The score that contains the tracks to be rendered.
+
+ The score containing the tracks to be rendered.
-
- The indexes of the tracks that should be rendered. If not provided, the first track of the song will be rendered.
-
-
- The score that contains the tracks to be rendered.
-
-
- The indexes of the tracks that should be rendered. If not provided, the first track of the song will be rendered.
+
+ The indexes of the tracks from the song that should be rendered. If not provided, the first track of the
+ song will be shown.
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.RenderScore(generateScore(),[ 2, 3 ]);
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-const score = at.alphaTab('score');
-at.alphaTab('renderScore', generateScore(), [ 2, 3 ]);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.RenderScore(GenerateScore(), new double[] { 2, 3 });
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.renderScore(generateScore(), alphaTab.collections.DoubleList(2, 3));
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/renderstarted.mdx b/docs/reference/api/renderstarted.mdx
index 923cf4ca8..ddd0a0910 100644
--- a/docs/reference/api/renderstarted.mdx
+++ b/docs/reference/api/renderstarted.mdx
@@ -1,98 +1,72 @@
---
title: renderStarted
-description: This event is fired when the rendering of the whole music sheet is starting.
+description: "This event is fired when the rendering of the whole music sheet is starting."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-## Description
-This event is fired when the rendering of the whole music sheet is starting. All
-preparations are completed and the layout and render sequence is about to start.
+
-
-
-## Types
+### Description
+This event is fired when the rendering of the whole music sheet is starting. All preparations are completed and the layout and render sequence is about to start.
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
-### Parameters
-
- The tracks that should be rendered.
-
-
- The tracks that should be rendered.
-
-
- The tracks that should be rendered.
+
+ The tracks to render. They must all belong to the same score.
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
-api.changeTrackMute([api.score.tracks[0], api.score.tracks[1]], true);
+api.renderTracks([api.score.tracks[0], api.score.tracks[1]]);
```
-
-
-
-```js
-const at = $('#alphaTab');
-const score = at.alphaTab('score');
-at.alphaTab('renderTracks', [
- api.score.tracks[2],
- api.score.tracks[3]
-]);
-```
-
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.RenderTracks(new []{
- api.Score.Tracks[2],
+ api.Score.Tracks[2],
api.Score.Tracks[3]
});
```
-
```kotlin
val api = AlphaTabApi(...)
api.renderTracks(alphaTab.collections.List(
- api.score.tracks[2],
+ api.score.tracks[2],
api.score.tracks[3]
}
-
```
-
\ No newline at end of file
+
diff --git a/docs/reference/api/resetsoundfonts.mdx b/docs/reference/api/resetsoundfonts.mdx
index bae68f366..cb6b79fc9 100644
--- a/docs/reference/api/resetsoundfonts.mdx
+++ b/docs/reference/api/resetsoundfonts.mdx
@@ -1,54 +1,52 @@
---
title: resetSoundFonts
-description: Unloads all presets from previously loaded SoundFonts.
+description: "Unloads all presets from previously loaded SoundFonts."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This function resets the player internally to not have any SoundFont loaded anymore. This allows you to reduce the memory usage of the page
-if multiple partial SoundFonts are loaded via `loadSoundFont(..., true)`. Depending on the workflow you might also just want to use `loadSoundFont(..., false)` once
-instead of unloading the previous SoundFonts.
-
-## Signatures
+### Description
+Unloads all presets from previously loaded SoundFonts. This function resets the player internally to not have any SoundFont loaded anymore. This allows you to reduce the memory usage of the page
+if multiple partial SoundFonts are loaded via `loadSoundFont(..., true)`. Depending on the workflow you might also just want to use `loadSoundFont(..., false)` once
+instead of unloading the previous SoundFonts.
-
-
- Unloads all presets from the previous loaded SoundFonts.
-
-
- Unloads all presets from the previous loaded SoundFonts.
-
-
- Unloads all presets from the previous loaded SoundFonts.
-
-
+
+
+
+
+
-### Parameters
-None
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.loadSoundFont('/assets/guitars.sf2', true);
@@ -57,22 +55,9 @@ api.loadSoundFont('/assets/pianos.sf2', true);
api.resetSoundFonts();
api.loadSoundFont('/assets/synths.sf2', true);
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('loadSoundFont', '/assets/guitars.sf2', true);
-$('#alphaTab').alphaTab('loadSoundFont', '/assets/pianos.sf2', true);
-...
-$('#alphaTab').alphaTab('resetSoundFonts');
-$('#alphaTab').alphaTab('loadSoundFont', '/assets/synths.sf2', true);
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.LoadSoundFont(System.IO.File.OpenRead("guitars.sf2"), true);
api.LoadSoundFont(System.IO.File.OpenRead("pianos.sf2"), true);
@@ -80,18 +65,15 @@ api.LoadSoundFont(System.IO.File.OpenRead("pianos.sf2"), true);
api.ResetSoundFonts();
api.LoadSoundFont(System.IO.File.OpenRead("synths.sf2"), true);
```
-
-
-
+
```kotlin
val api = AlphaTabApi(...)
api.loadSoundFont(readResource("guitars.sf2"), true)
api.loadSoundFont(readResource("pianos.sf2"), true)
...
-api.ResetSoundFonts()
-api.LoadSoundFont(readResource("synths.sf2"), true)
+api.resetSoundFonts()
+api.loadSoundFont(readResource("synths.sf2"), true)
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/resize.mdx b/docs/reference/api/resize.mdx
index da0101a8f..000c859a5 100644
--- a/docs/reference/api/resize.mdx
+++ b/docs/reference/api/resize.mdx
@@ -1,150 +1,80 @@
---
title: resize
-description: This event is fired when alphaTab was resized and is about to rerender the music notation.
+description: "This event is fired when alphaTab was resized and is about to rerender the music notation."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when alphaTab was resized and is about to rerender the music notation. Before the re-rendering on resize
+### Description
+This event is fired when alphaTab was resized and is about to rerender the music notation. This event is fired when alphaTab was resized and is about to rerender the music notation. Before the re-rendering on resize
the settings will be updated in the related components. This means that any changes to the layout options or other display settings are
considered. This allows to implement scenarios where maybe the scale or the layout mode dynamically changes along the resizing.
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The information about the resize event.
-
-
- The information about the resize event.
-
-
- The information about the resize event.
-
-
-
-## ResizeEventArgs Properties
+
+
+
+
+
-
-
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
updateScoreInfo(api.score);
```
-
-
-
-
-```js
-updateScoreInfo($('#alphaTab').alphaTab('score'));
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
UpdateScoreInfo(api.Score);
```
-
-
```kotlin
val api = AlphaTabApi(...)
updateScoreInfo(api.score)
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/scoreloaded.mdx b/docs/reference/api/scoreloaded.mdx
index 7d84cf18e..488456439 100644
--- a/docs/reference/api/scoreloaded.mdx
+++ b/docs/reference/api/scoreloaded.mdx
@@ -1,108 +1,74 @@
---
title: scoreLoaded
-description: This event is fired whenever a new song is loaded
+description: "This event is fired whenever a new song is loaded."
sidebar_custom_props:
+ kind: event
category: Events - Core
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-
-## Description
-This event is fired whenever a new song is loaded. It is fired after the transposition midi pitches from the settings were applied, but before any midi is generated or rendering is started.
-This allows any modification of the score before further processing.
-
-
+### Description
+This event is fired whenever a new song is loaded. This event is fired whenever a new song is loaded or changing due to {"renderScore"} or {"renderTracks"} calls.
+It is fired after the transposition midi pitches from the settings were applied, but before any midi is generated or rendering is started.
+This allows any modification of the score before further processing.
-## Types
-
-
-
-
-
-
-
-## Parameters
+
+
+
+
+
+
diff --git a/docs/reference/api/setoutputdevice.mdx b/docs/reference/api/setoutputdevice.mdx
new file mode 100644
index 000000000..78c1fac6d
--- /dev/null
+++ b/docs/reference/api/setoutputdevice.mdx
@@ -0,0 +1,90 @@
+---
+title: setOutputDevice
+description: "Changes the output device which should be used for playing the audio (player must be enabled)."
+sidebar_custom_props:
+ kind: method
+ category: Methods - Player
+ since: 1.5.0
+---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+
+
+### Description
+Changes the output device which should be used for playing the audio (player must be enabled). Use {"enumerateOutputDevices"} to load the list of available devices.
+
+In the web version this functionality relies on experimental APIs and might not yet be available in all browsers. https://caniuse.com/mdn-api_audiocontext_sinkid
+
+
+
+
+
+
+
+
+
+
+ The output device to use, or null to switch to the default device.
+
+
+
+
+## Examples
+
+
+
+```js
+const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
+const devices = await api.enumerateOutputDevices();
+
+buildDeviceSelector(devices, async selectedDevice => {
+ await api.setOutputDevice(selectedDevice);
+});
+```
+
+
+```cs
+var api = new AlphaTabApi(...);
+var devices = await api.EnumerateOutputDevices();
+
+BuildDeviceSelector(devices, async selectedDevice => {
+ await api.SetOutputDevice(selectedDevice);
+});
+```
+
+
+```kotlin
+fun init() = kotlinx.coroutines.runBlocking {
+ val api = AlphaTabApi(...)
+ val devices = api.enumerateOutputDevices().await()
+
+ buildDeviceSelector(devices, fun (selectedDevice) {
+ suspend {
+ await api.setOutputDevice(selectedDevice)
+ }
+ });
+}
+```
+
+
diff --git a/docs/reference/api/settings.mdx b/docs/reference/api/settings.mdx
index 84322551e..b2096c9bf 100644
--- a/docs/reference/api/settings.mdx
+++ b/docs/reference/api/settings.mdx
@@ -1,74 +1,68 @@
---
title: settings
-description: The settings that are used for rendering the music notation
+description: "The settings that are used for rendering the music notation."
sidebar_custom_props:
+ kind: property
category: Properties - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets access to the underling AlphaTab.Settings object that is currently used by AlphaTab.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The settings that are used for rendering the music notation. Gets access to the underling {"Settings"} object that is currently used by alphaTab.
-## Types
+
+
+
+
+
-
-
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
showSettingsModal(api.settings);
```
-
-
-
-
-```js
-showSettingsModal($('#alphaTab').alphaTab('settings'));
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
ShowSettingsDialog(api.Settings);
```
-
-
```kotlin
val api = AlphaTabApi(...)
showSettingsDialog(api.settings)
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/soundfontload.mdx b/docs/reference/api/soundfontload.mdx
index 227d54cde..8714d5ab9 100644
--- a/docs/reference/api/soundfontload.mdx
+++ b/docs/reference/api/soundfontload.mdx
@@ -1,51 +1,31 @@
---
title: soundFontLoad
-description: This event is fired when the SoundFont is being loaded.
+description: "This event is fired when the SoundFont is being loaded."
sidebar_custom_props:
+ kind: event
+ javaScriptOnly: true
category: Events - Player
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the SoundFont is being loaded and reports the progress accordingly.
-
-
-
-## Types
+### Description
+This event is fired when the SoundFont is being loaded. This event is fired when the SoundFont is being loaded and reports the progress accordingly.
-
-
-
+
-## Parameters
-
-
- The information about the load progress of the file.
-
-
-
-## Examples
-
-
-
+## Example - JavaScript
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
@@ -53,24 +33,3 @@ api.soundFontLoad.on((e) => {
updateProgress(e.loaded, e.total);
});
```
-
-
-
-
-```js
-$('#alphaTab').on('alphaTab.soundFontLoad', (e, args) {
- updateProgress(args.loaded, args.total);
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.soundFontLoad', () => {
- updateProgress(e.detail.loaded, e.detail.total);
-}, false);
-```
-
-
-
\ No newline at end of file
diff --git a/docs/reference/api/soundfontloaded.mdx b/docs/reference/api/soundfontloaded.mdx
index 974a4ddfe..7e325c71c 100644
--- a/docs/reference/api/soundfontloaded.mdx
+++ b/docs/reference/api/soundfontloaded.mdx
@@ -1,84 +1,72 @@
---
title: soundFontLoaded
-description: This event is fired when the SoundFont needed for playback was loaded.
+description: "This event is fired when the SoundFont needed for playback was loaded."
sidebar_custom_props:
+ kind: event
category: Events - Player
since: 0.9.4
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-
-## Description
-This event is fired when the SoundFont needed for playback was loaded.
-
-
-
-## Types
+### Description
+This event is fired when the SoundFont needed for playback was loaded.
-
-
-
-
+
+
+
+
+
-## Parameters
-none
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.soundFontLoaded.on(() => {
hideSoundFontLoadingIndicator();
});
```
-
-
-
-```js
-$('#alphaTab').on('alphaTab.soundFontLoaded', (e) => {
- hideSoundFontLoadingIndicator();
-});
-```
-
-
-
-
-```js
-document.querySelector('#alphaTab').addEventListener('alphaTab.soundFontLoaded', () => {
- hideSoundFontLoadingIndicator();
-}, false);
-```
-
-
-
-
+
```cs
var api = new AlphaTabApi(...);
-api.SoundFontLoaded.On(() =>
+api.SoundFontLoaded.On(() =>
{
HideSoundFontLoadingIndicator();
});
```
-
-
\ No newline at end of file
+
+```kotlin
+val api = AlphaTabApi(...);
+api.soundFontLoaded.on {
+ hideSoundFontLoadingIndicator();
+}
+```
+
+
diff --git a/docs/reference/api/stop.mdx b/docs/reference/api/stop.mdx
index b7de23c40..955737dc0 100644
--- a/docs/reference/api/stop.mdx
+++ b/docs/reference/api/stop.mdx
@@ -1,77 +1,65 @@
---
title: stop
-description: Stops the playback of the current song, and moves the playback position back to the start.
+description: "Stops the playback of the current song, and moves the playback position back to the start."
sidebar_custom_props:
+ kind: method
category: Methods - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Stops the playback of the current song, and moves the playback position back to the start. If a dedicated playback range is selected,
-it will move the playback position to the start of this range, not the whole song.
-
-## Signatures
+### Description
+Stops the playback of the current song, and moves the playback position back to the start. If a dedicated playback range is selected, it will move the playback position to the start of this range, not the whole song.
-
-
-
-
-
-
-
-### Parameters
-None
+
+
+
{"stop"}{"("}{")"}{":"}{" "}{"void"}
+
+
+
{"void"}{" "}{"Stop"}{"("}{")"}
+
+
+
{"fun"}{" "}{"stop"}{"("}{")"}{":"}{" "}{"Unit"}
+
+
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.stop();
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('stop');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Stop();
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.stop()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/tex.mdx b/docs/reference/api/tex.mdx
index 85b8890ab..399b5b845 100644
--- a/docs/reference/api/tex.mdx
+++ b/docs/reference/api/tex.mdx
@@ -1,93 +1,75 @@
---
title: tex
-description: Tells alphaTab to render the given alphaTex.
+description: "Tells alphaTab to render the given alphaTex."
sidebar_custom_props:
+ kind: method
category: Methods - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
+### Description
Tells alphaTab to render the given alphaTex.
-## Signatures
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-### Parameters
-
- The alphaTex encoded string to load.
-
-
- Which tracks to display.
+
+ The alphaTex code to render.
-
- Which track to display.
+
+ If set, the given tracks will be rendered, otherwise the first track only will be rendered.
-### Returns
-Nothing
## Examples
-
-
-```js
-const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
-api.tex("\title 'Test' . 3.3.4");
-```
-
-
-
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
-$('#alphaTab').alphaTab('tex', "\title 'Test' . 3.3.4");
+api.tex("\\title 'Test' . 3.3.4");
```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
-api.Tex("\title 'Test' . 3.3.4");
+api.Tex("\\title 'Test' . 3.3.4");
```
-
-
```kotlin
val api = AlphaTabApi(...)
-api.tex("\title 'Test' . 3.3.4");
+api.tex("\\title 'Test' . 3.3.4");
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/this.mdx b/docs/reference/api/this.mdx
deleted file mode 100644
index a6db2068e..000000000
--- a/docs/reference/api/this.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: this
-description: Returns the underlying API object.
-sidebar_custom_props:
- jQueryOnly: true
- jQueryName: alphaTab('api')
- category: Properties - Core
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This jQuery specific function returns the underlying API object.
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-
-
-
-## Example - jQuery
-
-```js
-const api = $('#alphaTab').alphaTab('api');
-api.render();
-```
\ No newline at end of file
diff --git a/docs/reference/api/tickcache.mdx b/docs/reference/api/tickcache.mdx
index f7ba267fd..2019c06c4 100644
--- a/docs/reference/api/tickcache.mdx
+++ b/docs/reference/api/tickcache.mdx
@@ -1,122 +1,75 @@
---
title: tickCache
-description: The tick cache allowing lookup of midi ticks to beats.
+description: "The tick cache allowing lookup of midi ticks to beats."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 1.2.3
+ since: 1.2.3
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-Gets the tick cache allowing lookup of midi ticks to beats. If the player is enabled, a midi file will be generated
-for the loaded `alphaTab.model.Score` for later playback. During this generation this tick cache is filled with the
-exact midi ticks when beats are played.
-
-The `MidiTickLookup.findBeat` method allows a lookup of the beat related to a given input midi tick.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The tick cache allowing lookup of midi ticks to beats. Gets the tick cache allowing lookup of midi ticks to beats. If the player is enabled, a midi file will be generated
+for the loaded {"Score"} for later playback. During this generation this tick cache is filled with the
+exact midi ticks when beats are played.
-## Types
-
-
-
-
-
-
+The {"findBeat"} method allows a lookup of the beat related to a given input midi tick.
+
+
+
+
+
-## MidiTickLookup.findBeat Signatures
-
-
-
- Find the beat played at a given midi tick.
-
-
- Find the beat played at a given midi tick.
-
-
- Find the beat played at a given midi tick.
-
-
-
-## MidiTickLookup.findBeat Parameters
-
-
-
- The tracks indices in which to search the played beat for.
-
-
- The tracks indices in which to search the played beat for.
-
-
- The tracks indices in which to search the played beat for.
-
-
- The midi tick for which the beat should be looked up.
-
-
- The midi tick for which the beat should be looked up.
-
-
- Used for optimized lookup during playback. By passing in a previous result lookup of the next one can be optimized using heuristics. (optional).
-
-
- Used for optimized lookup during playback. By passing in a previous result lookup of the next one can be optimized using heuristics. (optional).
-
-
- Used for optimized lookup during playback. By passing in a previous result lookup of the next one can be optimized using heuristics. (optional).
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
const lookupResult = api.tickCache.findBeat(new Set([0, 1]), 100);
const currentBeat = lookupResult?.currentBeat;
```
-
-
-
-Not available
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
var lookupResult = api.TickCache.FindBeat(new AlphaTab.Core.EcmaScript.Set(0, 1), 100);
var currentBeat = lookupResult?.CurrentBeat;
```
-
-
-```csharp
+```kotlin
val api = AlphaTabApi(...)
val lookupResult = api.tickCache.findBeat(alphaTab.core.ecmaScript.Set(0, 1), 100);
val currentBeat = lookupResult?.CurrentBeat;
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/tickposition.mdx b/docs/reference/api/tickposition.mdx
index d4fbd75b6..3e6f250ee 100644
--- a/docs/reference/api/tickposition.mdx
+++ b/docs/reference/api/tickposition.mdx
@@ -1,72 +1,68 @@
---
title: tickPosition
-description: The position within the song in midi ticks
+description: "The position within the song in midi ticks."
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets or sets the player position in midi ticks.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The position within the song in midi ticks.
-## Types
+
+
+
+
+
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.tickPosition = 4000;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('tickPosition', 4000)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.TickPosition = 4000;
```
-
-
-```csharp
+```kotlin
val api = AlphaTabApi(...)
api.tickPosition = 4000
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/timeposition.mdx b/docs/reference/api/timeposition.mdx
index b0984837e..c4aa66bea 100644
--- a/docs/reference/api/timeposition.mdx
+++ b/docs/reference/api/timeposition.mdx
@@ -1,72 +1,68 @@
---
title: timePosition
-description: The position within the song in milliseconds
+description: "The position within the song in milliseconds"
sidebar_custom_props:
+ kind: property
category: Properties - Player
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets or sets the player position in milliseconds.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The position within the song in milliseconds
-## Types
+
+
+
+
+
-
-
-
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.timePosition = 4000;
```
-
-
-
-
-```js
-$('#alphaTab').alphaTab('timePosition', 4000)
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.TimePosition = 4000;
```
-
-
```kotlin
val api = AlphaTabApi(...)
api.timePosition = 4000
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/api/tracks.mdx b/docs/reference/api/tracks.mdx
index 9fdce0378..e0ae57391 100644
--- a/docs/reference/api/tracks.mdx
+++ b/docs/reference/api/tracks.mdx
@@ -1,74 +1,68 @@
---
title: tracks
-description: A list of the tracks that should be rendered based on the Score and TrackIndexes properties
+description: "The list of the tracks that are currently rendered."
sidebar_custom_props:
+ kind: property
category: Properties - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Gets a list of the tracks that are currently being rendered.
-
import { PropertyDescription } from '@site/src/components/PropertyDescription';
+### Description
+The list of the tracks that are currently rendered.
-## Types
+
+
+
+
+
+
diff --git a/docs/reference/api/updatesettings.mdx b/docs/reference/api/updatesettings.mdx
index 06c79d60a..94f79a7dd 100644
--- a/docs/reference/api/updatesettings.mdx
+++ b/docs/reference/api/updatesettings.mdx
@@ -1,82 +1,69 @@
---
title: updateSettings
-description: Applies any changes that were done to the settings object and informs the Renderer about any new values to consider.
+description: "Applies any changes that were done to the settings object."
sidebar_custom_props:
+ kind: method
category: Methods - Core
- since: 0.9.4
+ since: 0.9.4
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Applies any changes that were done to the settings object and informs the Renderer about any new values to consider.
+### Description
+Applies any changes that were done to the settings object. It also informs the {"renderer"} about any new values to consider.
By default alphaTab will not trigger any re-rendering or settings update just if the settings object itself was changed. This method must be called
-to trigger an update of the settings in all components. Then a re-rendering can be initiated using the `Render()` method.
-
-## Signatures
+to trigger an update of the settings in all components. Then a re-rendering can be initiated using the {"render"} method.
-
-
-
-
-
-
-
-### Parameters
-None
+
+
+
+
+
-### Returns
-Nothing
## Examples
-
-
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'));
api.settings.display.scale = 2.0;
api.updateSettings();
api.render();
```
-
-
-
-
-```js
-const at = $('#alphaTab');
-at.alphaTab('settings').display.scale = 2.0;
-at.alphaTab('updateSettings');
-at.alphaTab('render');
-```
-
-
-
-```csharp
+
+```cs
var api = new AlphaTabApi(...);
api.Settings.Display.Scale = 2.0;
api.UpdateSettings();
api.Render()
```
-
-
```kotlin
val api = AlphaTabApi(...)
@@ -84,6 +71,5 @@ api.settings.display.scale = 2.0
api.updateSettings()
api.render()
```
-
-
\ No newline at end of file
+
diff --git a/docs/reference/scorerenderer.mdx b/docs/reference/scorerenderer.mdx
deleted file mode 100644
index 617dd0e90..000000000
--- a/docs/reference/scorerenderer.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: ScoreRenderer
----
-
-import { ReferenceTable } from '@site/src/components/ReferenceTable';
-
-The `ScoreRenderer` is one of the low level APIs that can be used if no full alphaTab API object with UI interaction
-can be used or is needed. It is used to render a given score into a visual music sheet.
-
-This page describes all methods, properties and events exposed by this class.
-
-import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/boundslookup.mdx b/docs/reference/scorerenderer/boundslookup.mdx
deleted file mode 100644
index dec79aa12..000000000
--- a/docs/reference/scorerenderer/boundslookup.mdx
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: boundsLookup
-description: The lookup which allows fast access to beats at a given position
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import { TypeTable, TypeRow } from '@site/src/components/TypeTable';
-import { BoundsLookupViewer } from '@site/src/components/BoundsLookupViewer';
-
-## Description
-After the rendering completed alphaTab exposes via this lookup the location of the individual
-notation elements. The lookup provides fast access to the bars and beats at a given location.
-If the [`IncludeNoteBounds`](/docs/reference/settings/core/includenotebounds) option was activated
-also the location of the individual notes can be obtained.
-
-
-
-The property contains a `BoundsLookup` instance which follows a hierarchical structure that represents
-the tree of rendered elements.
-
-The hierarchy is: `staffSystems > bars(1) > bars(2) > beats > notes`
-
-* `staffSystems` - Represent the bounds of the individual systems ("rows") where staves are contained.
-* `bars(1)` - Represent the bounds of all bars for a particular master bar across all tracks.
-* `bars(2)` - Represent the bounds of an individual bar of a track. The bounds on y-axis span the region of the staff and notes might exceed this bounds.
-* `beats` - Represent the bounds of the individual beats within a track. The bounds on y-axis are equal to the bar bounds.
-* `notes` - Represent the bounds of the individual note heads/numbers within a track.
-
-Each bounds hierarchy have a `visualBounds` and `realBounds`.
-
-* `visualBounds` - Represent the area covering all visually visible elements
-* `realBounds` - Represents the actual bounds of the elements in this beat including whitespace areas.
-* `noteHeadBounds` (only on `notes` level) - Represents the area of the note heads or number based on the staff
-
-You can check out the individual sizes and regions
-
-{`
-\\track "Guitar 1"
-12.2{v f} 14.2{v f}.4 :8 15.2 17.2 |
-14.1.2 :8 17.2 15.1 14.1{h} 17.2 |
-15.2{v d}.4 :16 17.2{h} 15.2 :8 14.2 14.1 17.1{b(0 4 4 0)}.4 |
-15.1.8 :16 14.1{tu 3} 15.1{tu 3} 14.1{tu 3} :8 17.2 15.1 14.1 :16 12.1{tu 3} 14.1{tu 3} 12.1{tu 3} :8 15.2 14.2 |
-12.2 14.3 12.3 15.2 :32 14.2{h} 15.2{h} 14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}
-\\track "Guitar 2"
-3.3
-`}
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/destroy.mdx b/docs/reference/scorerenderer/destroy.mdx
deleted file mode 100644
index 2c2348312..000000000
--- a/docs/reference/scorerenderer/destroy.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: destroy
-description: Destroys the renderer and all related components.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This method destroys the full renderer and by this closes all potentially opened
-contexts and shuts down any worker.
-
-If you dynamically create/destroy renderers it is recommended to always call this method
-to ensure all resources are leaked.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-None
-
-### Returns
-Nothing
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/error.mdx b/docs/reference/scorerenderer/error.mdx
deleted file mode 100644
index 9cf7e9408..000000000
--- a/docs/reference/scorerenderer/error.mdx
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: error
-description: This event is fired when an error within alphatab occurred.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This event is fired when an error within alphatab occurred. Use this event as global error handler to show errors
-to end-users. Due to the asynchronous nature of alphaTab, no call to the API will directly throw an error if it fails.
-Instead a signal to this error handlers will be sent.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The object containing the error details.
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/partiallayoutfinished.mdx b/docs/reference/scorerenderer/partiallayoutfinished.mdx
deleted file mode 100644
index 423a7b5a8..000000000
--- a/docs/reference/scorerenderer/partiallayoutfinished.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: partialLayoutFinished
-description: Occurs whenever a part of the whole music sheet is layed out.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 1.2.3
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import {RenderFinishedEventArgs} from '@site/src/types/RenderFinishedEventArgs';
-
-## Description
-AlphaTab does not render the whole music sheet into a single canvas but rather
-splits it down into smaller chunks. This allows faster display of results to the user
-and avoids issues related to browser restrictions (like maximum canvas sizes).
-
-This even is fired whenever one chunk of the music sheet was fully layed out.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- The object containing the information about the chunk.
-
-
- The object containing the information about the chunk.
-
-
-
-## AlphaTab.Rendering.RenderFinishedEventArgs Properties
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/partialrenderfinished.mdx b/docs/reference/scorerenderer/partialrenderfinished.mdx
deleted file mode 100644
index 26ffc327a..000000000
--- a/docs/reference/scorerenderer/partialrenderfinished.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: partialRenderFinished
-description: Occurs whenever a part of the whole music sheet is rendered and can be displayed.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import {RenderFinishedEventArgs} from '@site/src/types/RenderFinishedEventArgs';
-
-## Description
-AlphaTab does not render the whole music sheet into a single canvas but rather
-splits it down into smaller chunks. This allows faster display of results to the user
-and avoids issues related to browser restrictions (like maximum canvas sizes).
-
-This event is fired whenever one chunk of the music sheet is fully rendered.
-
-Since 1.2.3 the rendering of a chunk needs to be requested via the [`renderResult`](/docs/reference/scorerenderer/renderresult) method after
-a chunk was advertised through the [`partialLayoutFinished`](/docs/reference/scorerenderer/partiallayoutfinished) event.
-
-
-
-## Parameters
-
-
-
- The object containing the information about the chunk.
-
-
- The object containing the information about the chunk.
-
-
- The object containing the information about the chunk.
-
-
-
-## AlphaTab.Rendering.RenderFinishedEventArgs Properties
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/postrenderfinished.mdx b/docs/reference/scorerenderer/postrenderfinished.mdx
deleted file mode 100644
index 095da6d87..000000000
--- a/docs/reference/scorerenderer/postrenderfinished.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: postRenderFinished
-description: This event is fired when the rendering of the whole music sheet is finished, and all handlers of RenderFinished ran.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This event is fired when the rendering of the whole music sheet is finished, and all handlers of RenderFinished ran. When this
-handlers are called, the whole rendering and display pipeline is completed.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-None
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/prerender.mdx b/docs/reference/scorerenderer/prerender.mdx
deleted file mode 100644
index d5146de1c..000000000
--- a/docs/reference/scorerenderer/prerender.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: preRender
-description: Occurs before the rendering of the tracks starts
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This event is fired when the rendering of the whole music sheet is starting. All
-preparations are completed and the layout and render sequence is about to start.
-
-
-
-## Types
-
-
-
-
-
-
-
-## Parameters
-
-
-
- Whether the rendering is triggered from a resize.
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/render.mdx b/docs/reference/scorerenderer/render.mdx
deleted file mode 100644
index 7a084deb3..000000000
--- a/docs/reference/scorerenderer/render.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: render
-description: Initiates a re-rendering of the current setup.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-Initiates a re-rendering of the current setup.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-None
-
-### Returns
-Nothing
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/renderfinished.mdx b/docs/reference/scorerenderer/renderfinished.mdx
deleted file mode 100644
index 6b4bfd210..000000000
--- a/docs/reference/scorerenderer/renderfinished.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: renderFinished
-description: This event is fired when the rendering of the whole music sheet is finished.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Events
- since: 0.9.4
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { EventDescription } from '@site/src/components/EventDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-import {RenderFinishedEventArgs} from '@site/src/types/RenderFinishedEventArgs';
-
-## Description
-This event is fired when the rendering of the whole music sheet is finished from the render engine side. There might be still tasks open for
-the display component to visually display the rendered components when this event is notified.
-
-
-
-## Types
-
-
-
-
-
-
-
-## AlphaTab.Rendering.RenderFinishedEventArgs Properties
-
-
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/renderresult.mdx b/docs/reference/scorerenderer/renderresult.mdx
deleted file mode 100644
index 97fcc7683..000000000
--- a/docs/reference/scorerenderer/renderresult.mdx
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: renderResult
-description: Requests the rendering of a chunk which was layed out before.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 1.2.3
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This method initiates the rendering of a layed out chunk advertised through [`partialLayoutFinished`](/docs/reference/scorerenderer/partiallayoutfinished).
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-
-
-
- The ID of the result to be rendered.
-
-
-
-
-### Returns
-Nothing. The render result is computed asynchronously and can be obtained via events like `partialRenderFinished`.
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/renderscore.mdx b/docs/reference/scorerenderer/renderscore.mdx
deleted file mode 100644
index ca143bb74..000000000
--- a/docs/reference/scorerenderer/renderscore.mdx
+++ /dev/null
@@ -1,41 +0,0 @@
----
-title: renderScore
-description: Initiates the rendering of the specified tracks of the given score.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This method initiates the rendering of the specified tracks of the given score.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-
-
-
- The score of which the tracks should be taken for rendering.
-
-
- The indexes to the tracks which should be layed out and rendered.
-
-
-
-
-### Returns
-Nothing. The render result is computed asynchronously and can be obtained via events like `partialRenderFinished`.
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/resizerender.mdx b/docs/reference/scorerenderer/resizerender.mdx
deleted file mode 100644
index 1fb341487..000000000
--- a/docs/reference/scorerenderer/resizerender.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: resizeRender
-description: Initiates a resize-optimized re-rendering of the score using the current settings.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-This method can be used if only re-fitting of the score into a new width should be done.
-alphaTab internally keeps all the information about the music notation elements like
-where they are placed and how they are connected. This is a rather expensive operation
-but it is only required to be done once.
-
-In case the UI is resized, this method can be used to trigger a rearrangement of the existing elements
-into the newly available space.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-None
-
-### Returns
-Nothing
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/updatesettings.mdx b/docs/reference/scorerenderer/updatesettings.mdx
deleted file mode 100644
index a1dfd5113..000000000
--- a/docs/reference/scorerenderer/updatesettings.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: updateSettings
-description: Updates the settings to the given object.
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Methods
- since: 0.9.6
----
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-import {ParameterTable, ParameterRow} from '@site/src/components/ParameterTable';
-
-## Description
-This method updates the settings to the given object. On some platforms like JavaScript
-the settings object will need to be passed on to the corresponding worker to be really updated.
-It is recommended to make this call after updating any properties of the settings object to ensure
-it is really passed on to all components.
-
-This method will not trigger automatically any re-rendering.
-
-## Signatures
-
-
-
-
-
-
-
-### Parameters
-
-
-
- The new settings object to use within alphaTab.
-
-
-
-### Returns
-Nothing.
\ No newline at end of file
diff --git a/docs/reference/scorerenderer/width.mdx b/docs/reference/scorerenderer/width.mdx
deleted file mode 100644
index 89386649b..000000000
--- a/docs/reference/scorerenderer/width.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: width
-description: The width of the rendered score
-sidebar_custom_props:
- jQuery: false
- dom: false
- category: Properties
- since: 0.9.6
----
-
-import { SinceBadge } from "@site/src/components/SinceBadge";
-
-
-
-import { PropertyDescription } from "@site/src/components/PropertyDescription";
-
-## Description
-
-For layouts that grow from top to bottom (like `page`), it is required to specify a width for the renderer.
-The renderer will fit then the bars into this area for rendering. The alphaTab API object uses a link to the
-graphical user interface via a `IUiFacade` to get the available width for rendering. When using the low-level APIs
-this width must be specified manually.
-
-For layouts that grow from left to right the width and height are usually calculated automatically based on
-the contents.
-
-
diff --git a/docs/reference/settings.mdx b/docs/reference/settings.mdx
index 9199a221f..7123647b2 100644
--- a/docs/reference/settings.mdx
+++ b/docs/reference/settings.mdx
@@ -30,6 +30,8 @@ when multiple different instances of alphaTab are running on the same site but t
Individual settings can be specified on HTML elements.
The following table contains all the properties as they can be set on the general settings object.
+For take of simplicity the table lists the properties with the JavaScript naming convention,
+but if properties are listed with `all` they are available on all platforms (e.g. in C# with PascalCase).
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
diff --git a/docs/reference/settings/core/enablelazyloading.mdx b/docs/reference/settings/core/enablelazyloading.mdx
index 81cf0a1ca..2a19a9f5b 100644
--- a/docs/reference/settings/core/enablelazyloading.mdx
+++ b/docs/reference/settings/core/enablelazyloading.mdx
@@ -1,33 +1,41 @@
---
title: core.enableLazyLoading
-description: Enables lazy loading of the rendered music sheet chunks.
+description: "Enables lazy loading of the rendered music sheet chunks."
sidebar_custom_props:
- javaScriptOnly: true
jsOnParent: true
- category: Core - JavaScript Specific
+ category: Core
since: 0.9.6
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+
-## Description
-AlphaTab renders the music sheet in smaller sub-chunks to have fast UI feedback. Not all of those sub-chunks are immediately
+### Description
+Enables lazy loading of the rendered music sheet chunks. AlphaTab renders the music sheet in smaller sub-chunks to have fast UI feedback. Not all of those sub-chunks are immediately
appended to the DOM due to performance reasons. AlphaTab tries to detect which elements are visible on the screen, and only
-appends those elements to the DOM. This reduces the load of the browser heavily but is not working for all layouts and use cases.
-This setting set to false, ensures that all rendered items are instantly appended to the DOM.
-
-
-
-## Types
-
-
-
-
-
-## Default Value
+appends those elements to the DOM. This reduces the load of the browser heavily but is not working for all layouts and use cases.
+This setting set to false, ensures that all rendered items are instantly appended to the DOM.
+The lazy rendering of partial might not be available on all platforms.
+
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/core/engine.mdx b/docs/reference/settings/core/engine.mdx
index 488ba548a..f2e479305 100644
--- a/docs/reference/settings/core/engine.mdx
+++ b/docs/reference/settings/core/engine.mdx
@@ -1,48 +1,43 @@
---
title: core.engine
-description: The engine which should be used to render the the tablature.
+description: "The engine which should be used to render the the tablature."
sidebar_custom_props:
jsOnParent: true
category: Core
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-AlphaTab can use various render engines to draw the music notation. The available render engines is specific to the platform. Please refer to the table below to find out which engines are available on which platform.
-
-
-## Types
-
-
-
- `svg` - Outputs SVG strings.
- `html5` - Uses HTML5 canvas elements to render the music notation.
-
-
- `skia` - Available on all .net platforms. Uses [Skia](https://skia.org/) for rendering
- `gdi` - Only available desktop .net. Uses [GDI+](https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/graphics-and-drawing-in-windows-forms) for rendering
- `svg` - Available on all .net platforms. Outputs SVG strings.
-
-
- `skia` - Uses [Skia](https://skia.org/) for rendering
- `android` - Uses [android.graphics.Canvas](https://developer.android.com/reference/android/graphics/Canvas) for rendering
- `svg` - Outputs SVG strings.
-
-
-
-## Default Value
-
-`default` which is mapped per platform:
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+The engine which should be used to render the the tablature. AlphaTab can use various render engines to draw the music notation. The available render engines is specific to the platform. Please refer to the table below to find out which engines are available on which platform.
+- `default`- Platform specific default engine
+- `html5`- Uses HTML5 canvas elements to render the music notation (browser only)
+- `svg`- Outputs SVG strings (all platforms, default for web)
+- `skia` - Uses [Skia](https://skia.org/) for rendering (all non-browser platforms via [alphaSkia](https://github.com/CoderLine/alphaSkia), default for non-web)
+- `gdi` - Uses [GDI+](https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/graphics-and-drawing-in-windows-forms) for rendering (only on .net)
+- `android` - Uses [android.graphics.Canvas](https://developer.android.com/reference/android/graphics/Canvas) for rendering (only on Android)
+
+
+
+
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/reference/settings/core/file.mdx b/docs/reference/settings/core/file.mdx
index a303e17c5..b51b17ed8 100644
--- a/docs/reference/settings/core/file.mdx
+++ b/docs/reference/settings/core/file.mdx
@@ -1,33 +1,30 @@
---
title: core.file
-description: The full URL to the input file to be loaded.
+description: "The full URL to the input file to be loaded."
sidebar_custom_props:
javaScriptOnly: true
jsOnParent: true
category: Core - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab can automatically load and render a file after initialization. This eliminates the need of manually calling
+### Description
+The full URL to the input file to be loaded. AlphaTab can automatically load and render a file after initialization. This eliminates the need of manually calling
one of the load methods which are available. alphaTab will automatically initiate an `XMLHttpRequest` after initialization
to load and display the provided url of this setting. Note that this setting is only interpreted once on initialization.
-
-
-## Types
-
-
-
-
-
-## Default Value
+
-`null`
\ No newline at end of file
diff --git a/docs/reference/settings/core/fontdirectory.mdx b/docs/reference/settings/core/fontdirectory.mdx
index 6b17d3ff6..3d1e71b7d 100644
--- a/docs/reference/settings/core/fontdirectory.mdx
+++ b/docs/reference/settings/core/fontdirectory.mdx
@@ -1,34 +1,31 @@
---
title: core.fontDirectory
-description: The full URL to the alphaTab font directory.
+description: "The full URL to the alphaTab font directory."
sidebar_custom_props:
javaScriptOnly: true
jsOnParent: true
category: Core - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-AlphaTab will generate some dynamic CSS that is needed for displaying the music symbols correctly. For this it needs to know
-where the Web Font files of [Bravura](https://github.com/steinbergmedia/bravura) are. Normally alphaTab expects
-them to be in a `Font` subfolder beside the script file. If this is not the case, this setting must be used to configure the path.
-Alternatively also a global variable `ALPHATAB_FONT` can be set on the page before initializing alphaTab.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+The full URL to the alphaTab font directory. AlphaTab will generate some dynamic CSS that is needed for displaying the music symbols correctly. For this it needs to know
+where the Web Font files of [Bravura](https://github.com/steinbergmedia/bravura) are. Normally alphaTab expects
+them to be in a `font` subfolder beside the script file. If this is not the case, this setting must be used to configure the path.
+Alternatively also a global variable `ALPHATAB_FONT` can be set on the page before initializing alphaTab.
-## Default Value
+
-`${AlphaTabScriptFolder}/font/`
\ No newline at end of file
diff --git a/docs/reference/settings/core/includenotebounds.mdx b/docs/reference/settings/core/includenotebounds.mdx
index cf551aa6a..e7e0e8656 100644
--- a/docs/reference/settings/core/includenotebounds.mdx
+++ b/docs/reference/settings/core/includenotebounds.mdx
@@ -1,48 +1,53 @@
---
title: core.includeNoteBounds
-description: Gets or sets whether in the BoundsLookup also the position and area of each individual note is provided.
+description: "Whether in the {\"BoundsLookup\"} also the position and area of each individual note is provided."
sidebar_custom_props:
jsOnParent: true
category: Core
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-AlphaTab collects the position of the rendered music notation elements during the rendering process. This way some level of interactivity can be provided like the feature that seeks to the corresponding position when clicking on a beat.
-By default the position of the individual notes is not collected due to performance reasons. If access to note position information is needed, this setting can enable it.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Whether in the {"BoundsLookup"} also the position and area of each individual note is provided. AlphaTab collects the position of the rendered music notation elements during the rendering process. This way some level of interactivity can be provided like the feature that seeks to the corresponding position when clicking on a beat.
+By default the position of the individual notes is not collected due to performance reasons. If access to note position information is needed, this setting can enable it.
-## Default Value
+
+
+
+
+
-`Info`
\ No newline at end of file
diff --git a/docs/reference/settings/core/scriptfile.mdx b/docs/reference/settings/core/scriptfile.mdx
index ad74e7132..0f7735eda 100644
--- a/docs/reference/settings/core/scriptfile.mdx
+++ b/docs/reference/settings/core/scriptfile.mdx
@@ -1,33 +1,32 @@
---
title: core.scriptFile
-description: The full URL to the alphaTab JavaScript file.
+description: "The full URL to the alphaTab JavaScript file."
sidebar_custom_props:
javaScriptOnly: true
jsOnParent: true
category: Core - JavaScript Specific
since: 0.9.6
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+
-## Description
-AlphaTab needs to know the full URL to the script file it is contained in to launch the web workers. AlphaTab will do its best to auto-detect
+### Description
+The full URL to the alphaTab JavaScript file. AlphaTab needs to know the full URL to the script file it is contained in to launch the web workers. AlphaTab will do its best to auto-detect
this path but in case it fails, this setting can be used to explicitly define it. Altenatively also a global variable `ALPHATAB_ROOT` can
-be defined before initializing. Please be aware that bundling alphaTab together with other scripts might cause errors
+be defined before initializing. Please be aware that bundling alphaTab together with other scripts might cause errors
in case those scripts are not suitable for web workers. e.g. if there is a script bundled together with alphaTab that accesses the DOM,
-this will cause an error when alphaTab starts this script as worker.
-
-
-
-## Types
+this will cause an error when alphaTab starts this script as worker.
-
-
-
+
-## Default Value
-Absolute url to JavaScript file containing alphaTab. (auto detected)
\ No newline at end of file
diff --git a/docs/reference/settings/core/tex.mdx b/docs/reference/settings/core/tex.mdx
index cfebe94a1..3725ce901 100644
--- a/docs/reference/settings/core/tex.mdx
+++ b/docs/reference/settings/core/tex.mdx
@@ -1,39 +1,38 @@
---
title: core.tex
-description: Whether the contents of the DOM element should be loaded as alphaTex.
+description: "Whether the contents of the DOM element should be loaded as alphaTex."
sidebar_custom_props:
javaScriptOnly: true
jsOnParent: true
category: Core - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting allows you to fill alphaTex code into the DOM element and make alphaTab automatically
+### Description
+Whether the contents of the DOM element should be loaded as alphaTex. This setting allows you to fill alphaTex code into the DOM element and make alphaTab automatically
load it when initializing. Note that this setting is only interpreted once on initialization.
+
```
-
-
-
-## Types
-
-
-
-
-
-## Default Value
-
-`false`
\ No newline at end of file
diff --git a/docs/reference/settings/core/tracks.mdx b/docs/reference/settings/core/tracks.mdx
index a499bd968..9ad34d027 100644
--- a/docs/reference/settings/core/tracks.mdx
+++ b/docs/reference/settings/core/tracks.mdx
@@ -1,41 +1,29 @@
---
title: core.tracks
-description: The tracks to display for the initally loaded file.
+description: "The tracks to display for the initally loaded file."
sidebar_custom_props:
javaScriptOnly: true
jsOnParent: true
category: Core - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting can be used in combinition with the `file` or `tex` option. It controls which of the tracks
+### Description
+The tracks to display for the initally loaded file. This setting can be used in combinition with the {"file"} or {"tex"} option. It controls which of the tracks
of the initially loaded file should be displayed.
-
-
-## Types
-
-
-
- If the `all` string is provided, all tracks of the song will be displayed.
-
-
- If a single number is provided, the value represents the 0-based index of the track to display.
-
-
- If a number array is provided, the values represent the 0-based indexes of the tracks to display.
-
-
-
-
-## Default Value
+
-`null`
\ No newline at end of file
diff --git a/docs/reference/settings/core/useworkers.mdx b/docs/reference/settings/core/useworkers.mdx
index dfe9a4af8..5e646ba76 100644
--- a/docs/reference/settings/core/useworkers.mdx
+++ b/docs/reference/settings/core/useworkers.mdx
@@ -1,27 +1,38 @@
---
title: core.useWorkers
-description: Whether the rendering should be done in a worker if possible.
+description: "Whether the rendering should be done in a worker if possible."
sidebar_custom_props:
jsOnParent: true
category: Core
since: 0.9.6
---
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-## Description
-AlphaTab normally tries to render the music sheet asynchronously in a worker. This reduces the load on the UI side and avoids hanging. However sometimes it might be more desirable to have
-a synchronous rendering behavior. This setting can be set to false to synchronously render the music sheet on the UI side.
-
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Whether the rendering should be done in a worker if possible. AlphaTab normally tries to render the music sheet asynchronously in a worker. This reduces the load on the UI side and avoids hanging. However sometimes it might be more desirable to have
+a synchronous rendering behavior. This setting can be set to false to synchronously render the music sheet on the UI side.
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/display/_resources.mdx b/docs/reference/settings/display/_resources.mdx
new file mode 100644
index 000000000..7a93d922f
--- /dev/null
+++ b/docs/reference/settings/display/_resources.mdx
@@ -0,0 +1,7 @@
+
+## [RenderingResources](/docs/reference/types/renderingresources/)
+Following resources exist for adjusting the style.
+
+import ResourceDocs from '@site/docs/reference/types/renderingresources/index.mdx'
+
+
\ No newline at end of file
diff --git a/docs/reference/settings/display/accoladebarpaddingright.mdx b/docs/reference/settings/display/accoladebarpaddingright.mdx
index 11d95800a..d62999176 100644
--- a/docs/reference/settings/display/accoladebarpaddingright.mdx
+++ b/docs/reference/settings/display/accoladebarpaddingright.mdx
@@ -1,31 +1,37 @@
---
title: display.accoladeBarPaddingRight
-description: The padding between the accolade bar and the start of the bar itself.
+description: "The padding between the accolade bar and the start of the bar itself."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
+### Description
The padding between the accolade bar and the start of the bar itself.
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`3`
\ No newline at end of file
diff --git a/docs/reference/settings/display/barcount.mdx b/docs/reference/settings/display/barcount.mdx
index 967a4787f..e85cbc72d 100644
--- a/docs/reference/settings/display/barcount.mdx
+++ b/docs/reference/settings/display/barcount.mdx
@@ -1,32 +1,39 @@
---
title: display.barCount
-description: The total number of bars that should be rendered from the song.
+description: "The total number of bars that should be rendered from the song. (-1 for all bars)"
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting sets the number of bars that should be rendered from the overall song. This setting can be used to
+### Description
+The total number of bars that should be rendered from the song. (-1 for all bars) This setting sets the number of bars that should be rendered from the overall song. This setting can be used to
achieve a paging system or to only show partial bars of the same file. By this a tutorial alike display can be achieved
that explains various parts of the song. [Demo](/docs/showcase/layouts)
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`-1` - All bars from start
\ No newline at end of file
diff --git a/docs/reference/settings/display/barcountperpartial.mdx b/docs/reference/settings/display/barcountperpartial.mdx
index 4a556e752..da3d8052b 100644
--- a/docs/reference/settings/display/barcountperpartial.mdx
+++ b/docs/reference/settings/display/barcountperpartial.mdx
@@ -1,32 +1,39 @@
---
title: display.barCountPerPartial
-description: The number of bars that should be placed within one partial render.
+description: "The number of bars that should be placed within one partial render."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab renders the whole music sheet in smaller chunks named "partials". This is to reduce the risk of
+### Description
+The number of bars that should be placed within one partial render. AlphaTab renders the whole music sheet in smaller chunks named "partials". This is to reduce the risk of
encountering browser performance restrictions and it gives faster visual feedback to the user. This
-setting controls how many bars are placed within such a partial.
-
-
-
-## Types
-
-
-
-
-
-## Default Value
+setting controls how many bars are placed within such a partial.
+
+
+
+
+
+
-`10`
\ No newline at end of file
diff --git a/docs/reference/settings/display/barsperrow.mdx b/docs/reference/settings/display/barsperrow.mdx
index fef857952..dec3dbe6e 100644
--- a/docs/reference/settings/display/barsperrow.mdx
+++ b/docs/reference/settings/display/barsperrow.mdx
@@ -1,31 +1,38 @@
---
title: display.barsPerRow
-description: Limit the displayed bars per row.
+description: "Limit the displayed bars per system (row). (-1 for automatic mode)"
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-This setting sets the number of bars that should be put into one row during layouting. This setting is only respected
-when using the layoutMode `page` where bars are aligned in rows. [Demo](/docs/showcase/layouts#page-layout-5-bars-per-row)
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Limit the displayed bars per system (row). (-1 for automatic mode) This setting sets the number of bars that should be put into one row during layouting. This setting is only respected
+when using the {"Page"} where bars are aligned in systems. [Demo](/docs/showcase/layouts#page-layout-5-bars-per-row).
-## Default Value
+
+
+
+
+
-`0`
\ No newline at end of file
diff --git a/docs/reference/settings/display/firststaffpaddingleft.mdx b/docs/reference/settings/display/firststaffpaddingleft.mdx
index bc67a9b9f..5f96b36e6 100644
--- a/docs/reference/settings/display/firststaffpaddingleft.mdx
+++ b/docs/reference/settings/display/firststaffpaddingleft.mdx
@@ -1,31 +1,37 @@
---
title: display.firstStaffPaddingLeft
-description: The left padding applied between the left line and the first glyph in the first staff in a system.
+description: "The left padding applied between the left line and the first glyph in the first staff in a system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
+### Description
The left padding applied between the left line and the first glyph in the first staff in a system.
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`6`
\ No newline at end of file
diff --git a/docs/reference/settings/display/firstsystempaddingtop.mdx b/docs/reference/settings/display/firstsystempaddingtop.mdx
index 3316f4f1b..617656cd3 100644
--- a/docs/reference/settings/display/firstsystempaddingtop.mdx
+++ b/docs/reference/settings/display/firstsystempaddingtop.mdx
@@ -1,31 +1,37 @@
---
title: display.firstSystemPaddingTop
-description: The top padding applied to first system
+description: "The top padding applied to first system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-The top padding applied to the first system.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
-
+### Description
+The top padding applied to first system.
-## Default Value
+
+
+
+
+
-`5`
\ No newline at end of file
diff --git a/docs/reference/settings/display/justifylastsystem.mdx b/docs/reference/settings/display/justifylastsystem.mdx
index 0415c846e..ff5653a9c 100644
--- a/docs/reference/settings/display/justifylastsystem.mdx
+++ b/docs/reference/settings/display/justifylastsystem.mdx
@@ -1,36 +1,41 @@
---
title: display.justifyLastSystem
-description: Whether to justify also the last system in page layouts.
+description: "Whether to justify also the last system in page layouts."
sidebar_custom_props:
jsOnParent: true
category: Display
- since: 1.3.0-alpha.720
+ since: 1.3.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-## Description
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-Setting this option to `true` tells alphaTab to also justify the last system (row) like it
-already does for the systems which are full.
+
+### Description
+Whether to justify also the last system in page layouts. Setting this option to `true` tells alphaTab to also justify the last system (row) like it
+already does for the systems which are full.
| Justification Disabled | Justification Enabled |
|--------------------------------------------------------------|-------------------------------------------------------|
|  |  |
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`false`
\ No newline at end of file
diff --git a/docs/reference/settings/display/lastsystempaddingbottom.mdx b/docs/reference/settings/display/lastsystempaddingbottom.mdx
index c7fe584ea..93f148dd2 100644
--- a/docs/reference/settings/display/lastsystempaddingbottom.mdx
+++ b/docs/reference/settings/display/lastsystempaddingbottom.mdx
@@ -1,31 +1,37 @@
---
title: display.lastSystemPaddingBottom
-description: The bottom padding applied to the last system.
+description: "The bottom padding applied to the last system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
+### Description
The bottom padding applied to the last system.
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`0`
\ No newline at end of file
diff --git a/docs/reference/settings/display/layoutmode.mdx b/docs/reference/settings/display/layoutmode.mdx
index a215e7a44..d9a8d75e2 100644
--- a/docs/reference/settings/display/layoutmode.mdx
+++ b/docs/reference/settings/display/layoutmode.mdx
@@ -1,49 +1,37 @@
---
title: display.layoutMode
-description: The layouting mode used to arrange the the notation.
+description: "The layouting mode used to arrange the the notation."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-AlphaTab has various layout engines that arrange the rendered bars differently. This setting controls which layout mode is used.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
- `Page` - The bars are aligned in a [page-style fashion](/docs/showcase/layouts#page-layout)
- `Horizontal` - The bars are aligned in a [left-to-right](/docs/showcase/layouts#horizontal-layout)
-
-
- `page`
- `horizontal`
-
-
- `0` - Page
- `1` - Horizontal
-
-
- `Page`
- `Horizontal`
-
-
- `Page`
- `Horizontal`
-
-
+### Description
+The layouting mode used to arrange the the notation. AlphaTab has various layout engines that arrange the rendered bars differently. This setting controls which layout mode is used.
-## Default Value
+
+
+
+
+
-`5`
\ No newline at end of file
diff --git a/docs/reference/settings/display/padding.mdx b/docs/reference/settings/display/padding.mdx
index baef508c2..d95ae9774 100644
--- a/docs/reference/settings/display/padding.mdx
+++ b/docs/reference/settings/display/padding.mdx
@@ -1,36 +1,40 @@
---
title: display.padding
-description: Adjusts the padding between the music notation and the border
+description: "Adjusts the padding between the music notation and the border."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-AlphaTab by default has a padding between the border of the control and the start of the content.
-This setting controls this padding between border and content.
-
-
-## Types
-
-
-
- `[left, top, right, bottom]`
-
-
- `[left-right, top-bottom]`
-
-
-
-## Default Value
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+Adjusts the padding between the music notation and the border. Adjusts the padding between the music notation and the outer border of the container element.
+The array is either:
+* 2 elements: `[left-right, top-bottom]`
+* 4 elements: ``[left, top, right, bottom]``
+
+
+
+
+
+
-`[35, 35]`
\ No newline at end of file
diff --git a/docs/reference/settings/display/resources.mdx b/docs/reference/settings/display/resources.mdx
index 1c2a80d6f..2ba998fa5 100644
--- a/docs/reference/settings/display/resources.mdx
+++ b/docs/reference/settings/display/resources.mdx
@@ -1,226 +1,71 @@
---
title: display.resources
-description: Allows adjusting of the used fonts and colors for rendering.
+description: "Allows adjusting of the used fonts and colors for rendering."
sidebar_custom_props:
domWildcard: true
jsOnParent: true
category: Display
since: 0.9.6
---
+
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-import useBaseUrl from '@docusaurus/useBaseUrl';
-import { CodeBadge } from '@site/src/components/CodeBadge';
+
+
+### Description
+Allows adjusting of the used fonts and colors for rendering. AlphaTab allows configuring the colors and fonts used for rendering via the rendering resources settings. Please note that as of today
+this is the primary way of changing the way how alphaTab styles elements. CSS styling in the browser cannot be guaranteed to work due to its flexibility.
-export var Resources = {
- colors: [
- {
- name: 'barNumberColor',
- defaultValue: 'rgb(200, 0, 0)',
- description: 'The color to use for displaying the bar numbers above the music sheet.',
- },
- {
- name: 'barSeparatorColor',
- defaultValue: 'rgb(34, 34, 17)',
- description: 'The color to use for rendering bar separators, the accolade and repeat signs.',
- },
- {
- name: 'mainGlyphColor',
- defaultValue: 'rgb(0, 0, 0)',
- description: 'The color to use for music notation elements of the primary voice.',
- },
- {
- name: 'scoreInfoColor',
- defaultValue: 'rgb(0, 0, 0)',
- description: 'The color to use for displaying the song information above the music sheets.',
- },
- {
- name: 'secondaryGlyphColor',
- defaultValue: 'rgb(0,0,0,0.4)',
- description: 'The color to use for music notation elements of the secondary voices.',
- },
- {
- name: 'staffLineColor',
- defaultValue: 'rgb(165, 165, 165)',
- description: 'The color to use for rendering the lines of staves.',
- },
- ],
- fonts: [
- {
- name: 'barNumberFont',
- defaultValue: '11px Arial, sans-serif',
- description: 'The font to use for displaying the bar numbers above the music sheet.',
- },
- {
- name: 'copyrightFont',
- defaultValue: 'bold 12px Arial, sans-serif',
- description: 'The font to use for displaying the songs copyright information in the header of the music sheet.,',
- },
- {
- name: 'effectFont',
- defaultValue: 'italic 12px Georgia, serif',
- description: 'The font to use for displaying certain effect related elements in the music sheet.',
- },
- {
- name: 'fingeringFont',
- defaultValue: '14px Georgia, serif',
- description: 'The font to use for displaying finger information in the music sheet.',
- },
- {
- name: 'fretboardNumberFont',
- defaultValue: '11px Arial, sans-serif',
- description: 'The font to use for displaying the fretboard numbers in chord diagrams.',
- },
- {
- name: 'graceFont',
- defaultValue: '11px Arial, sans-serif',
- description: 'The font to use for grace notation related texts in the music sheet.',
- },
- {
- name: 'markerFont',
- defaultValue: 'bold 14px Georgia, serif',
- description: 'The font to use for section marker labels shown above the music sheet.',
- },
- {
- name: 'subTitleFont',
- defaultValue: '20px Georgia, serif',
- description: 'The font to use for displaying the songs subtitle in the header of the music sheet.',
- },
- {
- name: 'tablatureFont',
- defaultValue: '13px Arial, sans-serif',
- description: 'The font to use for displaying the guitar tablature numbers in the music sheet.',
- },
- {
- name: 'titleFont',
- defaultValue: '32px Georgia, serif',
- description: 'The font to use for displaying the songs title in the header of the music sheet.',
- },
- {
- name: 'wordsFont',
- defaultValue: '15px Arial, sans-serif',
- description: 'The font to use for displaying the lyrics information in the header of the music sheet.',
- },
- {
- name: 'timerFont',
- defaultValue: '12px Georgia, serif',
- description: 'The font to use for displaying beat time information in the music sheet.',
- since: "1.4.0"
- },
- {
- name: 'directionsFont',
- defaultValue: '14px Georgia, serif',
- description: 'The font to use for displaying the directions texts.',
- since: "1.4.0"
- },
- {
- name: 'numberedNotationFont',
- defaultValue: '16px Arial, sans-serif',
- description: 'The font to use for displaying the numbered music notation in the music sheet.',
- since: "1.4.0"
- },
- {
- name: 'numberedNotationGraceFont',
- defaultValue: '14px Arial, sans-serif',
- description: 'The font to use for displaying the grace notes in numbered music notation in the music sheet.',
- since: "1.4.0"
- },
- {
- name: 'inlineFingeringFont',
- defaultValue: '12px Georgia, serif',
- description: 'The font to use for displaying finger information when inline into the music sheet.',
- since: "1.4.0"
- }
- ]
-};
-
-export function toPascalCase(v) {
- return v.substr(0, 1).toUpperCase() + v.substr(1);
-}
-
-export function ResourceRow({resource, type}) {
- return (
-
- );
-}
-
-## Description
-
-AlphaTab allows configuring the colors and fonts used for rendering via the rendering resources settings. Please note that as of today
-this is the primary way of changing the way how alphaTab styles elements. CSS styling in the browser cannot be guaranteed to work due to its flexibility.
-
-
-Due to space reasons in the following table the common prefix of the settings are removed. Please refer to these examples to eliminate confusion on the usage:
+
+Due to space reasons in the following table the common prefix of the settings are removed. Please refer to these examples to eliminate confusion on the usage:
| Platform | Prefix | Example Usage |
|------------|---------------------------|--------------------------------------------------------------------|
| JavaScript | `display.resources.` | `settings.display.resources.wordsFont = ...` |
| JSON | `display.resources.` | `var settings = { display: { resources: { wordsFonts: '...'} } };` |
| JSON | `resources.` | `var settings = { resources: { wordsFonts: '...'} };` |
-| HTML | `data-display-resources-` | `
` |
-| HTML | `data-resources-` | `
` |
| .net | `Display.Resources.` | `settings.Display.Resources.WordsFonts = ...` |
| Android | `display.resources.` | `settings.display.resources.wordsFonts = ...` |
-
-
-## Resources
-Following resources exist for adjusting the style.
-
-
-
## Types
### Fonts
-For the JavaScript platform any font that might be installed on the client machines can be used.
-Any additional fonts can be added via WebFonts. The rendering of the score will be delayed until it is detected that the font was loaded.
+For the JavaScript platform any font that might be installed on the client machines can be used.
+Any additional fonts can be added via WebFonts. The rendering of the score will be delayed until it is detected that the font was loaded.
Simply use any CSS font property compliant string as configuration. Relative font sizes with percentual values are not supported, remaining values will be considered if supported.
-Since 1.2.3 Multiple fonts are also supported for the Web version. alphaTab will check if any of the fonts in the list is loaded instead of all. If none is available at the time alphaTab is initialized, it will try to initiate the load of the specified fonts individual through the Browser Font APIs.
+ Multiple fonts are also supported for the Web version. alphaTab will check if any of the fonts in the list is loaded instead of all. If none is available at the time alphaTab is initialized, it will try to initiate the load of the specified fonts individual through the Browser Font APIs.
-For the .net platform any installed font on the system can be used. Simply construct the `Font` object to configure your desired fonts.
+For the .net platform any installed font on the system can be used. Simply construct the `Font` object to configure your desired fonts.
### Colors
For JavaScript you can use any CSS font property compliant string. (#RGB, #RGBA, #RRGGBB, #RRGGBBAA, rgb(r,g,b), rgba(r,g,b,a) )
-On .net simply construct the `Color` object to configure your desired color.
\ No newline at end of file
+On .net simply construct the `Color` object to configure your desired color.
+
+
+
+
+
+
+
+
+import ManualDocs from './_resources.mdx';
+
+
diff --git a/docs/reference/settings/display/scale.mdx b/docs/reference/settings/display/scale.mdx
index 2b8b7f4d5..ce599ad4a 100644
--- a/docs/reference/settings/display/scale.mdx
+++ b/docs/reference/settings/display/scale.mdx
@@ -1,36 +1,38 @@
---
title: display.scale
-description: The zoom level of the rendered notation.
+description: "The zoom level of the rendered notation."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab can scale up or down the rendered music notation for more optimized display scenarios. By default music notation is rendered at 100% scale (value 1) and can be scaled up or down by
+### Description
+The zoom level of the rendered notation. AlphaTab can scale up or down the rendered music notation for more optimized display scenarios. By default music notation is rendered at 100% scale (value 1) and can be scaled up or down by
percental values.
-
-
-## Types
-
-
-
-
- `1.0` - 100%
- `1.2` - 120%
- `0.8` - 80%
-
-
-
-## Default Value
+
+
+
+
+
-`1.0`
\ No newline at end of file
diff --git a/docs/reference/settings/display/staffpaddingleft.mdx b/docs/reference/settings/display/staffpaddingleft.mdx
index ccbc46a08..d7ce7d1ac 100644
--- a/docs/reference/settings/display/staffpaddingleft.mdx
+++ b/docs/reference/settings/display/staffpaddingleft.mdx
@@ -1,31 +1,37 @@
---
title: display.staffPaddingLeft
-description: The left padding applied between the left line and the first glyph in the following staff in a system.
+description: "The left padding applied between the left line and the first glyph in the following staff in a system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
+### Description
The left padding applied between the left line and the first glyph in the following staff in a system.
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`2`
\ No newline at end of file
diff --git a/docs/reference/settings/display/startbar.mdx b/docs/reference/settings/display/startbar.mdx
index 73e90d3a2..e08579190 100644
--- a/docs/reference/settings/display/startbar.mdx
+++ b/docs/reference/settings/display/startbar.mdx
@@ -1,34 +1,40 @@
---
title: display.startBar
-description: The bar start index to start layouting with.
+description: "The bar start index to start layouting with."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting sets the index of the first bar that should be rendered from the overall song. This setting can be used to
+### Description
+The bar start index to start layouting with. This setting sets the index of the first bar that should be rendered from the overall song. This setting can be used to
achieve a paging system or to only show partial bars of the same file. By this a tutorial alike display can be achieved
that explains various parts of the song. Please note that this is the bar number as shown in the music sheet (1-based) not the array index (0-based).
[Demo](/docs/showcase/layouts#page-layout-bar-5-to-8)
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`1`
\ No newline at end of file
diff --git a/docs/reference/settings/display/staveprofile.mdx b/docs/reference/settings/display/staveprofile.mdx
index 9848b4652..8172bde62 100644
--- a/docs/reference/settings/display/staveprofile.mdx
+++ b/docs/reference/settings/display/staveprofile.mdx
@@ -1,64 +1,38 @@
---
title: display.staveProfile
-description: The stave profile defining which staves are shown for the music sheet.
+description: "The stave profile defining which staves are shown for the music sheet."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-AlphaTab has various stave profiles that define which staves will be shown in for the rendered tracks.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
- `Default` - The profile is auto detected by the track configurations.
- `ScoreTab` - Standard music notation and guitar tablature are rendered.
- `Score` - Only standard music notation is rendered.
- `Tab` - Only guitar tablature is rendered.
- `TabMixed` - Only guitar tablature is rendered, but also rests and time signatures are not shown. This profile is typically used in multi-track scenarios.
-
-
- `default`
- `scoretab`
- `score`
- `tab`
- `tabmixed`
-
-
- `0` - Default
- `1` - ScoreTab
- `2` - Score
- `3` - Tab
- `4` - TabMixed
-
-
- `Default`
- `ScoreTab`
- `Score`
- `Tab`
- `TabMixed`
-
-
- `Default`
- `ScoreTab`
- `Score`
- `Tab`
- `TabMixed`
-
-
+### Description
+The stave profile defining which staves are shown for the music sheet. AlphaTab has various stave profiles that define which staves will be shown in for the rendered tracks. Its recommended
+to keep this on {"Default"} and rather rely on the options available ob {"Staff"} level
-## Default Value
+
+
+
+
+
-`Default`
diff --git a/docs/reference/settings/display/stretchforce.mdx b/docs/reference/settings/display/stretchforce.mdx
index ad2e7502f..6e88bf864 100644
--- a/docs/reference/settings/display/stretchforce.mdx
+++ b/docs/reference/settings/display/stretchforce.mdx
@@ -1,39 +1,42 @@
---
title: display.stretchForce
-description: The default stretch force to use for layouting.
+description: "The default stretch force to use for layouting."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-The stretch force is a setting that controls the spacing of the music notation. AlphaTab uses a varaint of the Gourlay algorithm for spacing which has springs and rods for
-aligning elements. This setting controls the "strength" of the springs. The stronger the springs, the wider the spacing.
+### Description
+The default stretch force to use for layouting. The stretch force is a setting that controls the spacing of the music notation. AlphaTab uses a varaint of the Gourlay algorithm for spacing which has springs and rods for
+aligning elements. This setting controls the "strength" of the springs. The stronger the springs, the wider the spacing.
| Force 1 | Force 0.5 |
|--------------------------------------------------------------|-------------------------------------------------------|
|  |  |
-
-
-## Types
-
-
-
- `1.0`
- `1.5`
- `0.5`
-
-
-
-## Default Value
+
+
+
+
+
-`1.0`
\ No newline at end of file
diff --git a/docs/reference/settings/display/systemlabelpaddingleft.mdx b/docs/reference/settings/display/systemlabelpaddingleft.mdx
index 8dd2d691d..2ef07cb4c 100644
--- a/docs/reference/settings/display/systemlabelpaddingleft.mdx
+++ b/docs/reference/settings/display/systemlabelpaddingleft.mdx
@@ -1,31 +1,37 @@
---
title: display.systemLabelPaddingLeft
-description: The padding left to the track name label of the system.
+description: "The padding left to the track name label of the system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-The padding left to the track name label of the system
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
-
+### Description
+The padding left to the track name label of the system.
-## Default Value
+
+
+
+
+
-`0`
\ No newline at end of file
diff --git a/docs/reference/settings/display/systemlabelpaddingright.mdx b/docs/reference/settings/display/systemlabelpaddingright.mdx
index 5ebf3ae8a..980e0d07f 100644
--- a/docs/reference/settings/display/systemlabelpaddingright.mdx
+++ b/docs/reference/settings/display/systemlabelpaddingright.mdx
@@ -1,31 +1,37 @@
---
title: display.systemLabelPaddingRight
-description: The padding left to the track name label of the system.
+description: "The padding left to the track name label of the system."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-The padding right to the track name label of the system
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
-
+### Description
+The padding left to the track name label of the system.
-## Default Value
+
+
+
+
+
-`5`
\ No newline at end of file
diff --git a/docs/reference/settings/display/systempaddingbottom.mdx b/docs/reference/settings/display/systempaddingbottom.mdx
index bf4d5ace6..e7f09eea5 100644
--- a/docs/reference/settings/display/systempaddingbottom.mdx
+++ b/docs/reference/settings/display/systempaddingbottom.mdx
@@ -1,31 +1,37 @@
---
title: display.systemPaddingBottom
-description: The bottom padding applied to systems.
+description: "The bottom padding applied to systems beside the last one."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-The bottom padding applied systems beside the last one.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
-
+### Description
+The bottom padding applied to systems beside the last one.
-## Default Value
+
+
+
+
+
-`20`
\ No newline at end of file
diff --git a/docs/reference/settings/display/systempaddingtop.mdx b/docs/reference/settings/display/systempaddingtop.mdx
index 69511730e..4e66e9783 100644
--- a/docs/reference/settings/display/systempaddingtop.mdx
+++ b/docs/reference/settings/display/systempaddingtop.mdx
@@ -1,31 +1,37 @@
---
title: display.systemPaddingTop
-description: The top padding applied to systems.
+description: "The top padding applied systems beside the first one."
sidebar_custom_props:
jsOnParent: true
category: Display
since: 1.4.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
+### Description
The top padding applied systems beside the first one.
-
-
-## Types
-
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`10`
\ No newline at end of file
diff --git a/docs/reference/settings/display/systemslayoutmode.mdx b/docs/reference/settings/display/systemslayoutmode.mdx
index 83bfbae26..eb48e74a8 100644
--- a/docs/reference/settings/display/systemslayoutmode.mdx
+++ b/docs/reference/settings/display/systemslayoutmode.mdx
@@ -1,72 +1,45 @@
---
title: display.systemsLayoutMode
-description: The mode used to arrange staves and systems.
+description: "The mode used to arrange staves and systems."
sidebar_custom_props:
jsOnParent: true
category: Display
- since: 1.3.0-alpha.671
+ since: 1.3.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-By default alphaTab uses an own (automatic) mode to arrange and scale the bars when
+### Description
+The mode used to arrange staves and systems. By default alphaTab uses an own (automatic) mode to arrange and scale the bars when
putting them into staves. This property allows changing this mode to change the music sheet arrangement.
-
-
-## Types
-
-
-
- `Automatic`
- `UseModelLayout`
-
-
- `automatic`
- `usemodellayout`
-
-
- `0` - Automatic
- `1` - UseModelLayout
-
-
- `Automatic`
- `UseModelLayout`
-
-
- `Automatic`
- `UseModelLayout`
-
-
-
-## Default Value
-
-`automatic`
-
## Supported File Formats:
-
-* Guitar Pro 6-8 1.3.0-alpha.671
-
-If you want/need support for more file formats to respect the sizing information feel free to [open a discussion](https://github.com/CoderLine/alphaTab/discussions/new?category=ideas) on GitHub.
+* Guitar Pro 6-8
+If you want/need support for more file formats to respect the sizing information feel free to [open a discussion](https://github.com/CoderLine/alphaTab/discussions/new?category=ideas) on GitHub.
## Automatic Mode
In the automatic mode alphaTab arranges the bars and staves using its internal mechanisms.
-For the `page` layout this means it will scale the bars according to the `stretchForce` and available width.
+For the `page` layout this means it will scale the bars according to the `stretchForce` and available width.
Wrapping into new systems (rows) will happen when the row is considered "full".
-For the `horizontal` layout the `stretchForce` defines the sizing and no wrapping happens at all.
+For the `horizontal` layout the `stretchForce` defines the sizing and no wrapping happens at all.
## Model Layout mode
-File formats like Guitar Pro embed information about the layout in the file and alphaTab can read and use this information.
+File formats like Guitar Pro embed information about the layout in the file and alphaTab can read and use this information.
When this mode is enabled, alphaTab will also actively use this information and try to respect it.
alphaTab holds following information in the data model and developers can change those values (e.g. by tapping into the `scoreLoaded`) event.
@@ -75,33 +48,45 @@ alphaTab holds following information in the data model and developers can change
* `score.tracks[index].systemsLayout` - An array of numbers describing how many bars should be placed within each system (row).
* `score.tracks[index].defaultSystemsLayout` - The number of bars to place in a system (row) when no value is defined in the `systemsLayout`.
-* `score.tracks[index].staves[index].bars[index].displayScale` - The relative size of this bar in the system it is placed. Note that this is not directly a percentage value. e.g. if there are 3 bars and all define scale 1, they are sized evenly.
-* `score.tracks[index].staves[index].bars[index].displayWidth` - The absolute size of this bar when displayed.
+* `score.tracks[index].staves[index].bars[index].displayScale` - The relative size of this bar in the system it is placed. Note that this is not directly a percentage value. e.g. if there are 3 bars and all define scale 1, they are sized evenly.
+* `score.tracks[index].staves[index].bars[index].displayWidth` - The absolute size of this bar when displayed.
**Used when multiple tracks are rendered:**
-* `score.systemsLayout` - Like the `systemsLayout` on track level.
-* `score.defaultSystemsLayout` - Like the `defaultSystemsLayout` on track level.
+* `score.systemsLayout` - Like the `systemsLayout` on track level.
+* `score.defaultSystemsLayout` - Like the `defaultSystemsLayout` on track level.
* `score.masterBars[index].displayScale` - Like the `displayScale` on bar level.
* `score.masterBars[index].displayWidth` - Like the `displayWidth` on bar level.
### Page Layout
-The page layout uses the `systemsLayout` and `defaultSystemsLayout` to decide how many bars go into a single system (row).
+The page layout uses the `systemsLayout` and `defaultSystemsLayout` to decide how many bars go into a single system (row).
Additionally when sizing the bars within the system the `displayScale` is used. As indicated above, the scale is rather a ratio than a percentage value but percentages work also:
-
+
The page layout does not use `displayWidth`. The use of absolute widths would break the proper alignments needed for this kind of display.
-Also note that the sizing is including any glyphs and notation elements within the bar. e.g. if there are clefs in the bar, they are still "squeezed" into the available size.
+Also note that the sizing is including any glyphs and notation elements within the bar. e.g. if there are clefs in the bar, they are still "squeezed" into the available size.
It is not the case that the actual notes with their lengths are sized accordingly. This fits the sizing system of Guitar Pro and when files are customized there,
-alphaTab will match this layout quite close.
+alphaTab will match this layout quite close.
### Horizontal Layout
-The horizontal layout uses the `displayWidth` to scale the bars to size the bars exactly as specified. This kind of sizing and layout can be useful for usecases like:
+The horizontal layout uses the `displayWidth` to scale the bars to size the bars exactly as specified. This kind of sizing and layout can be useful for usecases like:
* Comparing files against each other (top/bottom comparison)
* Aligning the playback of multiple files on one screen assuming the same tempo (e.g. one file per track).
+
+
+
+
+
+
diff --git a/docs/reference/settings/importer/beattextaslyrics.mdx b/docs/reference/settings/importer/beattextaslyrics.mdx
index 9833a6025..663329cc5 100644
--- a/docs/reference/settings/importer/beattextaslyrics.mdx
+++ b/docs/reference/settings/importer/beattextaslyrics.mdx
@@ -1,52 +1,57 @@
---
title: importer.beatTextAsLyrics
-description: Enables detecting lyrics from beat texts
+description: "Enables detecting lyrics from beat texts"
sidebar_custom_props:
category: Importer
since: 1.2.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-On various old Guitar Pro 3-5 files tab authors often used the "beat text" feature to add lyrics to the individual tracks.
-This was easier and quicker than using the lyrics feature.
+### Description
+Enables detecting lyrics from beat texts On various old Guitar Pro 3-5 files tab authors often used the "beat text" feature to add lyrics to the individual tracks.
+This was easier and quicker than using the lyrics feature.
-These texts were optimized to align correctly when viewed in Guitar Pro with the default layout but can lead to
-disturbed display in alphaTab. When `beatTextAsLyrics` is set to true, alphaTab will try to rather parse beat text
-values as lyrics using typical text patterns like dashes, underscores and spaces.
+These texts were optimized to align correctly when viewed in Guitar Pro with the default layout but can lead to
+disturbed display in alphaTab. When `beatTextAsLyrics` is set to true, alphaTab will try to rather parse beat text
+values as lyrics using typical text patterns like dashes, underscores and spaces.
The lyrics are only detected if not already proper lyrics are applied to the track.
Enable this option for input files which suffer from this practice.
-:::note
-
-alphaTab tries to relate the texts and chunks to the beats but this is not perfect.
-Errors are likely to happen with such kind of files.
+> [!NOTE]
+> alphaTab tries to relate the texts and chunks to the beats but this is not perfect.
+> Errors are likely to happen with such kind of files.
-:::
-
-
-
-## Types
+**Enabled**
-
-
-
+
-## Default Value
-`false`
+**Disabled**
-## Example
+
-**Enabled**
-
+
+
+
+
+
-**Disabled**
- 
\ No newline at end of file
diff --git a/docs/reference/settings/importer/encoding.mdx b/docs/reference/settings/importer/encoding.mdx
index 4818e7aee..d70e04f01 100644
--- a/docs/reference/settings/importer/encoding.mdx
+++ b/docs/reference/settings/importer/encoding.mdx
@@ -1,20 +1,26 @@
---
title: importer.encoding
-description: The text encoding to use when decoding strings.
+description: "The text encoding to use when decoding strings."
sidebar_custom_props:
category: Importer
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-By default strings are interpreted as UTF-8 from the input files. This is sometimes not the case and leads to strong display
+### Description
+The text encoding to use when decoding strings. By default strings are interpreted as UTF-8 from the input files. This is sometimes not the case and leads to strong display
of strings in the rendered notation. Via this setting the text encoding for decoding the strings can be changed. The supported
encodings depend on the browser or operating system. This setting is considered for the importers
@@ -23,17 +29,15 @@ encodings depend on the browser or operating system. This setting is considered
* Guitar Pro 3-5
* MusicXML
-
-
-## Types
-
-
-
- `utf-8`
- `Windows-1252`
-
-
-
-## Default Value
+
+
+
+
+
-`utf-8`
\ No newline at end of file
diff --git a/docs/reference/settings/importer/mergepartgroupsinmusicxml.mdx b/docs/reference/settings/importer/mergepartgroupsinmusicxml.mdx
index 5e4f054bf..8940b0fe9 100644
--- a/docs/reference/settings/importer/mergepartgroupsinmusicxml.mdx
+++ b/docs/reference/settings/importer/mergepartgroupsinmusicxml.mdx
@@ -1,28 +1,36 @@
---
title: importer.mergePartGroupsInMusicXml
-description: If part-groups should be merged into a single track (MusicXML).
+description: "If part-groups should be merged into a single track (MusicXML)."
sidebar_custom_props:
category: Importer
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-This setting controls whether multiple `part-group` tags will result into a single track with multiple staves.
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-
+
-## Types
+### Description
+If part-groups should be merged into a single track (MusicXML). This setting controls whether multiple `part-group` tags will result into a single track with multiple staves.
-
-
-
+
+
+
+
+
-## Default Value
-`false`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/displaytranspositionpitches.mdx b/docs/reference/settings/notation/displaytranspositionpitches.mdx
index 1a1cec00e..f435c112f 100644
--- a/docs/reference/settings/notation/displaytranspositionpitches.mdx
+++ b/docs/reference/settings/notation/displaytranspositionpitches.mdx
@@ -1,36 +1,43 @@
---
title: notation.displayTranspositionPitches
-description: The transposition pitch offsets for the individual tracks used for rendering only.
+description: "The transposition pitch offsets for the individual tracks used for rendering only."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-For some instruments the pitch shown on the standard notation has an additional transposition. One example is the Guitar.
+### Description
+The transposition pitch offsets for the individual tracks used for rendering only. For some instruments the pitch shown on the standard notation has an additional transposition. One example is the Guitar.
Notes are shown 1 octave higher than they are on the piano. The following image shows a C4 for a piano and a guitar, and a C5 for the piano as comparison:

-The `DisplayTranspositionPitch` setting allows defining an additional pitch offset per track, that is then considered when displaying the music sheet.
+The `DisplayTranspositionPitch` setting allows defining an additional pitch offset per track, that is then considered when displaying the music sheet.
This setting does not affect the playback of the instrument in any way. Despite the 2 different standard notations in the above example, they both play the same note height.
The transposition is defined as number of semitones and one value per track of the song can be defined.
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`(empty)`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/elements.mdx b/docs/reference/settings/notation/elements.mdx
index cb99791b1..eb4c5bcfb 100644
--- a/docs/reference/settings/notation/elements.mdx
+++ b/docs/reference/settings/notation/elements.mdx
@@ -1,276 +1,59 @@
---
title: notation.elements
-description: Render the song information or not.
+description: "Whether music notation elements are visible or not."
sidebar_custom_props:
category: Notation
since: 0.9.8
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-import { PropertyDescription } from "@site/src/components/PropertyDescription";
-import { TypeTable, TypeRow } from "@site/src/components/TypeTable";
+
-## Description
-
-AlphaTab has quite a set of notation elements that are usually shown by default or only shown when using
+### Description
+Whether music notation elements are visible or not. AlphaTab has quite a set of notation elements that are usually shown by default or only shown when using
the `SongBook` notation mode. This setting allows showing/hiding individual notation elements like the
song information or the track names.
For each element you can configure whether it is visible or not. The setting is a Map/Dictionary where
-the key is the element to configure and the value is a boolean value whether it should be visible or not.
-
-
+the key is the element to configure and the value is a boolean value whether it should be visible or not.
-
-
-
-
Element
-
Description
-
Default Visibility
-
-
-
-
-
ScoreTitle
-
The score title shown at the start of the music sheet.
-
visible
-
-
-
ScoreSubTitle
-
The score subtitle shown at the start of the music sheet.
-
visible
-
-
-
ScoreArtist
-
The score artist shown at the start of the music sheet.
-
visible
-
-
-
ScoreAlbum
-
The score album shown at the start of the music sheet.
-
visible
-
-
-
ScoreWords
-
The score words author shown at the start of the music sheet.
-
visible
-
-
-
ScoreMusic
-
The score music author shown at the start of the music sheet.
-
visible
-
-
-
ScoreWordsAndMusic
-
The score words&music author shown at the start of the music sheet.
-
visible
-
-
-
ScoreCopyright
-
The score copyright owner shown at the start of the music sheet.
-
visible
-
-
-
GuitarTuning
-
The tuning information of the guitar shown above the staves.
-
visible
-
-
-
TrackNames
-
The track names which are shown in the accolade.
-
visible
-
-
-
ChordDiagrams
-
The chord diagrams for guitars. Usually shown below the score info.
-
visible
-
-
-
ParenthesisOnTiedBends
-
- Parenthesis that are shown for tied bends if they are preceeded by bends.
-
-
visible
-
-
-
TabNotesOnTiedBends
-
- The tab number for tied notes if the bend of a note is increased at that
- point.
-
-
visible
-
-
-
ZerosOnDiveWhammys
-
Zero tab numbers on "dive whammys".
-
not visible
-
-
-
EffectAlternateEndings
-
The alternate endings information on repeats shown above the staff.
-
visible
-
-
-
EffectCapo
-
- The information about the fret on which the capo is placed shown above the
- staff.
-
-
visible
-
-
-
EffectChordNames
-
The chord names shown above beats shown above the staff.
-
visible
-
-
-
EffectCrescendo
-
The crescendo/decrescendo angle shown above the staff.
-
visible
-
-
-
EffectDynamics
-
The beat dynamics shown above the staff.
-
visible
-
-
-
EffectFadeIn
-
The curved angle for fade in/out effects shown above the staff.
-
visible
-
-
-
EffectFermata
-
The fermata symbol shown above the staff.
-
visible
-
-
-
EffectFingering
-
The fingering information.
-
visible
-
-
-
EffectHarmonics
-
- The harmonics names shown above the staff. (does not represent the harmonic
- note heads)
-
-
visible
-
-
-
EffectLetRing
-
The let ring name and line above the staff.
-
visible
-
-
-
EffectLyrics
-
The lyrics of the track shown above the staff.
-
visible
-
-
-
EffectMarker
-
The section markers shown above the staff.
-
visible
-
-
-
EffectOttavia
-
The ottava symbol and lines shown above the staff.
-
visible
-
-
-
EffectPalmMute
-
The palm mute name and line shown above the staff.
-
visible
-
-
-
EffectPickSlide
-
- The pick slide information shown above the staff. (does not control the pick
- slide lines)
-
-
visible
-
-
-
EffectPickStroke
-
The pick stroke symbols shown above the staff.
-
visible
-
-
-
EffectSlightBeatVibrato
-
The slight beat vibrato waves shown above the staff.
-
visible
-
-
-
EffectSlightNoteVibrato
-
The slight note vibrato waves shown above the staff.
-
visible
-
-
-
EffectTap
-
The tap/slap/pop effect names shown above the staff.
-
visible
-
-
-
EffectTempo
-
The tempo information shown above the staff.
-
visible
-
-
-
EffectText
-
The additional beat text shown above the staff.
-
visible
-
-
-
EffectTrill
-
The trill name and waves shown above the staff.
-
visible
-
-
-
EffectTripletFeel
-
The triplet feel symbol shown above the staff.
-
visible
-
-
-
EffectWhammyBar
-
- The whammy bar information shown above the staff. (does not control the
- whammy lines shown within the staff)
-
-
visible
-
-
-
EffectWideBeatVibrato
-
The wide beat vibrato waves shown above the staff.
-
visible
-
-
-
EffectWideNoteVibrato
-
The wide note vibrato waves shown above the staff.
+
+
## Examples
-
-
-Internally the setting is a [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) where the key must be a `alphaTab.NotationElement` enumeration value.
-For JSON input the usual enumeration serialization applies where also the names can be used. The names
-are case insensitive.
+ defaultValue="javascript"
+ values={[
+ { label: "JavaScript", value: "javascript"},
+ { label: "C#", value: "csharp"},
+ { label: "Android", value: "android"}
+ ]}
+>
+
+Internally the setting is a [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) where the key must be a {"NotationElement"} enumeration value.
+For JSON input the usual enumeration serialization applies where also the names can be used. The names
+are case insensitive.
```js
const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'), {
@@ -283,24 +66,19 @@ const api = new alphaTab.AlphaTabApi(document.querySelector('#alphaTab'), {
});
api.settings.notation.elements.set(alphaTab.NotationElement.EffectWhammyBar, false);
```
-
-
-
-For data attributes currently a full object must be embedded in the attribute value.
-
-```js
-
-```
-
-
-
-
+
```cs
var settings = new AlphaTab.Settings();
settings.Notation.Elements[AlphaTab.NotationElement.ScoreTitle] = false;
settings.Notation.Elements[AlphaTab.NotationElement.TrackNames] = false;
```
-
-
\ No newline at end of file
+
+```kotlin
+val settings = AlphaTab.Settings();
+settings.notation.elements[alphaTab.NotationElement.ScoreTitle] = false;
+settings.notation.elements[alphaTab.NotationElement.TrackNames] = false;
+```
+
+
diff --git a/docs/reference/settings/notation/extendbendarrowsontiednotes.mdx b/docs/reference/settings/notation/extendbendarrowsontiednotes.mdx
index b44f150bf..464a14a73 100644
--- a/docs/reference/settings/notation/extendbendarrowsontiednotes.mdx
+++ b/docs/reference/settings/notation/extendbendarrowsontiednotes.mdx
@@ -1,34 +1,40 @@
---
title: notation.extendBendArrowsOnTiedNotes
-description: If set to true bend arrows expand to the end of the last tied note of the string. Otherwise they end on the next beat.
+description: "If set to true bend arrows expand to the end of the last tied note of the string. Otherwise they end on the next beat."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-By default the arrows and lines on bend effects are extended to the space of tied notes. This behavior is the Guitar Pro default but some applications and songbooks practice it different.
+### Description
+If set to true bend arrows expand to the end of the last tied note of the string. Otherwise they end on the next beat. By default the arrows and lines on bend effects are extended to the space of tied notes. This behavior is the Guitar Pro default but some applications and songbooks practice it different.
There the bend only is drawn to the next beat.
-
-
-
| Enabled | Disabled |
|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------|
|  |  |
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/extendlineeffectstobeatend.mdx b/docs/reference/settings/notation/extendlineeffectstobeatend.mdx
index 76d13eb23..6e7c844c2 100644
--- a/docs/reference/settings/notation/extendlineeffectstobeatend.mdx
+++ b/docs/reference/settings/notation/extendlineeffectstobeatend.mdx
@@ -1,33 +1,40 @@
---
title: notation.extendLineEffectsToBeatEnd
-description: If set to true, line effects like w/bar and let-ring are drawn until the end of the beat instead of the start
+description: "If set to true, line effects like w/bar and let-ring are drawn until the end of the beat instead of the start"
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-By default effect annotations that render a line above the staff, stop on the beat. This is the typical display of Guitar Pro. In songbooks and some other tools
-these effects are drawn to the end of this beat.
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-
+
+### Description
+If set to true, line effects like w/bar and let-ring are drawn until the end of the beat instead of the start By default effect annotations that render a line above the staff, stop on the beat. This is the typical display of Guitar Pro. In songbooks and some other tools
+these effects are drawn to the end of this beat.
| Enabled | Disabled |
|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------|
|  |  |
-## Types
-
-
-
-
+
+
+
+
+
-## Default Value
-`false`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/fingeringmode.mdx b/docs/reference/settings/notation/fingeringmode.mdx
index 63534c6f2..97dbdc974 100644
--- a/docs/reference/settings/notation/fingeringmode.mdx
+++ b/docs/reference/settings/notation/fingeringmode.mdx
@@ -1,53 +1,41 @@
---
title: notation.fingeringMode
-description: The fingering mode to use.
+description: "The fingering mode to use."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab supports multiple modes on how to display fingering information in the music sheet. This setting controls how they should be displayed. The default behavior is to show the finger information
+### Description
+The fingering mode to use. AlphaTab supports multiple modes on how to display fingering information in the music sheet. This setting controls how they should be displayed. The default behavior is to show the finger information
directly in the score along the notes. For some use cases of training courses and for beginners this notation might be hard to read. The effect band mode allows to show a single finger information above the staff.
-
-
| Score | Effect Band |
|-------------------------------------------------------------|-------------------------------------------------------------------|
|  |  |
-## Types
-
-
-
- `Score`
- `SingleNoteEffectBand`
-
-
- `score`
- `effectband`
-
-
- `0` - Score
- `1` - SingleNoteEffectBand
-
-
- `Score`
- `SingleNoteEffectBand`
-
-
- `Score`
- `SingleNoteEffectBand`
-
-
-
-## Default Value
+
+
+
+
+
-`Score`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/notationmode.mdx b/docs/reference/settings/notation/notationmode.mdx
index 1057e5de5..8d53bfe55 100644
--- a/docs/reference/settings/notation/notationmode.mdx
+++ b/docs/reference/settings/notation/notationmode.mdx
@@ -1,37 +1,43 @@
---
title: notation.notationMode
-description: The mode to use for display and play music notation elements.
+description: "The mode to use for display and play music notation elements."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab provides 2 main music notation display modes `GuitarPro` and `SongBook`.
+### Description
+The mode to use for display and play music notation elements. AlphaTab provides 2 main music notation display modes `GuitarPro` and `SongBook`.
As the names indicate they adjust the overall music notation rendering either to be more in line how [Arobas Guitar Pro](https://www.guitar-pro.com) displays it,
or more like the common practice in paper song books practices the display.
-The main differences in the Songbook display mode are:
+The main differences in the Songbook display mode are:
1. **Bends**
For bends additional grace beats are introduced. Bends are categorized into gradual and fast bends.
* Gradual bends are indicated by beat text "grad" or "grad.". Bend will sound along the beat duration.
* Fast bends are done right before the next note. If the next note is tied even on-beat of the next note.
2. **Whammy Bars**
-Dips are shown as simple annotation over the beats. Whammy Bars are categorized into gradual and fast.
+Dips are shown as simple annotation over the beats. Whammy Bars are categorized into gradual and fast.
* Gradual whammys are indicated by beat text "grad" or "grad.". Whammys will sound along the beat duration.
- * Fast whammys are done right the beat.
+ * Fast whammys are done right the beat.
3. **Let Ring**
-Tied notes with let ring are not shown in standard notation. Let ring does not cause a longer playback, duration is defined via tied notes.
-
+Tied notes with let ring are not shown in standard notation. Let ring does not cause a longer playback, duration is defined via tied notes.
+
4. **Settings**
Following default setting values are applied:
```js
@@ -49,33 +55,15 @@ Following default setting values are applied:
}
```
-
-
-## Types
-
-
-
- `SongBook`
- `GuitarPro`
-
-
- `SongBook`
- `GuitarPro`
-
-
- `0` - SongBook
- `1` - GuitarPro
-
-
- `SongBook`
- `GuitarPro`
-
-
- `SongBook`
- `GuitarPro`
-
-
-
-## Default Value
+
+
+
+
+
-`GuitarPro`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/rhythmheight.mdx b/docs/reference/settings/notation/rhythmheight.mdx
index 47b3ccb0f..8bfae5076 100644
--- a/docs/reference/settings/notation/rhythmheight.mdx
+++ b/docs/reference/settings/notation/rhythmheight.mdx
@@ -1,29 +1,36 @@
---
title: notation.rhythmHeight
-description: Controls how high the ryhthm notation is rendered below the tab staff
+description: "Controls how high the ryhthm notation is rendered below the tab staff"
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-This setting can be used in combination with the `RhythmMode` setting to control how high the rhythm notation should be rendered below the tab staff.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Controls how high the ryhthm notation is rendered below the tab staff This setting can be used in combination with the {"rhythmMode"} setting to control how high the rhythm notation should be rendered below the tab staff.
-## Default Value
+
+
+
+
+
-`15`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/rhythmmode.mdx b/docs/reference/settings/notation/rhythmmode.mdx
index e014db4fd..0107c5454 100644
--- a/docs/reference/settings/notation/rhythmmode.mdx
+++ b/docs/reference/settings/notation/rhythmmode.mdx
@@ -1,53 +1,37 @@
---
title: notation.rhythmMode
-description: Controls how the rhythm notation is rendered for tab staves.
+description: "Controls how the rhythm notation is rendered for tab staves."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-This setting enables the display of rhythm notation on tab staffs. [Demo](/docs/showcase/guitar-tabs)
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
- `Hidden` - No rhythm notation is shown
- `ShowWithBeams` - Rhythm notation is rendered with all beats having individual beams
- `ShowWithBars` - Rhythm notation is rendered with normal bars like on standard notation
-
-
- `hidden`
- `showwithbeams`
- `showwithbars`
-
-
- `0` - Hidden
- `1` - ShowWithBeams
- `2` - ShowWithBars
-
-
- `Hidden`
- `ShowWithBeams`
- `ShowWithBars`
-
-
- `Hidden`
- `ShowWithBeams`
- `ShowWithBars`
-
-
+### Description
+Controls how the rhythm notation is rendered for tab staves. This setting enables the display of rhythm notation on tab staffs. [Demo](/docs/showcase/guitar-tabs)
+ its automatically detected whether rhythm notation should be shown on tabs (based on the visibility of other staves).
-## Default Value
+
+
+
+
+
-`hidden`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/slurheight.mdx b/docs/reference/settings/notation/slurheight.mdx
index 52807f9f9..5226637dd 100644
--- a/docs/reference/settings/notation/slurheight.mdx
+++ b/docs/reference/settings/notation/slurheight.mdx
@@ -1,37 +1,40 @@
---
title: notation.slurHeight
-description: The height scale factor for slurs
+description: "The height scale factor for slurs"
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-Slurs and ties currently calculate their height based on the distance they have from start to end note. Most music notation software do some complex collision detection to avoid a slur to overlap with other elements, alphaTab
-only has a simplified version of the slur positioning as of today. This setting allows adjusting the slur height to avoid collisions. The factor defined by this setting, is multiplied with the logarithmic distance between start and end.
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-
+
+### Description
+The height scale factor for slurs Slurs and ties currently calculate their height based on the distance they have from start to end note. Most music notation software do some complex collision detection to avoid a slur to overlap with other elements, alphaTab
+only has a simplified version of the slur positioning as of today. This setting allows adjusting the slur height to avoid collisions. The factor defined by this setting, is multiplied with the logarithmic distance between start and end.
| Slur Height Default | Slur Height 14 |
|------------------------------------------------------------------------|--------------------------------------------------------------|
|  |  |
-## Types
-
-
-
- `7`
- `14`
- `3.5`
-
-
+
+
+
+
+
-## Default Value
-`7`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/smallgracetabnotes.mdx b/docs/reference/settings/notation/smallgracetabnotes.mdx
index e80415c1f..f04bba007 100644
--- a/docs/reference/settings/notation/smallgracetabnotes.mdx
+++ b/docs/reference/settings/notation/smallgracetabnotes.mdx
@@ -1,33 +1,39 @@
---
title: notation.smallGraceTabNotes
-description: If set to true the guitar tabs on grace beats are rendered smaller.
+description: "If set to true the guitar tabs on grace beats are rendered smaller."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-By default, grace notes are drawn smaller on the guitar tabs than the other numbers. With this setting alphaTab can be configured to show grace tab notes with normal text size.
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-
+
+### Description
+If set to true the guitar tabs on grace beats are rendered smaller. By default, grace notes are drawn smaller on the guitar tabs than the other numbers. With this setting alphaTab can be configured to show grace tab notes with normal text size.
| Enabled | Disabled |
|--------------------------------------------------------------------|----------------------------------------------------------------------|
|  |  |
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/notation/transpositionpitches.mdx b/docs/reference/settings/notation/transpositionpitches.mdx
index 4d497f70f..08042b335 100644
--- a/docs/reference/settings/notation/transpositionpitches.mdx
+++ b/docs/reference/settings/notation/transpositionpitches.mdx
@@ -1,30 +1,37 @@
---
title: notation.transpositionPitches
-description: The transposition pitch offsets for the individual tracks used for rendering and playback.
+description: "The transposition pitch offsets for the individual tracks used for rendering and playback."
sidebar_custom_props:
category: Notation
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-This setting allows transposing of tracks for display and playback.
-The `TranspositionPitches` setting allows defining an additional pitch offset per track, that is then considered when displaying the music sheet.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+The transposition pitch offsets for the individual tracks used for rendering and playback. This setting allows transposing of tracks for display and playback.
+The `transpositionPitches` setting allows defining an additional pitch offset per track, that is then considered when displaying the music sheet.
-## Default Value
+
+
+
+
+
-`(empty)`
\ No newline at end of file
diff --git a/docs/reference/settings/player/_slide.mdx b/docs/reference/settings/player/_slide.mdx
new file mode 100644
index 000000000..ce77005f7
--- /dev/null
+++ b/docs/reference/settings/player/_slide.mdx
@@ -0,0 +1,5 @@
+## Slide Settings
+
+import SlideDocs from '@site/docs/reference/types/slideplaybacksettings/index.mdx'
+
+
\ No newline at end of file
diff --git a/docs/reference/settings/player/_vibrato.mdx b/docs/reference/settings/player/_vibrato.mdx
new file mode 100644
index 000000000..e3c8df9f3
--- /dev/null
+++ b/docs/reference/settings/player/_vibrato.mdx
@@ -0,0 +1,5 @@
+## Vibrato Settings
+
+import VibratoDocs from '@site/docs/reference/types/vibratoplaybacksettings/index.mdx'
+
+
\ No newline at end of file
diff --git a/docs/reference/settings/player/buffertimeinmilliseconds.mdx b/docs/reference/settings/player/buffertimeinmilliseconds.mdx
index 1bfcb6690..b330debe9 100644
--- a/docs/reference/settings/player/buffertimeinmilliseconds.mdx
+++ b/docs/reference/settings/player/buffertimeinmilliseconds.mdx
@@ -1,37 +1,41 @@
---
title: player.bufferTimeInMilliseconds
-description: The number of milliseconds the player should buffer.
+description: "The number of milliseconds the player should buffer."
sidebar_custom_props:
category: Player
since: 1.2.3
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-Gets or sets how many milliseconds of audio samples should be buffered in total.
+### Description
+The number of milliseconds the player should buffer. Gets or sets how many milliseconds of audio samples should be buffered in total.
-* Larger buffers cause a delay from when audio settings like volumes will be applied.
+* Larger buffers cause a delay from when audio settings like volumes will be applied.
* Smaller buffers can cause audio crackling due to constant buffering that is happening.
This buffer size can be changed whenever needed.
-
-
-## Types
-
-
-
- `5000`
- `1000`
-
-
-
-## Default Value
+
+
+
+
+
-`500`
\ No newline at end of file
diff --git a/docs/reference/settings/player/enableanimatedbeatcursor.mdx b/docs/reference/settings/player/enableanimatedbeatcursor.mdx
index e9d9adc44..e078a2293 100644
--- a/docs/reference/settings/player/enableanimatedbeatcursor.mdx
+++ b/docs/reference/settings/player/enableanimatedbeatcursor.mdx
@@ -1,30 +1,37 @@
---
title: player.enableAnimatedBeatCursor
-description: Whether the beat cursor should be animated or just ticking.
+description: "Whether the beat cursor should be animated or just ticking."
sidebar_custom_props:
category: Player
since: 1.2.3
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting configures whether the beat cursor is animated smoothly or whether it is ticking from beat to beat.
+### Description
+Whether the beat cursor should be animated or just ticking. This setting configures whether the beat cursor is animated smoothly or whether it is ticking from beat to beat.
The animation of the cursor might not be available on all targets so it might not have any effect.
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/enablecursor.mdx b/docs/reference/settings/player/enablecursor.mdx
index 5a797a320..a9082146c 100644
--- a/docs/reference/settings/player/enablecursor.mdx
+++ b/docs/reference/settings/player/enablecursor.mdx
@@ -1,29 +1,36 @@
---
title: player.enableCursor
-description: Whether playback cursors should be displayed.
+description: "Whether playback cursors should be displayed."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Whether playback cursors should be displayed. This setting configures whether the playback cursors are shown or not. In case a developer decides to built an own cursor system the default one can be disabled with this setting. Enabling the cursor also requires the player to be active.
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/enableelementhighlighting.mdx b/docs/reference/settings/player/enableelementhighlighting.mdx
index 8450cf009..295f0f49a 100644
--- a/docs/reference/settings/player/enableelementhighlighting.mdx
+++ b/docs/reference/settings/player/enableelementhighlighting.mdx
@@ -1,30 +1,37 @@
---
title: player.enableElementHighlighting
-description: Whether the notation elements of the currently played beat should be highlighted.
+description: "Whether the notation elements of the currently played beat should be highlighted."
sidebar_custom_props:
category: Player
since: 1.2.3
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting configures whether the note elements are highlighted during playback.
+### Description
+Whether the notation elements of the currently played beat should be highlighted. This setting configures whether the note elements are highlighted during playback.
The highlighting of elements might not be available on all targets and render engine, so it might not have any effect.
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/enableplayer.mdx b/docs/reference/settings/player/enableplayer.mdx
index 2bcfc35e5..07430d7ba 100644
--- a/docs/reference/settings/player/enableplayer.mdx
+++ b/docs/reference/settings/player/enableplayer.mdx
@@ -1,33 +1,40 @@
---
title: player.enablePlayer
-description: Whether the player should be enabled.
+description: "Whether the player should be enabled."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting configures whether the player feature is enabled or not. Depending on the platform enabling the player needs some additional actions of the developer.
-For the JavaScript version the [player.soundFont](/docs/reference/settings/player/soundfont) property must be set to the URL of the sound font that should be used or it must be loaded manually via API.
-For .net manually the soundfont must be loaded.
+### Description
+Whether the player should be enabled. This setting configures whether the player feature is enabled or not. Depending on the platform enabling the player needs some additional actions of the developer.
+For the JavaScript version the [player.soundFont](/docs/reference/settings/player/soundfont) property must be set to the URL of the sound font that should be used or it must be loaded manually via API.
+For .net manually the soundfont must be loaded.
AlphaTab does not ship a default UI for the player. The API must be hooked up to some UI controls to allow the user to interact with the player.
-
-
-## Types
-
-
-
-
-
-## Default Value
+
+
+
+
+
-`false`
\ No newline at end of file
diff --git a/docs/reference/settings/player/enableuserinteraction.mdx b/docs/reference/settings/player/enableuserinteraction.mdx
index 988ed6788..062739398 100644
--- a/docs/reference/settings/player/enableuserinteraction.mdx
+++ b/docs/reference/settings/player/enableuserinteraction.mdx
@@ -1,31 +1,37 @@
---
title: player.enableUserInteraction
-description: Whether the default user interaction behavior should be active or not.
+description: "Whether the default user interaction behavior should be active or not."
sidebar_custom_props:
category: Player
since: 0.9.7
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-This setting configures whether alphaTab provides the default user interaction features like selection of the playback range and "seek on click".
-By default users can select the desired playback range with the mouse and also jump to individual beats by click. This behavior can be contolled w1ith this setting.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Whether the default user interaction behavior should be active or not. This setting configures whether alphaTab provides the default user interaction features like selection of the playback range and "seek on click".
+By default users can select the desired playback range with the mouse and also jump to individual beats by click. This behavior can be contolled with this setting.
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/nativebrowsersmoothscroll.mdx b/docs/reference/settings/player/nativebrowsersmoothscroll.mdx
index ec561658c..562f7fc66 100644
--- a/docs/reference/settings/player/nativebrowsersmoothscroll.mdx
+++ b/docs/reference/settings/player/nativebrowsersmoothscroll.mdx
@@ -1,32 +1,29 @@
---
title: player.nativeBrowserSmoothScroll
-description: Whether the native browser smooth scroll mechanism should be used over a custom animation.
+description: "Whether the native browser smooth scroll mechanism should be used over a custom animation."
sidebar_custom_props:
javaScriptOnly: true
category: Player
since: 1.2.3
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-This setting configures whether the [native browser feature](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo)
+### Description
+Whether the native browser smooth scroll mechanism should be used over a custom animation. This setting configures whether the [native browser feature](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo)
for smooth scrolling should be used over a custom animation.
-If this setting is enabled, options like `player.scrollSpeed` will not have an effect anymore.
-
-
-
-## Types
-
-
-
-
+If this setting is enabled, options like {"scrollSpeed"} will not have an effect anymore.
-## Default Value
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/outputmode.mdx b/docs/reference/settings/player/outputmode.mdx
index cef38819b..3f7136c84 100644
--- a/docs/reference/settings/player/outputmode.mdx
+++ b/docs/reference/settings/player/outputmode.mdx
@@ -1,41 +1,27 @@
---
title: player.outputMode
-description: The mode used for playing audio samples
+description: "The mode used for playing audio samples"
sidebar_custom_props:
javaScriptOnly: true
category: Player - JavaScript Specific
since: 1.3.0
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-Controls how alphaTab will play the audio samples in the browser.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
- `WebAudioAudioWorklets` - If [audio worklets](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Using_AudioWorklet) are available, they are used. If not fallback to the ScriptProcessorNode
- `WebAudioScriptProcessor` - Using the [ScriptProcessorNode](https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode) for playback
-
-
- `webaudioaudioworklets`
- `webaudioscriptprocessor`
-
-
- `0` - WebAudioAudioWorklets
- `1` - WebAudioScriptProcessor
-
-
+### Description
+The mode used for playing audio samples Controls how alphaTab will play the audio samples in the browser.
-## Default Value
+
-`WebAudioAudioWorklets`
\ No newline at end of file
diff --git a/docs/reference/settings/player/playtripletfeel.mdx b/docs/reference/settings/player/playtripletfeel.mdx
index 919056f14..9d256f2aa 100644
--- a/docs/reference/settings/player/playtripletfeel.mdx
+++ b/docs/reference/settings/player/playtripletfeel.mdx
@@ -1,29 +1,36 @@
---
title: player.playTripletFeel
-description: Whether the triplet feel should be played or only displayed.
+description: "Whether the triplet feel should be played or only displayed."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-If this setting is enabled alphaTab will play the triplet feels accordingly, if it is disabled the triplet feel is only displayed but not played.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+Whether the triplet feel should be played or only displayed. If this setting is enabled alphaTab will play the triplet feels accordingly, if it is disabled the triplet feel is only displayed but not played.
-## Default Value
+
+
+
+
+
-`true`
\ No newline at end of file
diff --git a/docs/reference/settings/player/scrollelement.mdx b/docs/reference/settings/player/scrollelement.mdx
index 7eed4c6fe..b8d6918b4 100644
--- a/docs/reference/settings/player/scrollelement.mdx
+++ b/docs/reference/settings/player/scrollelement.mdx
@@ -1,35 +1,29 @@
---
title: player.scrollElement
-description: The element to apply the scrolling on.
+description: "The element to apply the scrolling on."
sidebar_custom_props:
javaScriptOnly: true
category: Player - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-When the player is active, it by default automatically scrolls the browser window to the currently played bar. This setting
+### Description
+The element to apply the scrolling on. When the player is active, it by default automatically scrolls the browser window to the currently played bar. This setting
defines which elements should be scrolled to bring the played bar into the view port. By default scrolling happens on the `html,body`
-selector.
-
-
-
-## Types
-
-
-
- A selector for `document.querySelector`
-
-
-
+selector.
-## Default Value
+
+
+
-`Continuous`
\ No newline at end of file
diff --git a/docs/reference/settings/player/scrolloffsetx.mdx b/docs/reference/settings/player/scrolloffsetx.mdx
index 1969415a2..7d68f617e 100644
--- a/docs/reference/settings/player/scrolloffsetx.mdx
+++ b/docs/reference/settings/player/scrolloffsetx.mdx
@@ -1,34 +1,38 @@
---
-title: player.playerOffsetX
-description: The X-offset to add when scrolling.
+title: player.scrollOffsetX
+description: "The X-offset to add when scrolling."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-When alphaTab does an auto-scrolling to the displayed bar, it will try to align the view port to the displayed bar. If due to
-some layout specifics or for aesthetics a small padding is needed, this setting allows an additional X-offset that is added to the
-scroll position.
-
-
-## Types
-
-
-
- `-10`
- `20`
-
-
-
-## Default Value
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+The X-offset to add when scrolling. When alphaTab does an auto-scrolling to the displayed bar, it will try to align the view port to the displayed bar. If due to
+some layout specifics or for aesthetics a small padding is needed, this setting allows an additional X-offset that is added to the
+scroll position.
+
+
+
+
+
+
-`0`
\ No newline at end of file
diff --git a/docs/reference/settings/player/scrolloffsety.mdx b/docs/reference/settings/player/scrolloffsety.mdx
index 15daa2014..8147d1ed3 100644
--- a/docs/reference/settings/player/scrolloffsety.mdx
+++ b/docs/reference/settings/player/scrolloffsety.mdx
@@ -1,34 +1,38 @@
---
title: player.scrollOffsetY
-description: The Y-offset to add when scrolling.
+description: "The Y-offset to add when scrolling."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-When alphaTab does an auto-scrolling to the displayed bar, it will try to align the view port to the displayed bar. If due to
-some layout specifics or for aesthetics a small padding is needed, this setting allows an additional Y-offset that is added to the
-scroll position.
-
-
-## Types
-
-
-
- `-10`
- `20`
-
-
-
-## Default Value
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+The Y-offset to add when scrolling. When alphaTab does an auto-scrolling to the displayed bar, it will try to align the view port to the displayed bar. If due to
+some layout specifics or for aesthetics a small padding is needed, this setting allows an additional Y-offset that is added to the
+scroll position.
+
+
+
+
+
+
-`0`
\ No newline at end of file
diff --git a/docs/reference/settings/player/scrollspeed.mdx b/docs/reference/settings/player/scrollspeed.mdx
index a9236dd75..45d1bfa7f 100644
--- a/docs/reference/settings/player/scrollspeed.mdx
+++ b/docs/reference/settings/player/scrollspeed.mdx
@@ -1,34 +1,38 @@
---
title: player.scrollSpeed
-description: How fast the scrolling to the new position should happen.
+description: "How fast the scrolling to the new position should happen."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-If possible from the platform, alphaTab will try to do a smooth scrolling to the played bar.
+### Description
+How fast the scrolling to the new position should happen. If possible from the platform, alphaTab will try to do a smooth scrolling to the played bar.
This setting defines the speed of scrolling in milliseconds.
-Note that `player.nativeBrowserSmoothScroll` must be set to `false` for this to have an effect.
-
-
-
-## Types
-
-
-
- `200`
- `300`
- `100`
-
-
+Note that {"nativeBrowserSmoothScroll"} must be set to `false` for this to have an effect.
+
+
+
+
+
+
-## Default Value
-`300`
\ No newline at end of file
diff --git a/docs/reference/settings/player/slide.mdx b/docs/reference/settings/player/slide.mdx
index 508709f57..c4a5a2882 100644
--- a/docs/reference/settings/player/slide.mdx
+++ b/docs/reference/settings/player/slide.mdx
@@ -1,93 +1,27 @@
---
title: player.slide
-description: The slide settings allow control how the different slide types are generated for audio.
+description: "The slide settings allow control how the different slide types are generated for audio."
sidebar_custom_props:
- domWildCard: true
+ domWildcard: true
category: Player
- since: 0.9.9
+ since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-export var SlideSettings = [
- {
- name: 'simpleSlidePitchOffset',
- defaultValue: 6,
- type: 'int',
- description: 'The 1/4 tones (bend value) offset that simple slides like slide-out-below or slide-in-above use.'
- },
- {
- name: 'simpleSlideDurationRatio',
- defaultValue: 0.25,
- type: 'double',
- description:
- 'The percentage which the simple slides should take up from the whole note. for "slide into" ' +
- 'effects the slide will take place from time 0 where the note is plucked to 25% of the overall ' +
- 'note duration. For "slide out" effects the slide will start 75% and finish at 100% of the overall note duration.'
- },
- {
- name: 'shiftSlideDurationRatio',
- defaultValue: 0.5,
- type: 'double',
- description: 'The percentage which the legato and shift slides should take up ' +
- ' from the whole note. For a value 0.5 the sliding will start at 50% of the overall note duration ' +
- ' and finish at 100%.'
- }
-];
-
-export function toPascalCase(v) {
- return v.substr(0, 1).toUpperCase() + v.substr(1);
-}
-
-export function SlideRow({setting}) {
- return (
-
- );
-}
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab supports various types of slides which can be grouped into 3 types:
+### Description
+The slide settings allow control how the different slide types are generated for audio. AlphaTab supports various types of slides which can be grouped into 3 types:
* Shift Slides
* Legato Slides
@@ -96,18 +30,31 @@ AlphaTab supports various types of slides which can be grouped into 3 types:
* Slide into from below
* Slide into from above
* Slide out to below
-* Slide out to above
+* Slide out to above
* Pick Slide out to above
* Pick Slide out to below
For the first 2 groups the audio generation can be adapted. For the pick slide the audio generation cannot be adapted
-as there is no mechanism yet in alphaTab to play pick slides to make them sound real.
+as there is no mechanism yet in alphaTab to play pick slides to make them sound real.
For the first group only the duration or start point of the slide can be configured while for the second group
-the duration/start-point and the pitch offset can be configured.
+the duration/start-point and the pitch offset can be configured.
+
+
+
+
+
+
+
-## Slide Settings
+import ManualDocs from './_slide.mdx';
-
\ No newline at end of file
+
diff --git a/docs/reference/settings/player/songbookbendduration.mdx b/docs/reference/settings/player/songbookbendduration.mdx
index 9f032eda6..dc7af6b95 100644
--- a/docs/reference/settings/player/songbookbendduration.mdx
+++ b/docs/reference/settings/player/songbookbendduration.mdx
@@ -1,35 +1,38 @@
---
title: player.songBookBendDuration
-description: The bend duration in milliseconds for songbook bends.
+description: "The bend duration in milliseconds for songbook bends."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-If the display mode `songbook` is enabled, this has an effect on the way bends are played. For songbook bends the bend is done very quickly at the end or start of the beat.
-This setting defines the play duration for those bends in milliseconds. This duration is in milliseconds unlike some other settings which are in midi ticks. The reason is that on songbook bends,
-the bends should always be played in the same speed, regardless of the song tempo. Midi ticks are tempo dependent.
-
-
-## Types
-
-
-
- `75`
- `120`
- `250`
-
-
-
-## Default Value
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+The bend duration in milliseconds for songbook bends. If the display mode `songbook` is enabled, this has an effect on the way bends are played. For songbook bends the bend is done very quickly at the end or start of the beat.
+This setting defines the play duration for those bends in milliseconds. This duration is in milliseconds unlike some other settings which are in midi ticks. The reason is that on songbook bends,
+the bends should always be played in the same speed, regardless of the song tempo. Midi ticks are tempo dependent.
+
+
+
+
+
+
-`75`
\ No newline at end of file
diff --git a/docs/reference/settings/player/songbookdipduration.mdx b/docs/reference/settings/player/songbookdipduration.mdx
index 0e63d1a92..28dfb2fac 100644
--- a/docs/reference/settings/player/songbookdipduration.mdx
+++ b/docs/reference/settings/player/songbookdipduration.mdx
@@ -1,35 +1,38 @@
---
title: player.songBookDipDuration
-description: The duration of whammy dips in milliseconds for songbook whammys.
+description: "The duration of whammy dips in milliseconds for songbook whammys."
sidebar_custom_props:
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-
-## Description
-
-If the display mode `songbook` is enabled, this has an effect on the way whammy dips are played. For songbook dips the whammy is pressed very quickly at the start of the beat.
-This setting defines the play duration for those whammy bars in milliseconds. This duration is in milliseconds unlike some other settings which are in midi ticks. The reason is that on songbook dips,
-the whammy should always be pressed in the same speed, regardless of the song tempo. Midi ticks are tempo dependent.
-
-
-## Types
-
-
-
- `75`
- `120`
- `250`
-
-
-
-## Default Value
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
+
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
+
+
+
+### Description
+The duration of whammy dips in milliseconds for songbook whammys. If the display mode `songbook` is enabled, this has an effect on the way whammy dips are played. For songbook dips the whammy is pressed very quickly at the start of the beat.
+This setting defines the play duration for those whammy bars in milliseconds. This duration is in milliseconds unlike some other settings which are in midi ticks. The reason is that on songbook dips,
+the whammy should always be pressed in the same speed, regardless of the song tempo. Midi ticks are tempo dependent.
+
+
+
+
+
+
-`150`
\ No newline at end of file
diff --git a/docs/reference/settings/player/soundfont.mdx b/docs/reference/settings/player/soundfont.mdx
index 908dcef6c..f9f6d0d27 100644
--- a/docs/reference/settings/player/soundfont.mdx
+++ b/docs/reference/settings/player/soundfont.mdx
@@ -1,30 +1,27 @@
---
title: player.soundFont
-description: The sound font file to load for the player.
+description: "The sound font file to load for the player."
sidebar_custom_props:
javaScriptOnly: true
category: Player - JavaScript Specific
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
-## Description
-
-When the player is enabled the soundfont from this URL will be loaded automatically after the player is ready.
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Types
+
-
-
-
+### Description
+The sound font file to load for the player. When the player is enabled the soundfont from this URL will be loaded automatically after the player is ready.
-## Default Value
+
-`null`
\ No newline at end of file
diff --git a/docs/reference/settings/player/vibrato.mdx b/docs/reference/settings/player/vibrato.mdx
index e974b4df4..58fdb1f6a 100644
--- a/docs/reference/settings/player/vibrato.mdx
+++ b/docs/reference/settings/player/vibrato.mdx
@@ -1,118 +1,47 @@
---
title: player.vibrato
-description: The Vibrato settings allow control how the different vibrato types are generated for audio.
+description: "The Vibrato settings allow control how the different vibrato types are generated for audio."
sidebar_custom_props:
- domWildCard: true
category: Player
since: 0.9.6
---
-import { SinceBadge } from '@site/src/components/SinceBadge';
-
-
-import { PropertyDescription } from '@site/src/components/PropertyDescription';
-import {TypeTable, TypeRow} from '@site/src/components/TypeTable';
+import { ParameterTable, ParameterRow } from '@site/src/components/ParameterTable';
+import CodeBlock from '@theme/CodeBlock';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
import { CodeBadge } from '@site/src/components/CodeBadge';
+import { SinceBadge } from '@site/src/components/SinceBadge';
+import DynHeading from '@site/src/components/DynHeading';
+import Link from '@docusaurus/Link';
-export var VibratoSettings = [
- {
- name: 'beatSlightAmplitude',
- defaultValue: 2,
- description: 'The amplitude for the beat-slight vibrato in semitones.'
- },
- {
- name: 'beatSlightLength',
- defaultValue: 480,
- description: 'The wavelength of the beat-slight vibrato in midi ticks.'
- },
- {
- name: 'beatWideAmplitude',
- defaultValue: 2,
- description: 'The amplitude for the beat-wide vibrato in semitones.'
- },
- {
- name: 'beatWideLength',
- defaultValue: 480,
- description: 'The wavelength of the beat-wide vibrato in midi ticks.'
- },
- {
- name: 'noteSlightAmplitude',
- defaultValue: 0.5,
- description: 'The amplitude for the note-slight vibrato in semitones.'
- },
- {
- name: 'noteSlightLength',
- defaultValue: 360,
- description: 'The wavelength of the note-slight vibrato in midi ticks.'
- },
- {
- name: 'noteWideAmplitude',
- defaultValue: 1,
- description: 'The amplitude for the note-wide vibrato in semitones.'
- },
- {
- name: 'noteWideLength',
- defaultValue: 240,
- description: 'The wavelength of the note-wide vibrato in midi ticks.'
- }
-];
-
-export function toPascalCase(v) {
- return v.substr(0, 1).toUpperCase() + v.substr(1);
-}
-
-export function VibratoRow({setting}) {
- return (
-
- );
-}
-
+import { SettingsHeader } from '@site/src/components/SettingsHeader';
-## Description
+
-AlphaTab supports 4 types of vibratos, for each vibrato the amplitude and the wavelength can be configured. The amplitude controls how many semitones
+### Description
+The Vibrato settings allow control how the different vibrato types are generated for audio. AlphaTab supports 4 types of vibratos, for each vibrato the amplitude and the wavelength can be configured. The amplitude controls how many semitones
the vibrato changes the pitch up and down while playback. The wavelength controls how many midi ticks it will take to complete one up and down vibrato.
-The 4 vibrato types are:
+The 4 vibrato types are:
1. Beat Slight - A fast vibrato on the whole beat. This vibrato is usually done with the whammy bar.
2. Beat Wide - A slow vibrato on the whole beat. This vibrato is usually done with the whammy bar.
3. Note Slight - A fast vibrato on a single note. This vibrato is usually done with the finger on the fretboard.
4. Note Wide - A slow vibrato on a single note. This vibrato is usually done with the finger on the fretboard.
-## Vibrato Settings
+
+
+