Hello and welcome to how to "enhance" osu-converted IA/VT beatmaps.
First of all let's see where the files for the beatmap are
Go to resource -> common -> songs
Here are the beatmap files:
_CIR file - Circle Data File
_CRV file - Curve Data File
_MID file - Note Data File
_TRD file - Track Data File
DX is the difficulty, where
X=1 - Easy
X=2 - Normal
X=3 - Hard
Let's take a look at the Circle Data File
In here you have different commands that you can use:
"set" - set the position of the circle
"move" - move the circle to position
"size" - change the size of the circle
The parameters for each command are:
"time" - Time in seconds at which the command is executed
"command" - The command itself
"position" - The position of the circle in [X,Y]. Visible area of the screen is:
X = [-0.475,0.475] Y = [-0.275,0.275]
"angle" - Angle of the circle in degrees. 0.0 is default.
"size" - The size of the circle. 0.07 is "normal" size. 0.38 is "normal" size for colorful mode. Adjust accordingly.
"move" command - Moves the circle to specified position. "time" and "position" parameters work the same as for "set" command.
"lerp" - Specifies the time in seconds it would take to complete the command. Lesser the number - faster the move, etc.
"size" command - Changes the size of the circle. "time" and "size" parameters work the same as for "set" command. "lerp" parameter works the same as for "move" command.
These are the basics of managing the CIR - Circle Data File.
Now let's take a look at the TRD - Track Data File.
In the "header" section, the midiTrack parameter controls the number of tracks available. At least 2 tracks (0 and 1) are required.
"debugSection" is not useful to us and can be omitted.
These 2 lines are always required at the start of the "track" section. Unfortunately it is currently unknown what "fixOn" and "pathTime" commands do exactly.
"track" sets the number of the track to add.
"command" - the command itself.
"curve" - sets the number of the curve to use from the CRV file.
"angle" - sets the angle of the track. 0 is a straight line and track rotates anti-clockwise.
"rotate" command rotates the track.
"track" and "angle" parameters work the same as in the "add" command. "lerp" parameter works the same as in the CIR file.
Now let's see how to engage Colorful mode.
"climaxMode" is the command that engages Colorful mode. At the same time in the CIR file you have to make the circle larger.
Unfortunately it is unknown what exactly "pathTime" does, but official songs seem to decrease "param1" value for the Colorful mode.
"scale" command scales the track. "param1" parameter is the scale factor. "lerp" parameter works the same as in the CIR file.
"del" command deletes the track from the screen. It is a good idea to create a new track for Colorful mode. That's why we delete previous tracks here.
"hidePath" command hides the track path, "param1" parameter works the same as "lerp" parameter in other commands.
"normalMode" turns off the Colorful mode. Once again, it is a good idea to delete the track and create a new one. Also set the "pathTime" back to what it was.
Now let's take a look at the CRV - Curve Data File.
In the "header" section the "nodeCount" parameter is the number of points that make up the curve.
"length" parameter sets the length of the track. 1.0 makes the track the width of the screen. 1.2 is "default" value.
It is not entirely known what lineDevideCount is but it changes the "blockyness" of the Bezier curves. 100 is the default value and shouldn't really be changed.
nodeSpringRatio and nodeDamperRatio don't seem to change anything visible, and shouldn't be changed from the default values.
"curve" section contains curve sections with number of "nodes" in them that corresponds to nodeCount. Numbering starts from 0. This is what is used in the "curve" paramter of the tracks.
"angle" parameter controls the angle of the "node". "isBezier" controls if the "node" will be treated as Bezier (smooth curve). If omitted, defaulted to true.
Now let's take a look at the MID - Note Data File. It is usually formatted as a single line. You can use a JSON formatter online to make it more readable.
MID file contains a "textMeta" sections that contains all the beats of the song. It is always track 0. It is generated by the converter even in the dummy file, so you don't have to worry about it.
The "note" section actually contains all the beatmap data of the song. The "event" paramter is always "note".
"data0" parameter sets the button to press.
60 - circle 72 - right
62 - cross 74 - down
64 - triangle 76 - up
65 - square 77 - left
67 - colorful note
"data1" is always 80 for regular notes. For multiple press colorful notes data1 starts at 127. Add 1 for each press, e.g. 129 = 3 presses.
For "duration", 120 is 1/4 note. Anything more than 120 will show up as a long press note.
"text" paramter is always empty for notes. "tick" is the start tick of a note. It is calculated via formula: round(noteStartTime/(60/BPM))*480.
"time" is the start time of the note.
"time_on_key_up" is calculated via formula:
noteEndTime = noteStartTime + (duration/120)*((60/BPM)/4).
"track" sets the track of the note. This corresponds to the track in the TRD file. This is how you can divide notes into different tracks and make double press notes.
And that's pretty much it for these files! Hopefully it wasn't too complicated, but I definetely don't recommend creating notes by hand
Defintely check out Nagato's tool for viewing the curves. It really helps when you're creating curves and tracks for the beatmap. (link in the description)
One last thing, one file that the converter doesn't create is the lyrics file. It is a .csv file that you can open with Excel (just take one from official song and edit it).
Second column is start minutes for the line, third column is start seconds for the line, fourth column is start milliseconds for the line.
Sixth column is end minutes for the line, seventh column is end seconds for the line,
eighth column is end milliseconds for the line and ninth column is the lyric line itself.
And that's it for this tutorial!