🗒️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

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). The spaces dividing the words can be either placed before the first syllable of the new word (as long as it is not the first word in the line) or after the last syllable of the previous word (apart from the final word in the line). Both approaches are equally OK, just do not mix both in one file.

Karedi uses spaces before words approach while saving. If you want to use spaces after words, it can be changed in the preferences.

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
#P1:Ashley Jana
#P2: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