Skip to main content

SongBook mode

When the goal is a chart that reads like the Real Book โ€” bends drawn as compact hooks, dips notated as instant events at the corner of a beat, chord symbols above the staff โ€” flip on SongBook notation mode and alphaTab reshapes both the render and the playback to match. On the audio side, two millisecond-based settings control how snappy those bend and dip events sound when the mode is on.

00:00 / 00:00

Two durations, always in millisecondsโ€‹

  • player.songBookBendDuration โ€” how long a songbook bend takes to reach its target pitch. Default 75 ms.
  • player.songBookDipDuration โ€” how long a whammy dip takes to descend and rise back. Default 150 ms.

These are milliseconds, not MIDI ticks. Bends and dips in songbook style should feel identical at any tempo, so alphaTab measures them against wall-clock time instead of the score's time base.

Lower values sharpen the attack โ€” the bend snaps almost instantly to its target. Higher values soften it into an audible glissando. Values above ~250 ms start to blur the note the bend is attached to; the songbook idiom breaks down.

When these settings applyโ€‹

The two durations only take effect when notation.notationMode is set to SongBook. In the default GuitarPro notation mode, bends and dips render and play as full gestures over the note's duration, and these knobs have no effect. Setting them without switching the notation mode is safe โ€” they wait for the mode to change.

Show it in codeโ€‹

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

const container = getAlphaTabContainer();
const api = new alphaTab.AlphaTabApi(container, {
core: { file: '/scores/song.gp' },
notation: {
notationMode: alphaTab.NotationMode.SongBook,
},
player: {
playerMode: alphaTab.PlayerMode.EnabledSynthesizer,
songBookBendDuration: 60,
songBookDipDuration: 120,
},
});

getAlphaTabContainer() is a placeholder for the platform-specific step of obtaining the render target โ€” a <div> on Web, an AlphaTab control on .NET, or an AlphaTabView on Android. Every other line runs unchanged on all three runtimes.

Where to look nextโ€‹