Structural Metadata
This page documents the structural metadata scope โ the metadata tags that open a new track, staff, or voice.
Use these tags when your song needs more than one of any of them:
- Multiple tracks โ when several instruments play together in the same song.
- Multiple staves โ for grand staff piano notation (left hand / right hand) or for splitting voices apart for readability.
- Multiple voices โ for independent rhythms and pitches inside the same staff, such as vocal parts sung together or a bass line played under a melody on the same instrument.
Start each new track, staff, or voice with the matching tag at the beginning of a bar:
\track\staff\voice
The first track, staff, and voice are opened implicitly, so you only need these tags from the second element onward. When a piece has more than one, name the first element explicitly for clarity.
\trackโ
Scope: Structural metadata
\track (name shortName)
Description: Start a new track
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
name | The full name of the track | String | no |
shortName | The short name of the track | String | no /*computed from name*/ |
Example:
\track "First Track" "frst"
C4 D4 E4 F4
\track
C5 D5 E5 F5
Properties:
colorโ
Scope: Structural metadata
color colorCode
Description: The data model holds information about the color of the track which might be used by user interfaces to visually differenciate them. This data mainly originates from the Guitar Pro file format where colors are used to differenciate the tracks in the track picker and some other visualizations. It does not have an impact on the color of the music notation but can be used in a custom UI.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
colorCode | The colorCode in any supported color format | String | yes |
Example:
\track { color "#FF0000" }
1.1 2.1 3.1 4.1
systemsLayoutโ
Scope: Structural metadata
systemsLayout (numberOfBars)
Description: Defines the number of bars to display per system.
The systemsLayout and defaultSystemsLayout allow configuring the system layout.
The system layout, defines how many bars should be displayed per system (line) if enabled via systemsLayoutMode.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
numberOfBars | Defines for every system (line) the number of bars it should contain | Number[] | no |
Example:
\title "Single Track"
\track { systemsLayout (2 3 2) }
:1 c4 | c4 | c4 | c4 | c4 | c4 | c4
defaultSystemsLayoutโ
Scope: Structural metadata
defaultSystemsLayout numberOfBars
Description: Defines the default number of bars to display per system.
The systemsLayout and defaultSystemsLayout allow configuring the system layout.
The system layout, defines how many bars should be displayed per system (line) if enabled via systemsLayoutMode.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
numberOfBars | Defines for every system (line) the number of bars it should contain | Number | yes |
Example:
\title "Single Track"
\track { defaultSystemsLayout 2 }
:1 c4 | c4 | c4 | c4 | c4 | c4 | c4
soloโ
Scope: Structural metadata
solo ()
Description: Set the track to be played solo.
Example:
\track { solo }
1.1 2.1 3.1 4.1
\track
10.1 11.1 12.1 13.1
muteโ
Scope: Structural metadata
mute ()
Description: Set the track to be muted.
Example:
\track
1.1 2.1 3.1 4.1
\track { mute }
10.1 11.1 12.1 13.1
volumeโ
Scope: Structural metadata
volume value
Description: Set the track volume.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
value | The volume to set (0-16) | Number | yes |
Example:
\track { volume 0 }
1.1 2.1 3.1 4.1
\track { volume 16 }
10.1 11.1 12.1 13.1
balanceโ
Scope: Structural metadata
balance value
Description: Set the track balance.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
value | The balance to set (0-16; 8 is centered) | Number | yes |
Example:
\track { volume 0 }
1.1 2.1 3.1 4.1
\track { volume 16 }
10.1 11.1 12.1 13.1
instrumentโ
Scope: Structural metadata
// [1]: Set the midi instrument as midi program number
instrument program
// [2]: Set the midi instrument as midi program name
instrument programName
// [3]: Set the instrument to percussion
instrument percussion
Description: Set the midi instrument for this track.
Parameters:
| Overload | Name | Description | Type | Required |
|---|---|---|---|---|
[1] | program | MIDI program number (0-127) | Number | yes |
[2] | programName | MIDI program name | String | yes |
[3] | percussion | Percussion | percussion | yes |
Parameter Values:
Following parameters have value limitations
| Overload | Name | Values | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[2] | programName |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[3] | percussion |
|
Example:
\track { instrument 0 }
C4 C5 r r
\track { instrument "Acoustic Steel Guitar" }
\tuning (E4 B3 G3 D3 A2 E2)
r r 12.1 13.1
bankโ
Scope: Structural metadata
bank value
Description: Set the MIDI bank to select when playing this track.
The loaded soundfont needs to have this bank defined, otherwise there might be no audio.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
value | The midi bank to set | Number | yes |
Example:
\track { instrument 25 bank 2 }
multiBarRestโ
Scope: Structural metadata
multiBarRest ()
Description: Enables the display of multibar rests if this track is shown as standalone.
Example:
\track { multiBarRest }
C4*4 | r.1 | r.1 | r.1 | C4 * 4
\track
C4*4 | r.1 | r.1 | r.1 | C4 * 4
\staffโ
Scope: Structural metadata
\staff ()
Description: Marks the start of a new staff.
The staff with the largest number of bars defines how long the overall song is. There is no need to manually ensure that all staves have the correct number of bars. AlphaTab will create missing empty bars automatically.
If no properties describing the visible notation are provided, the default is score tabs.
Example:
\track "Piano with Grand Staff" "pno."
\staff{score} \tuning piano \instrument acousticgrandpiano
c4 d4 e4 f4 |
\staff{score} \tuning piano \clef F4
c2 c2 c2 c2 |
\track "Guitar"
\staff{tabs slash} \capo 5
1.2 3.2 0.1 1.1
Properties:
scoreโ
Scope: Structural metadata
score lineCount
Description: Enable the display of standard notation.
Parameters:
| Name | Description | Type | Required |
|---|---|---|---|
lineCount | The number of staff lines | Number | no 5 |
Example:
\track
\staff {score 3}
D4 D4 D4 D4
\staff {score}
C4 C4 C4 C4
tabsโ
Scope: Structural metadata
tabs ()
Description: Enable the display of guitar tablature.
Guitar tabs are only shown if the contained notes are stringed/fretted notes.
Example:
\track
\staff {tabs}
3.3 4.3 5.3 5.5
slashโ
Scope: Structural metadata
slash ()
Description: Enable the display of slash notation.
Example:
\track
\staff {tabs slash}
3.3 4.3 5.3 5.5
numberedโ
Scope: Structural metadata
numbered ()
Description: Enable the display of numbered notation (Jianpu).
Example:
\track
\staff {score numbered}
C4 D4 E4 F4
\voiceโ
Scope: Structural metadata
\voice ()
Description: Marks the start of a new voice.
Unlike the structure in the data model, alphaTex expects you to define all bars of a voice, then all the bars of the next voice.
It structure is: \voice /* Voice 1 Bar 1*/ | /* Voice 1 Bar 2*/ oice /* Voice 2 Bar 1*/ | /* Voice21 Bar 2*/ Once a new voice starts, you again can define the notes starting from the first bar. alphaTab will try to consolidate inconsistencies in the number of bars across voices.
Example:
\track "Piano"
\staff{score} \tuning piano \instrument acousticgrandpiano
\voice
c4 d4 e4 f4 | c4 d4 e4 f4
\voice
c3 d3 e3 f3 | c3 d3 e3 f3
\track "Piano2"
\staff{score} \tuning piano \instrument acousticgrandpiano
\voice
c4 d4 e4 f4 | c4 d4 e4 f4
\voice
c3 d3 e3 f3