Play & sync
alphaTab ships a full playback stack — a TinySoundFont-based synthesizer, a per-track mixer, a metronome and count-in, and hooks into the host platform's audio backend. On top of that, sync points let you drive the cursor from an external backing track, a video, or a MIDI-out pipeline.
Every capability below is available on Web, .NET, and Android unless a card names specific platforms. Follow any card into the reference for the exact signature.
Transport
Play, pause, stop
The basic transport, `playPause` toggle, live demo.
Playback speed
Slower-for-practice, live slider demo.
Looping a section
`playbackRange`, `isLooping`, live loop demo.
Seeking by tick and time
`tickPosition` vs `timePosition`, `endTick` / `endTime`.
Playing a beat or a note
`playBeat`, `playNote`; auditioning individual items in editor UIs.
The mixer
Playback feel
Count-in and metronome
One bar of clicks before playback, metronome during playback.
Triplet feel (swing)
Enable swing on straight-eighth scores, live demo.
Vibrato and slide fine-tuning
Timing parameters for how the synth interprets vibrato and slide effects.
SongBook mode
Songbook-specific bend and dip durations.
Audio synthesis
SoundFont 2 synthesizer
The built-in MIDI synthesizer that turns scores into audio, powered by SoundFont 2 samples.
Custom SoundFonts
Swap in a different SF2 for different instruments, live demo.
Combining multiple SoundFonts
Layered SoundFonts via `append`.
Audio buffer size
Latency vs stability trade-off.
Selecting an output device (Web)
`enumerateOutputDevices` and `setOutputDevice` on the web platform.
Audio backends per platform
Web Audio and AudioWorklet
How alphaTab drives Web Audio in the browser, with AudioWorklet as the primary output and ScriptProcessor as the fallback.
NAudio (.NET)
On .NET, alphaTab routes synthesized samples through NAudio's DirectSound output, with device enumeration exposed via the standard API.
AudioTrack (Android)
On Android, alphaTab feeds synthesized samples into an AudioTrack via a background worker, with device selection through AudioManager.
External media sync
Backing-track audio
Drive the alphaTab playback cursor from an embedded or external audio track instead of the synth.
Video sync
Drive the alphaTab cursor from a YouTube iframe or an HTML5 video element via IExternalMediaHandler.
Sync points at runtime
Attach or refresh backing-track sync points from code with FlatSyncPoint entries and api.updateSyncPoints().
The MIDI event stream
Subscribe to midiEventsPlayed to react to note-on, note-off, metronome, and tempo events at playback time.