Ultrastar TXT file format

Started by Renard, June 12, 2012, 04:53:20 AM

Previous topic - Next topic

0 Members and 11 Guests are viewing this topic.

Renard

https://thebrickyblog.wordpress.com/2011/01/27/ultrastar-txt-files-in-more-depth/

#TITLE: Title of the song
#ARTIST: Artist behind the song
#MP3: The name of the MP3 being used for this song. Must have a .mp3 extension included here
#GAP: The amount of time, in milliseconds, before the lyrics start. This allows for any instrumental (or other type of) introduction to the song. It is important to note the number of the first note below. If it is not 0 (which is rare) then the #GAP will be less straightforward. If the lyrics aren't set to start until 8 beats into the song, but the singing starts straight away, then the #GAP may need to be set to a negative number, to force the lyrics to start early.
#BPM: Beats per minute. This signifies the rate at which the text should display. Put simply, fast songs have a higher BPM, slow songs have a lower BPM. To complicate it slightly, the BPM can be upped for slower songs as long as more beats are added in the main body of the song below. If the BPM of a song is high then it generally means a good, smooth .txt file with more attention to subtle changes in tone. But if that means nothing to you, then you don't need to worry about this tag. If it is a good .txt file, then it won't need changing.
#GENRE: The genre of the song. As UltraStar has a 'sort by genre' option, it's a useful tag to use. That, and the search option uses the word(s) in the #GENRE tag when you're on the song selection screen, so you can automatically find all 'rock' songs, for example, if you use this tag.
#EDITION: Typically refers to the SingStar edition, if applicable, that the .txt file is taken from. For organisational purposes, it's good to leave this tag in.
#COVER: Typically the single/album art appropriate for the song, to be displayed on the song selection screen. This is not necessary but it does brighten up the look of the game (and makes certain songs identifiable when not selected). This must be in .jpg format and the .jpg extension must be displayed here.
#VIDEO: The name of the video file used for this song. Must have the file extension included out of the many types of video file that UltraStar accepts.
#BACKGROUND: If you don't have a video file, then you may prefer to have a background image displayed instead of a plain background or visualization. This must be in .jpg format and should have the .jpg extension attached. If the song is set to have a #VIDEO file and is linked in properly, then this tag is disregarded. If the .txt is set to have a #VIDEO but the video is not linked in properly for whatever reason, then the game will automatically display the background image.
#RELATIVE: This is an unusual tag that I will talk about later. It is simply set to YES or NO. If it is set to YES, then it specifies a particular format of .txt file that functions in a different way to a typical .txt file. If the tag is absent, or is set to NO, then the .txt file functions as the others do. It is essential for this tag to be applied on a relative .txt file (these are rare. If you find one on USDB then the tag will be readily applied anyway).





A few things to note:

  • That file should always use ANSI encoding with CRLF (Windows compatibility)
  • The #GAP: should always be 0 in the final releases
  • The #CREATOR: tag should be used to credit who synced the song
  • Should we fill the #EDITION: tag with "My Little Pony"?
  • #GENRE: should be "soundtrack" - maybe we could set something a little more specific here?

Renard

#1
The lack of official documentation (I'm not aware of any, at least) on the file format makes things confusing.

Here's a rundown of every available tags I found so far. All of them can be used; if by any chance a game doesn't understand one of them, it will ignore it.

Two things to note:
- I do know that some of those tags exist, but have no idea of the format they actually use or what they're for. Such tags include: #ID, #LENGTH, #VERSION
- The #UPDATED tag is something I wanted to include (before knowing a #VERSION tag existed). I'm not too keen on version numbers, and think a timestamp is often more relevant. It isn't used by any of the karaoke games, but I'm thinking this could make songs easier to track once released. Unsure yet on how do to it properly, if that's even relevant.



Basic information
#TITLE:
#ARTIST:

Some metadata about the TXT itself
#CREATOR:
#VERSION:
#UPDATED:
?#ENCODING: (can be "UTF8" when using non-ISO characters)

Detailed info for each song; used for classification within the game
#EDITION:
#GENRE:
#LANGUAGE:
#ALBUM:
#YEAR:

Files used by the song (filename.ext)
#COVER:
#MP3:
#BACKGROUND:
#VIDEO:

Technical info about the song
#BPM:
#LENGTH:
#END:(in beats)
#GAP:
#VIDEOGAP:
#PREVIEWSTART:

Unknown usage
#RESOLUTION:
#ID: