Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e69058c
feat(importer): map TablEdit effects, graces, fingerings and strokes
Danielku15 Nov 1, 2026
be4695f
feat(importer): apply TablEdit markers
Danielku15 Nov 1, 2026
91cbedc
feat(importer): read TablEdit key signatures, minor keys and pick-up …
Danielku15 Nov 1, 2026
b249777
feat(importer): apply TablEdit lyrics to the beats of their track
Danielku15 Nov 1, 2026
cad7de8
feat(importer): read more of the TablEdit format and follow TablEdit'…
Danielku15 Nov 2, 2026
c8d8620
feat(importer): read TablEdit 2 files (formats 3 to 9)
Danielku15 Nov 2, 2026
baf51c7
feat(importer): read the abbreviated name of TablEdit instruments
Danielku15 Nov 2, 2026
1881f65
style(importer): format the importers touched while adding the TablEd…
Danielku15 Nov 1, 2026
665fcbd
feat(importer): express the TablEdit reading list through repeats and…
Danielku15 Nov 2, 2026
766723d
feat(importer): read TablEdit clefs, display modes, mixer settings, t…
Danielku15 Nov 1, 2026
cfbb673
test(importer): prove the TablEdit importer with files entered in Tab…
Danielku15 Nov 2, 2026
2d9aa8b
test(importer): compare TablEdit 2 files with TablEdit's conversion
Danielku15 Nov 2, 2026
071a57a
test(rendering): render TablEdit files and round-trip them through JS…
Danielku15 Nov 1, 2026
9c09468
docs: document the TablEdit importer and its compatibility
Danielku15 Nov 2, 2026
67d73c3
fix(kotlin): spread only the items of a DoubleList, not its spare cap…
Danielku15 Nov 2, 2026
17626fc
fix(csharp): decode Windows-1252 text without a code pages provider
Danielku15 Nov 2, 2026
98c3914
fix(platform): add the array members of the TablEdit importer and its…
Danielku15 Nov 2, 2026
907c967
test(platform): compare numbers, enums and map entries in toEqual lik…
Danielku15 Nov 2, 2026
b526eb5
feat(importer): read TablEdit 3 files into bars, voices and beats
Danielku15 Nov 1, 2026
6e473c1
test(importer): give the TablEdit tremolo bar test real amounts
Danielku15 Nov 6, 2026
a1912f2
test(rendering): add the reviewed TablEdit visual references
Danielku15 Nov 6, 2026
3e390c3
fix(importer): keep TablEdit 2 blocks in step after long reading list…
Danielku15 Nov 6, 2026
4451254
fix(importer): reject TablEdit files without measures, instruments or…
Danielku15 Nov 6, 2026
bcb42b6
fix(importer): ignore the protection code of files saved before TablE…
Danielku15 Nov 6, 2026
bd7675e
refactor(importer): share the TablEdit cell codes and set up both for…
Danielku15 Nov 6, 2026
b0425c8
fix(importer): attach TablEdit markers and lyrics in every voice, acr…
Danielku15 Nov 6, 2026
55a22be
fix(importer): let a TablEdit tempo marker at the start replace the h…
Danielku15 Nov 6, 2026
73c1dd2
fix(importer): place TablEdit grace notes on drum tracks on their drum
Danielku15 Nov 6, 2026
af548c7
fix(importer): read the slur length of files saved before TablEdit 3.…
Danielku15 Nov 6, 2026
90bc245
fix(importer): start TablEdit lyrics sections only at the start of a …
Danielku15 Nov 6, 2026
89bc08e
fix(importer): order TablEdit units that sort equal by the order they…
Danielku15 Nov 6, 2026
a1f526f
refactor(importer): map TablEdit combination effects onto the primary…
Danielku15 Nov 6, 2026
e5ab2a3
refactor(platform): drop the Uint8Array.fill overload with a range fr…
Danielku15 Nov 6, 2026
dd67dca
style(importer): restore the formatting of importers unrelated to Tab…
Danielku15 Nov 6, 2026
c101d99
docs: note TablEdit slurs across barlines, reading lists that end ear…
Danielku15 Nov 6, 2026
a2021b1
fix(transpiler): close the type arguments of Kotlin array tuples with…
Danielku15 Nov 6, 2026
776e254
fix(platform): add array tuples of three items to the C# and Kotlin r…
Danielku15 Nov 6, 2026
134ed93
refactor(importer): drop the TablEdit 2 reader and reject TablEdit 2 …
Danielku15 Nov 7, 2026
599e742
docs: describe the TablEdit importer as reading TablEdit 3 files only
Danielku15 Nov 7, 2026
1a4fb9f
fix(importer): derive TablEdit reading lists along the playback rules
Danielku15 Nov 7, 2026
1417732
fix(model): link serialized notes to origins in later voices of their…
Danielku15 Nov 7, 2026
ba9d84c
fix(importer): tie TablEdit notes to the previous note on their string
Danielku15 Nov 7, 2026
a22bfec
fix(importer): put the automatic TablEdit voice first
Danielku15 Nov 7, 2026
81433d3
fix(importer): show no dynamics on TablEdit beats of tied notes only
Danielku15 Nov 7, 2026
49065ca
fix(importer): keep TablEdit reading-list and tie code compilable in C#
Danielku15 Nov 7, 2026
d865f2f
fix(transpiler): give arrays of nulls a nullable element type
Danielku15 Nov 7, 2026
3711cae
test(rendering): add the reviewed TablEdit cross-voice tie reference
Danielku15 Nov 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Music notation, rendered as a first-class SDK.**

