Fretdown

Markdown for guitar & bass tabs

Fretdown is an open-source, plaintext notation format for fretted instruments. It is git-friendly, deterministically parseable, and validator-backed.

Text-first

Write tabs in any editor. No binary blobs, no XML — just readable, diffable plaintext.

Deterministic parse

Every valid document has exactly one interpretation, backed by a real Chevrotain grammar.

Validator-backed

Frets in range, strings that exist, measures that fill the bar — checked with located diagnostics.

Fretted-instrument-agnostic

Guitar, bass, 7-string, ukulele. Strings and frets are abstract; instruments supply defaults.

Exports to MIDI & MusicXML

Turn a tab into a playable MIDI file or import it into notation software via MusicXML — deterministically, straight from the playground or the CLI.

Renders real techniques

Hammer-ons, pull-offs, and slides draw as slurred noteheads (not just text), with bends and palm mutes annotated.

Hear it play

Press Play in the playground to hear the tab through a General MIDI synth, with a cursor tracking the bar — play every track together or solo just one.

Looks like this

@title "Sunshine Riff"
@tempo 120
@time 4/4

@track Guitar
@instrument guitar
@tuning E2 A2 D3 G3 B3 E4

intro:
  |: s6f0:8 s6f0 s5f2 s6f0 s4f2 s6f0 s5f2h3 s5f2 :|x2