Serves as a common data container for singing synthesis software, using JSON format. Supports multiple programming languages with conventions for timing, pitch, and musical notation.
The .ufdata format doesn't prescribe detailed specifications for the values it contains, but there are common conventions for some types based on the support of most formats by UtaFormatix:
Tick: Each tick represents 1/480 of a beat, aligning with a typical MIDI resolution of 480 ticks per beat. This resolution facilitates precise timing details in musical data. If working with other formats (e.g., Standard MIDI) that use different resolutions, it is crucial to convert tick resolutions accordingly.
Key: The key values correspond to MIDI key numbers, with . This standard provides a reference point for middle C, facilitating an understanding of note pitches in relation to standard musical notation.
Data structure
The data is stored as JSON with file extension .ufdata.
Sample
Root (Document) object
Variable name
Description
Type
formatVersion
The version code of the ufdata structure
int32
project
Project object
Track object
Note object
Pitch object
Only points with changed values are included.
e.g. [(1, 1.0), (4, 3.0)] implies ticks between (in this case, 2 and 3) have the same value of 1.0.
Time signature object
Variable name
Description
Type
measurePosition
Tempo object
Variable name
Description
Type
tickPosition
Tick position of the tempo change
int64
bpm
Tempo in beats-per-minute
int32
C4 = 60
Lyric and Phoneme: There are no fixed standards for lyrics and phonemes; their representations can vary across different formats.