v1.4
1.4.0β
Time flies and its been almost one year since 1.3.0 was released. Hence it is already long overdue to have an official alphaTab release.
v1.4.0 brings again a lot of new features mainly centered around extending the file format support.
Music Notationβ
This version of alphaTab adds quite a range of new music notation features and rendering adaptions. The following list is (roughly) sorted by the visual impact of the added feature.
rendering: Change on Paddings and Marginsβ
https://github.com/CoderLine/alphaTab/pull/1524
Up to v1.3 alphaTab was fairly generious with the paddings and margins it defined and there was no possibility to adjust these sizes. This way alphaTab required quite a bit of screen space, even for small music sheets. With this feature we introduced configurable paddings and margins for all general spacings that affect the system and stave placement. At the same time we reduced the paddings to some more reasonable defaults resulting in a more concise display.

There is a range of new settings allowing to configure the paddings.
notation: Slash Notationβ
https://github.com/CoderLine/alphaTab/pull/1511
alphaTab can now display additionally a slash notation staff. On Guitar Pro 6-8 files the configured staves are respected,
on alphaTex the new slash
staff option can be used. Or the staff can be enabled on the data model via score.track[].staves[].showSlash
.
notation: Add numbered notation (Jianpu)β
https://github.com/CoderLine/alphaTab/pull/1628
alphaTab can now display additionally a numbered notation staff (aka. Jianpu). On Guitar Pro 6-8 files the configured staves are respected,
on alphaTex the new numbered
staff option can be used. Or the staff can be enabled on the data model via score.track[].staves[].showNumbered
.
notation: System Brackets & Bracesβ
https://github.com/CoderLine/alphaTab/pull/1730
Up to alphaTab 1.3 there was always a rectangular bracket drawn across the staves of one track. With alphaTab 1.4 the display is now configurable in multiple modes. See Brackets and Braces for more details.
notation: Track Name Displayβ
https://github.com/CoderLine/alphaTab/pull/1895
alphaTab has now multiple modes on how to display the track names. The settings are adopted from Guitar Pro and allow a variety of display formats.
notation: Directions (aka. Jumps)β
https://github.com/CoderLine/alphaTab/pull/1852
Support for directions (aka. jumps) was added in alphaTab v1.4.0.
notation: Support for multiple tempo changes in one Barβ
https://github.com/CoderLine/alphaTab/pull/1600
Starting with v1.4.0 alphaTab respects multiple tempo changes within a single bar.
notation: Ornaments (turn, inverted-turn, upper-mordent, lower-mordent)β
https://github.com/CoderLine/alphaTab/pull/1746
Ornaments like turns are respected in both display and playback of notes.
notation: Rasgueado Patternsβ
https://github.com/CoderLine/alphaTab/pull/1748
The exact Rasgueado patterns are now read from input formats and considered during playback.
notation: Inline Fingeringβ
https://github.com/CoderLine/alphaTab/pull/1645
In alphaTab 1.3.1 the finger numbers were shown above the stem which did not allow mapping the individual notes to the fingers. With this release the numbers are now displayed beside the respective note head.
notation: Slashed Beatsβ
https://github.com/CoderLine/alphaTab/pull/1646
Support for Slashed Beats were added where note heads are shown with slash notation.
notation: Dead Slapβ
https://github.com/CoderLine/alphaTab/pull/1742
Support for Dead Slaps were added where instead of playing any sound, a dead note is played on all strings.
notation: Beat Timerβ
https://github.com/CoderLine/alphaTab/pull/1896
Support for beat timers where added. On any beat the absolute playback position can be added.
notation: Free Timeβ
https://github.com/CoderLine/alphaTab/pull/1643
Support for free time bars was added.
notation: Tenutoβ
https://github.com/CoderLine/alphaTab/pull/1645
Support for tenuto accentuation was added.
notation: String Numbersβ
https://github.com/CoderLine/alphaTab/pull/1645
Support for displaying string numbers was added.
notation: Sustain Pedalβ
https://github.com/CoderLine/alphaTab/pull/1730
Support for displaying sustain petal was added, this currently does not affect the playback.
notation: Golpeβ
https://github.com/CoderLine/alphaTab/pull/1743
Support for displaying golpe was added, this currently does not affect the playback.
notation: Fading Styles (fade-in, fade-out, volume-swell)β
https://github.com/CoderLine/alphaTab/pull/1744
The fading styles were extended to support fade-in, fade-out and volume swells on notes.
notation: Wah-Pedalβ
https://github.com/CoderLine/alphaTab/pull/1745
Support for displaying Wah pedal was added, this currently does not affect the playback.
notation: BarrΓ©β
https://github.com/CoderLine/alphaTab/pull/1746
Support for displaying barrΓ© chord notation was added.
Playerβ
player: SoundFont3 Support (Experimental)β
https://github.com/CoderLine/alphaTab/pull/1807
alphaTab 1.4.0 added experiemntal support for SoundFont3 files. In SF3 files audio samples are encoded as OGG Vorbis which allows a smaller footprint when transferring soundfonts over network. This allows using higher quality sounds without a direct increase of file size transferred to clients.
The decoding of the audio samples requires additional CPU time which might affect users. Only the samples required by the song played will be decoded to reduce load.
alphaTab ships now a SF3 flavor of the Sonivox soundfont but still has enabled by default the use of the SF2 file (where embedded).
We did not thoroughly test yet the decoding of many files and the impact of the decoding time. Therefore the support is still considered experimental.
player: Live Change of Transposition Pitchesβ
https://github.com/CoderLine/alphaTab/pull/1642
The changeTrackTranspositionPitch
and setChannelTranspositionPitch
APIs allow changing transposition pitches of individual tracks (or midi channels) on-the-fly
while the song is being played.
alphaTex Extensionsβ
alphaTex: Support for Percussion Tabsβ
https://github.com/CoderLine/alphaTab/pull/1493
With alphaTab 1.4.0 you can finally also express percussion tabs. Learn more here
alphaTex: Add Support for all Notation Elementsβ
https://github.com/CoderLine/alphaTab/pull/1853
With this release alphaTex closes the gaps between other file formats by adding support for all elements alphaTab supports across other formats. All elements are now described respectively in the alphaTex documentation. Some key changes beside larger features already mentioned here:
- Escape sequences (like
\n
) can now be used in strings. - Score metadata was extended for all fields.
- Tempo labels can now be specified
- System Layout details can be configured
- Stylesheet details can be specified.
- Transpose information can be specified.
- Specify track properties (volume, mute, solo)
- Specify the number of standard notation lines in standard music notation staves.
- Beat Vibrato Types
- Custom tuplets
- Whammy bar types and styles
- Bend types and styles
- Beat Ottava
- Legatos
- Instrument Automations
- Fermata
- Custom Beaming Modes and Stem directions.
- Show String Numbers
- Invisible Notes
- Slurs
- Common Time Signatures
- Key Signature Types
- Double Bars
- Ottava
- Bar Scale (for system layouts)
- Fixed Bar Widths (for system layouts)
- Simile Marks
alphaTex: Multi-Voice Notationβ
https://github.com/CoderLine/alphaTab/pull/1853
Adding multiple voices to a single staff in alphaTex can now be done via the new \voice
command.
alphaTex: Specify Accidentalsβ
https://github.com/CoderLine/alphaTab/pull/1729
With v1.4.0 alphaTab tries to respect the accidentals as specified when writing pitched notes. Additionally accidentals can be forced to the desired one.
Guitar Pro Extensionsβ
Guitar Pro 3-8: Respect Beaming Modes and Directionsβ
https://github.com/CoderLine/alphaTab/pull/1892
alphaTab loads now all stem directions and beaming modes from Guitar Pro 3 up to 8.
Guitar Pro 6-8: Track Visibility Informationβ
https://github.com/CoderLine/alphaTab/pull/1491
alphaTab loads now track visibility information from the LayoutConfiguration
file and makes
it available via track.isVisibleOnMultiTrack
.
Guitar Pro 3-5: Respect Staff Visibilityβ
https://github.com/CoderLine/alphaTab/pull/1888
alphaTab loads now loads the activated staves from Guitar Pro 3-5 files and shows the respective staffs when rendering the music notation.
Guitar Pro 3-8: Respect Tuning Visibilityβ
https://github.com/CoderLine/alphaTab/pull/1889
alphaTab loads now loads the tuning visibility information from Guitar Pro 3-8 files and shows the guitar tunings accordingly.
Guitar Pro 3-8: Respect Chord Diagram List Visibilityβ
https://github.com/CoderLine/alphaTab/pull/1890
alphaTab loads now loads the information whether to display chord diagrams for a track in the chord list from from Guitar Pro 3-8 files.
Guitar Pro 3-5: Beat Ottavaβ
https://github.com/CoderLine/alphaTab/pull/1892
alphaTab loads now loads beat ottava information from Guitar Pro 3-5 files.
MusicXML Extensionsβ
musicxml: Support for Compressed MusicXML Filesβ
https://github.com/CoderLine/alphaTab/pull/1492
alphaTab can now unzip compressed MusicXML files before reading.
musicxml: Support for Guitar Bendsβ
https://github.com/CoderLine/alphaTab/pull/1462
alphaTab can now parse guitar bends from MusicXML files.
Thanks @ldupouey for this contribution.
Improvements & Bugfixesβ
API: TypeScript definitions for JSON Settingsβ
https://github.com/CoderLine/alphaTab/pull/1562 https://github.com/CoderLine/alphaTab/pull/1578
alphaTab ships now TypeScript type definitions for the JSON flavor of the settings for better
type safety and coding assistence when using APIs like settings.fillFromJson
, new AlphaTabApi()
docs: File Format Compatiblityβ
We invested quite some effort in documenting the currently supported file formats and features. For every format we now try to list out what features this format provides and what alphaTab understands from it.
Head over to the format docs to learn more about the feature coverage.
rendering: Central Scaling of Music Sheetβ
https://github.com/CoderLine/alphaTab/pull/1772
Up to this release alphaTab was handling the scaling of the music sheet across the different places where we draw items.
This was prone to errors if for some paddings or sizes the zoom scale was applied wrongly.
To eliminate this problem we moved the scaled rendering into the drawing layer (ICanvas
). This way
we do not need to handle the zoom level anymore across the whole codebase.
This should result in a more consistent zooming experience and less overlaps.
rendering: Tempo Automation rendering (label, positioning and scale)β
https://github.com/CoderLine/alphaTab/pull/1906
In this release we improved the rendering of tempo information. Beside the addition of rendering the tempo label again,
we also improved the placement of tempo changes above beats. This was crucial for the Support for multiple tempo changes in one Bar
.
bundlers: Node20+ compatibility for Vite & WebPack Integrationsβ
https://github.com/CoderLine/alphaTab/pull/1579
With Node20 there were some changes in copying files we had to adapt for the Vite and WebPack plugins. This could lead to wrong file copy steps.
audio: Prevent Audio Clipping Noisesβ
https://github.com/CoderLine/alphaTab/pull/1607 https://github.com/CoderLine/alphaTab/pull/1609
A really hard-to-catch problem was the generation of strange clipping sounds in some repeat and ending scenarios. We improved various bits which could lead to this clipping problem.
rendering: Ensure correct effect band sizing on line breaksβ
https://github.com/CoderLine/alphaTab/pull/1621 https://github.com/CoderLine/alphaTab/pull/1641
When during layouting it is detected that a bar doesn't fit anymore into the system (line), it is removed from the system again. There was a problem that these "reverted" bars had already reserved some spacings and those were not reverted resulting in strange whitespace. This problem was fixed.
player: Scrolling Issue with ScrollMode.OffScreen
β
https://github.com/CoderLine/alphaTab/pull/1771
There was a problem fixed that scrolling with ScrollMode.OffScreen
was not working as expected. This was due to wrong scroll properties being used.
notation: Vibratos on Tied Notes with Bendsβ
https://github.com/CoderLine/alphaTab/pull/1843
There was a problem fixed that vibratos could not be combined with bends resulting in wrong display and audio generation.
notation: Bends on Tied Notesβ
https://github.com/CoderLine/alphaTab/issues/1825
There was a problem fixed that bends were not working when applied to tied notes.
alphaTex: Remember Clefsβ
https://github.com/CoderLine/alphaTab/pull/1905
Before this change clefs had to be specified on every single bar because alphaTab used some defaults on new bars. With this change alphaTab takes over the clef from previous bars.
bundler: Vite upgraded to v6β
https://github.com/CoderLine/alphaTab/pull/1913
The Vite bundler plugin was upgraded from v5 to v6.