VSQ file format

The Voice Sequence (VSQ) file format is the file format used to store musical note and vocal data for the Vocaloid2 software.

It is based off the Standard MIDI and Windows INI file formats. The Standard MIDI file format is described in the official specification. The actual vocal data is stored in the file as a series of MIDI "text" messages that, when concatenated, form an INI document. The basic format of INI sections and properties are discussed in the relevant Wikipedia article.

This article will attempt to document the INI sections and properties that are used in the Vocaloid VSQ file format. Note that this is not an exhaustive list; these sections and properties have been documented only by pure observation in a hex editor and so far there is no known "official" documentation for this format. Therefore, some properties might not even have a description if their purpose is unknown. Please contribute to this article if you have the time, expertise, and desire to research this valuable information!

Common
The Common section contains information about the application and synthesis engine used. The properties seen in this section include:
 * Version The version number of the synthesis engine.
 * Name The name of the track, displayed at the bottom of the VOCALOID2 editor.
 * Color The background color of the track button.
 * DynamicsMode
 * PlayMode

Master
The Master section has only been known to contain one property, and as of this writing its purpose is unknown.
 * PreMeasure

Mixer
The Mixer section contains information about the synthesizer mixer and its attributes. The properties seen in this section include:
 * MasterFeder
 * MasterPanpot The amount of panning (or "balance" between the left and right channel in a stereo audio track) to apply to the master track.
 * MasterMute Presumably, a feature to mute the entire track, although this has not been tested.
 * OutputMode
 * Tracks The number of tracks contained in this sequence.
 * Feder#
 * Panpot# Individual track panning (or "balance" between the left and right channel in a stereo audio track). The # is the zero-based index of the track on which to apply the panning.
 * Mute# Individual track muting, although this has not been tested. The # is the zero-based index of the track on which to apply the panning.
 * Solo# Individual track "solo" mode. Set to 1 if all tracks (except this and other tracks that have Solo# set to 1) should be muted.

EventList
The EventList section, and the following ID# sections, are the most important parts of the VSQ file. They outline the Vocaloid-specific commands that are being sent. Each property in the EventList section is a number that corresponds to the time at which to issue the event, and is assigned a value of ID#XXXX where XXXX is a four-digit, zero-based index of an event group described in the following section.

ID#XXXX
The ID#XXXX sections contain information about a particular VOCALOID-specific command. The properties differ depending on the value of the Type property. Currently known Types and their respective properties are listed below.

Singer

 * IconHandle A handle to another section that provides more information on the current singer.

Anote

 * Length The note length. Units are currently unknown.
 * Note# The number of the specific note. Integer values and their corresponding musical notes are currently unknown.
 * Dynamics
 * PMBendDepth The portamento depth, or by how much to pitch-bend the current note.
 * PMBendLength The portamento length, or how long a pitch-bend for the current note lasts.
 * PMbPortamentoUse
 * DEMdecGainRate
 * DEMaccent The accent value of the Note Expression property.
 * LyricHandle A reference to another section that provides more information on the current note's lyric properties.
 * VibratoHandle A reference to another section that provides more information on the current note's vibrato properties.
 * VibratoDelay

h#XXXX
The h#XXXX sections are referenced from other properties. Their properties depend on the property that they are being referenced from.

IconHandle

 * IconID The unique ID of the current singer.
 * IDS The friendly name given to the current singer (e.g. "Miku").
 * Original The original Program Change (PC) MIDI command issued for the current singer.
 * Caption
 * Length
 * Language
 * Program The current Program Change (PC) MIDI command issued for the current singer.

LyricHandle

 * L0 A comma-separated list of five values. The first value is the lyric (ex: "a", "ru", "se"). The second value is the phoneme (ex: "a", "4 M", "s e"). The third, fourth, and fifth values are unknown.

VibratoHandle

 * IconID
 * IDS The friendly name given to the current vibrato preset (e.g. "normal").
 * Original
 * Caption
 * Length The duration of the vibrato.
 * StartDepth The starting depth of the vibrato.
 * DepthBPNum
 * StartRate The starting rate of the vibrato.
 * RateBPNum