1
0
mirror of synced 2024-11-23 22:30:57 +01:00
Chunithm-Research/Music.md

5.5 KiB

This is a general documentation of the Music.xml file present in every music folder under the path root¥app¥data¥AXXX¥music¥musicXXXX¥Music.xml.

Overview

Music.xml is a singular file that is in the same folder as the charts for a specific song. This file is essentially the metadata of the song, and provides the game with nearly all information about the song excluding the chart itself. Note that this documentation will not include the structure of the entire XML file, only the meanings of it. To create your own Music.xml file, use a preexisting one as a template, then use the specifications listed here.

The Music.xml files in this game make frequent use of a stock array layout, shown below:

<id></id>
<str></str>
<data />

Any references to a "stock array" will mean that there is this array format within the value, with the <id> and <str> tags having their values specified. <data /> will never contain any values, and will always be formatted as such.

Tags

dataName

The <dataname> tag will have a single value named after the parent folder, usually musicXXXX.

formatVersion

The <formatVersion> tag will always have a value of 10000.

resourceVersion

The <resourceVersion> tag always contains a stock array with an <id> value of 0 and a <str> value of 10000.

netOpenName

The <netOpenName> tag contains a stock array with unknown values. A possible explanation is that these values signify the update that the song was originally added to the game from.

disableFlag

The <disableFlag> tag has a value of either false or true. Enabling the disableFlag will make it so that the song does not appear on the song selection screen.

exType

The <exType> tag has a value of an integer between 0 and 2. With a value of 0, the song becomes a normal song that can be selected from the song selection screen. With a value of 1, the song becomes a tutorial song. With a value of 2, the song becomes a WORLD'S END song.

name

The <name> tag contains a stock array with an <id> value equal to the last 4 digits of the parent folder's name, removing any preceeding 0s, and a <str> value containing the name of the song as it will appear in-game.

rightsInfoName

The <rightsInfoName> tag contains a stock array with an <id> value equal to the corresponding rightsInfo file in the root¥app¥data¥AXXX¥rightsInfo¥rightsInfoXXXXXX folder, removing any preceeding 0s, and a <str> value containing the name of the rights holder as it appears in the RightsInfo.xml file's name tag (not how it appears in-game). If the song does not need a rights disclaimer, then the <id> has a value of -1 and the <str> has a value of Invalid.

sortName

The <sortName> tag contains the name of the song in a format that can be sorted alphabetically. All Latin characters become capitalized, and all punctuation and spaces are removed. For titles in Japanese, all hiragana and kanji are converted into their katakana counterpart.

artistName

The <artistName> tag contains a stock array with an <id> value equal to the ID of the artist, and a <str> value of the name of the artist as it will appear in-game. If the artist was not previously used in a song, it should be given the same ID as the song. If an artist was previously used, it should be given the same ID as the artist ID used in those previous songs.

genreName

The <genreName> tag contains a <list> tag, which contains a <StringID> tag, which contains a stock array, with an <id> value equal to the ID of the genre in question according to the GenreSort.xml file found in root¥app¥data¥AXXX¥music, and a <str> value equal to the name of the genre as it appears in the GenreSort.xml file.

worksName

The <worksName> tag contains a stock array, with an <id> value equal to the ID of the work that the song originates from, and a <str> value equal to the name of the work in question. This follows the same specifications as <artistName>. If the song does not need a rights disclaimer, then the <id> has a value of -1 and the <str> has a value of Invalid.

jaketFile

The <jaketFile> tag contains a <path> tag, with a value equal to the name of the file that contains the jacket of the song, usually found in the same directory as the Music.xml file.

firstLock

The <firstLock> tag has a value of either false or true. If the value is true, then the song will not be listed on the song selection screen unless specific criteria has been fulfilled to unlock the song.

priority

The <priority> tag always has a value of 0. With a value of 1, there does not appear to be any difference.

cueFileName

The <cueFileName> tag contains a stock array with an <id> value equal to the ID of the cueFile as seen in the CueFile.xml file found in root¥app¥data¥AXXX¥cueFile¥cueFileXXXXXX.

previewStartTime

The <previewStartTime> tag contains an integer that designates the location in the song, in milliseconds, that the preview, the part of the song that plays when the song is highlighted on the song selection screen, will start.

previewEndTime

The <previewEndTime> tag contains an integer that designates the location in the song, in milliseconds, that the preview will end. After ending, it will loop back to the <previewStartTime>.

Todo: worldsEndTagName, starDifType, stageName, and fumens array.