Skip to main content

Special notes

Guitar and bass parts use several note types that go beyond a normal pitched note. alphaTab renders each with the head shape, glyph, or annotation its convention expects.

Natural harmonicsโ€‹

Natural harmonics โ€” the bell-like overtones produced by lightly touching a string over the 5th, 7th, or 12th fret โ€” render with a diamond-shaped notehead on the standard staff and an N.H. marker above the beat. The tab number stays on the touched fret.

Artificial and tap harmonicsโ€‹

Artificial (A.H.), pinch (P.H.), tap (T.H.), and semi (S.H.) harmonics extend the natural harmonic to any pitch on the fretboard โ€” the squeal on a metal solo, the chime on a jazz-fusion melody. alphaTab uses the same diamond head with distinct labels above the beat and prints the sounding fret in parentheses next to the touched fret.

Ghost notesโ€‹

Ghost notes โ€” the almost-inaudible articulation notes used to fill out a funk or hip-hop bassline โ€” render with the fret number wrapped in parentheses on the tab staff. On the standard staff the notehead keeps its normal shape but reads as quieter.

Dead notesโ€‹

Dead notes are the percussive muted attacks common on funk-guitar rhythm chops โ€” a strum with no defined pitch, only rhythmic drive. alphaTab renders them as an x in place of the fret number or notehead.

Tied notes across barsโ€‹

Tied notes carry a single pitch across two written durations, most often across a barline where the composer needs the note to sustain through the downbeat. alphaTab renders each tie as a curved slur joining two noteheads, and when a tie crosses into a bar with a different key signature, it draws the correct accidental on the tied note so the pitch stays unambiguous.

Show it in codeโ€‹

The note types above are always drawn โ€” they belong to the note itself. To strip the effect band labels for harmonics (N.H., A.H., T.H.) from a compact printout, hide the EffectHarmonics element:

import * as alphaTab from '@coderline/alphatab';

const container = getAlphaTabContainer();
const api = new alphaTab.AlphaTabApi(container, {
core: { file: '/scores/song.gp' },
notation: {
elements: new Map([
[alphaTab.NotationElement.EffectHarmonics, false],
]),
},
});

getAlphaTabContainer() is a placeholder for the platform-specific render target.

Where to look nextโ€‹