parser
@tabkit/parser
Parse ASCII tablature and MusicXML into tabkit-compatible TabMeasure arrays.
ASCII Tab Parser
Paste or edit ASCII tablature below. The parser converts it in real-time. Supports techniques: h (hammer), p (pull), / (slide), b (bend), ~ (vibrato).
import { parseAsciiTab } from "@tabkit/parser";
import { TabRenderer } from "@tabkit/core";
const measures = parseAsciiTab(`
e|---0---1---3---1---0---|
B|---1---1---0---1---1---|
G|---0---2---0---2---0---|
D|---2---3---0---3---2---|
A|---3---3---2---3---3---|
E|---x---1---3---1---x---|`);
const svg = TabRenderer.svg({
measures,
instrument: "guitar",
theme: "light",
width: 900,
showTuning: true,
});View parsed JSON (1 measures)
[
{
"beats": [
[
{
"string": 1,
"fret": 0,
"duration": "8n"
},
{
"string": 2,
"fret": 1,
"duration": "8n"
},
{
"string": 3,
"fret": 0,
"duration": "8n"
},
{
"string": 4,
"fret": 2,
"duration": "8n"
},
{
"string": 5,
"fret": 3,
"duration": "8n"
},
{
"string": 6,
"fret": 0,
"duration": "8n",
"technique": "mute"
}
],
[
{
"string": 1,
"fret": 1,
"duration": "8n"
},
{
"string": 2,
"fret": 1,
"duration": "8n"
},
{
"string": 3,
"fret": 2,
"duration": "8n"
},
{
"string": 4,
"fret": 3,
"duration": "8n"
},
{
"string": 5,
"fret": 3,
"duration": "8n"
},
{
"string": 6,
"fret": 1,
"duration": "8n"
}
],
[
{
"string": 1,
"fret": 3,
"duration": "8n"
},
{
"string": 2,
"fret": 0,
"duration": "8n"
},
{
"string": 3,
"fret": 0,
"duration": "8n"
},
{
"string": 4,
"fret": 0,
"duration": "8n"
},
{
"string": 5,
"fret": 2,
"duration": "8n"
},
{
"string": 6,
"fret": 3,
"duration": "8n"
}
],
[
{
"string": 1,
"fret": 1,
"duration": "8n"
},
{
"string": 2,
"fret": 1,
"duration": "8n"
},
{
"string": 3,
"fret": 2,
"duration": "8n"
},
{
"string": 4,
"fret": 3,
"duration": "8n"
},
{
"string": 5,
"fret": 3,
"duration": "8n"
},
{
"string": 6,
"fret": 1,
"duration": "8n"
}
],
[
{
"string": 1,
"fret": 0,
"duration": "8n"
},
{
"string": 2,
"fret": 1,
"duration": "8n"
},
{
"string": 3,
"fret": 0,
"duration": "8n"
},
{
"string": 4,
"fret": 2,
"duration": "8n"
},
{
"string": 5,
"fret": 3,
"duration": "8n"
},
{
"string": 6,
"fret": 0,
"duration": "8n",
"technique": "mute"
}
]
]
}
]API Quick Reference
| Name | Type | Description |
|---|---|---|
| parseAsciiTab(input, opts?) | TabMeasure[] | Parse ASCII tab string into measures |
| parseMusicXML(xml, opts?) | TabMeasure[] | Parse MusicXML string into measures |
| opts.defaultDuration | Duration | Default note duration (default: "8n") |
| opts.tuning | string[] | Custom string tuning order |
| opts.maxMeasures | number | Limit parsed measures (MusicXML) |