UltraStar Text File Formatting

In my previous post I wrote about Performous, a great Linux software that lets you have an experience similar to playing SingStar games. I also promised to go more in-depth about the process of creating your own songs.

Now the time has come. But first I want to explain some basics of the UltarStar text file formatting.

If you get an UltarStar file (e.g. from USDB) and open it in a text editor, you will see something like this:

#MP3:Opeth – Windowpane.mp3
#EDITION:Progressive Metal
#GENRE:Progressive Metal
: 387 4 -4 Blank
: 391 4 -4 face
: 395 2 -4 in
: 397 4 -6 the
: 401 4 -6 window
: 405 10 -8 pane
– 425
: 451 4 -8 Made
: 455 4 -4 clear
: 459 2 -4 in
: 461 4 -6 se
: 465 4 -6 conds
: 469 4 -6 of
: 473 22 -6 light
– 498

Every line that start with “#” is a tag. There are more possible tags than you can see above. Some of them are essential, while others are completely optional.

The tags #ARTIST, #TITLE and #GENRE are quite self-explanatory. These tags define how the song will appear in Performous, as you can sort your songs by artist, title or genre.

The #MP3 tag is essential and should contain the exact name of the audio file you will be using.

You can also use the tags #COVER, #VIDEO and #BACKGROUND to specify the cover image (the image that will appear on the song selection screen), the music video that will be displayed as the song plays and/or the background image. If you put a music video, the value of the #BACKGROUND tag will be ignored. If there is no video and no background image, Performous will select one of the few predetermined background images.

Two really important tags are #BPM and #GAP.

The #BPM tag specifies the tempo in beats-per-minute (hence the name). It does not have to match the tempo of the song. E.g. you may want to double the song’s BPM and note lengths in order to have a smoother flow. Don’t worry, if you don’t understand what I’m writing about here. I will try to explain this tag in more detail in my next article.

The #GAP tag specifies the number of milliseconds that pass before the first note of the song (beat 0).

If your file contains a #VIDEO tag, you can also specify a #VIDEOGAP tag to syncronize your video with the audio. The value of #VIDEOGAP tag is in seconds (not in milliseconds!). Positive value means that the audio starts playing after the video. Negative value means that the video starts playing after the audio.

After the tags come the lines containing the information about all the notes of the song to be sung.

The first character of the line specifies what kind of a note it is. “:” means normal note, “*” means golden note, “F” means freestyle note (it means the tone of the note won’t be checked, usually used for spoken words), “-” means line break (when the lyrics line disappears).

The second part of the line specifies the number of the beat.

The third part is the length of the note.

The fourth part is the tone of the note.

The last part is the word or the syllable to be sung.

That is all for today. In my next post I will be explaining the process of creating an UltraStar file from scratch.

Stay tuned!


One thought on “UltraStar Text File Formatting

  1. Pingback: How to Install SongEasy on Ubuntu with PlayOnLinux – Nocturnal Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s