🗒️TXT file format

How the song's data is stored in a file?

Overview

All information about the song - both the metadata (artist, title, bpm, gap etc.) and the actual transcription of the vocal line - are defined in one txt file.

The txt file consists of:

  • list of tags,

  • one or more encoded vocal tracks consisting of:

    • one or more encoded notes separated by line breaks,

  • end of song symbol.

Metadata

Metadata is written in the form of tags. Tags are written one per line in the following format:

#KEY:VALUE

e.g.

#ARTIST:David Amber
#TITLE:Second Time Around

You can find the list of standard tags with their definitions here.

Vocal line transcription

Note format

Each note is written in a single line - as a list of its properties separated by spaces:

<note_type_symbol> <start_beat> <duration> <pitch> <lyrics>

e.g.

: 0 3 5 Can

Note types

Note typeSymbolDescription

Standard

:

Standard note, pitch is assessed while singing.

Golden

*

Same as standard but worth more points.

Freestyle

F

Neither timing nor pitches are assessed. Not singable, only lyrics are displayed.

Rap

R

Only timing is assessed, every pitch is treated as valid.

Golden rap

G

Same as rap but worth more points.

Start beat

When the note should start defined in beats. Beat length in milliseconds is determined from BPM value.

Duration

Duration of the note defined in beats.

Pitch

Pitch is encoded as a number from -60 to 67 range where 0 represents middle C (C4). The numbers are assigned sequentially and increase together with the pitch height so:

...
-2 corresponds to A♯3
-1 corresponds to B3 (also called H3)
0 corresponds to C4
1 corresponds to C♯4
2 corresponds to D4
...

Lyrics

Lyrics assigned to this note (usually single syllable). If this note begins a new word, the lyrics start with a space character.

Line breaks format

Line breaks separate groups of notes that should be displayed at the same time - as a single phrase for the player to sing. Each line break defines the moment (in beats) in which the following line of the song should be displayed.

Format:

- <position_in_beats>

e.g.

- 60

Track format

Each track consists of a chronological list of notes separated by line breaks. If the song has multiple tracks, the player number header should be used before each track.

If your song has a single track, skip the player header.

Header format:

P <player_number_starting_from_1>

e.g

P 1

Example

Single-player

#ARTIST:David Amber
#TITLE:Second Time Around
#MP3:David Amber - Second Time Around.mp3
#COVER:David Amber - Second Time Around [CO].jpg
#BACKGROUND:David Amber - Second Time Around [BG].jpg
#VIDEO:David Amber - Second Time Around.mp4
#BPM:392.08
#GAP:5224
#YEAR:2015
#LANGUAGE:English
: 0 3 5 Can
: 8 3 2  we
: 16 6 5  start
: 24 3 5  o
: 28 13 7 ~
: 42 4 5 ~
: 48 9 5 ver
- 60
: 62 5 5 or
: 71 2 2  is
: 79 3 5  this
: 87 6 7  real
: 96 5 9 ly
: 104 3 7  the
: 111 6 5  end
- 124
: 127 4 5 And
: 136 5 2  now
: 144 6 5  I
: 152 3 5  won
: 156 10 7 ~
: 168 6 5 ~
: 176 6 5 der
E

Duet:

#ARTIST:David Amber
#TITLE:Second Time Around
#MP3:David Amber - Second Time Around.mp3
#COVER:David Amber - Second Time Around [CO].jpg
#BACKGROUND:David Amber - Second Time Around [BG].jpg
#VIDEO:David Amber - Second Time Around.mp4
#BPM:392.08
#GAP:5224
#YEAR:2015
#LANGUAGE:English
#DUETSINGERP1:Ashley Jana
#DUETSINGERP2:Raymond Lee
P 1
: 0 3 5 Can
: 8 3 2  we
: 16 7 5  start
* 24 3 5  o
* 28 12 7 ~
: 41 5 5 ~
: 48 9 5 ver
- 60
: 62 5 5 or
: 71 2 2  is
: 79 3 5  this
: 87 6 7  real
: 96 5 9 ly
: 104 3 7  the
: 111 6 5  end
- 124
: 127 4 5 And
: 136 5 2  now
: 144 6 5  I
: 152 3 5  won
: 156 10 7 ~
: 168 6 5 ~
: 176 6 5 der
P 2
: 544 3 0 I
: 551 13 -5  know
: 566 6 -5  that
: 574 5 -5  I
: 581 12 -7 ~
: 599 5 -2 've made
: 608 4 -3  some
: 616 2 -5  mis
* 624 7 -5 takes
* 632 1 -4 ~
* 635 4 -5 ~
: 640 14 -7 ~
: 655 2 -10 ~
- 667
: 671 7 0 You
: 680 12 -5  were
* 695 1 -7  all
* 697 3 -5 ~
: 703 13 -5  give
: 719 4 -7  and
E

Last updated