alphaTab renders interactive sheet music and guitar tablature from Guitar Pro, MusicXML, Capella and alphaTex files, and plays it back with a built-in synthesizer or in sync with your own audio and video. One TypeScript core ships for the web, .NET and Android, with no runtime dependencies and TypeScript types included. Open source since 2010.
alphaTab renders interactive sheet music and guitar tablature from Guitar Pro, MusicXML, Capella, TablEdit and alphaTex files, and plays it back with a built-in synthesizer or in sync with your own audio and video. One TypeScript core ships for the web, .NET and Android, with no runtime dependencies and TypeScript types included. Open source since 2010.

[![npm](https://img.shields.io/npm/v/@coderline/alphatab?label=npm)](https://www.npmjs.com/package/@coderline/alphatab)
[![npm downloads](https://img.shields.io/npm/dm/@coderline/alphatab?label=downloads)](https://www.npmjs.com/package/@coderline/alphatab)
Expand All @@ -29,7 +29,7 @@ alphaTab renders interactive sheet music and guitar tablature from Guitar Pro, M

| | Formats |
|---|---|
| **Reads** | Guitar Pro 3–8 (`.gp3` `.gp4` `.gp5` `.gpx` `.gp`), MusicXML (`.xml` `.musicxml` `.mxl`), Capella (`.capx`), [alphaTex](https://alphatab.net/docs/alphatex/introduction) |
| **Reads** | Guitar Pro 3–8 (`.gp3` `.gp4` `.gp5` `.gpx` `.gp`), MusicXML (`.xml` `.musicxml` `.mxl`), Capella (`.capx`), TablEdit (`.tef`), [alphaTex](https://alphatab.net/docs/alphatex/introduction) |
| **Writes** | Guitar Pro 7+ (`.gp`), alphaTex, MIDI, audio (PCM samples) |

## Quick start
Expand Down
2 changes: 1 addition & 1 deletion packages/alphatab/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@coderline/alphatab",
"version": "1.10.0",
"description": "Render and play interactive sheet music and guitar tablature from Guitar Pro, MusicXML, Capella and alphaTex, in the browser, Node.js, .NET and Android.",
"description": "Render and play interactive sheet music and guitar tablature from Guitar Pro, MusicXML, Capella, TablEdit and alphaTex, in the browser, Node.js, .NET and Android.",
"keywords": [
"music-notation",
"sheet-music",
Expand Down
11 changes: 7 additions & 4 deletions packages/alphatab/src/Environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { Gp7To8Importer } from '@coderline/alphatab/importer/Gp7To8Importer';
import { GpxImporter } from '@coderline/alphatab/importer/GpxImporter';
import { MusicXmlImporter } from '@coderline/alphatab/importer/MusicXmlImporter';
import type { ScoreImporter } from '@coderline/alphatab/importer/ScoreImporter';
import { TablEditImporter } from '@coderline/alphatab/importer/TablEditImporter';
import { LayoutMode } from '@coderline/alphatab/LayoutMode';
import { Logger } from '@coderline/alphatab/Logger';
import type { Font } from '@coderline/alphatab/model/Font';
Expand All @@ -22,9 +23,7 @@ import { SkiaCanvas } from '@coderline/alphatab/platform/skia/SkiaCanvas';
import { CssFontSvgCanvas } from '@coderline/alphatab/platform/svg/CssFontSvgCanvas';
import { AlphaSynthWebWorker } from '@coderline/alphatab/platform/worker/AlphaSynthWebWorker';
import { AlphaTabWebWorker } from '@coderline/alphatab/platform/worker/AlphaTabWebWorker';
import type {
IAlphaTabWorkerGlobalScope
} from '@coderline/alphatab/platform/worker/AlphaTabWorkerProtocol';
import type { IAlphaTabWorkerGlobalScope } from '@coderline/alphatab/platform/worker/AlphaTabWorkerProtocol';
import { type BarRendererFactory, EffectBandMode } from '@coderline/alphatab/rendering/BarRendererFactory';
import { alternateEndingsEffectInfo } from '@coderline/alphatab/rendering/effects/AlternateEndingsEffectInfo';
import { barNumberEffectInfo } from '@coderline/alphatab/rendering/effects/BarNumberEffectInfo';
Expand All @@ -35,6 +34,10 @@ import { chordsEffectInfo } from '@coderline/alphatab/rendering/effects/ChordsEf
import { crescendoEffectInfo } from '@coderline/alphatab/rendering/effects/CrescendoEffectInfo';
import { directionsEffectInfo } from '@coderline/alphatab/rendering/effects/DirectionsEffectInfo';
import { dynamicsEffectInfo } from '@coderline/alphatab/rendering/effects/DynamicsEffectInfo';
import {
hammerPullLabelEffectInfo,
slideLabelEffectInfo
} from '@coderline/alphatab/rendering/effects/EffectSlurLabelEffectInfo';
import { fadeEffectInfo } from '@coderline/alphatab/rendering/effects/FadeEffectInfo';
import { fermataEffectInfo } from '@coderline/alphatab/rendering/effects/FermataEffectInfo';
import { fingeringEffectInfo } from '@coderline/alphatab/rendering/effects/FingeringEffectInfo';
Expand All @@ -58,7 +61,6 @@ import { createSlightNoteVibratoEffectInfo } from '@coderline/alphatab/rendering
import { sustainPedalEffectInfo } from '@coderline/alphatab/rendering/effects/SustainPedalEffectInfo';
import { tabWhammyEffectInfo } from '@coderline/alphatab/rendering/effects/TabWhammyEffectInfo';
import { tapEffectInfo } from '@coderline/alphatab/rendering/effects/TapEffectInfo';
import { hammerPullLabelEffectInfo, slideLabelEffectInfo } from '@coderline/alphatab/rendering/effects/EffectSlurLabelEffectInfo';
import { tempoEffectInfo } from '@coderline/alphatab/rendering/effects/TempoEffectInfo';
import { textEffectInfo } from '@coderline/alphatab/rendering/effects/TextEffectInfo';
import { trillEffectInfo } from '@coderline/alphatab/rendering/effects/TrillEffectInfo';
Expand Down Expand Up @@ -404,6 +406,7 @@ export class Environment {
new Gp7To8Importer(),
new MusicXmlImporter(),
new CapellaImporter(),
new TablEditImporter(),
new AlphaTexImporter()
];
}
Expand Down
Loading
Loading