QEMZ Format

Some additions were added for Rhythia, making QEMZ the main format for objects in the RHYM is to be planned.

Data Types

u8 value Description
0x00 u8 Byte
0x01 i16 16-bit signed integer
0x02 u16 16-bit unsigned integer
0x03 i32 32-bit signed integer
0x04 u32 32-bit unsigned integer
0x05 i64 64-bit signed integer
0x06 u64 64-bit unsigned integer
0x07 f32 32-bit floating point
0x08 f64 64-bit floating point
0x09 string u16 unsigned integer + utf8
0x0A longString u32 unsigned integer + utf8
0x0B buffer i16 unsigned integer + byte array
0x0C longBuffer i32 unsigned integer + byte array
0x0D Array u16 unsigned integer + data array
0x0E Array i32 unsigned integer + data array
Bytes Example Description
4 0x4E59414D File Signature b"NYAM"
2 0x0100 Version number

Path Block

Bytes Example Description
2 0x0000 Number of fields
[x] [...] Path fields
Default path block fields
Name Description
audio (Optional) relative audio path
video (Optional) relative video path
cover (Optional) relative cover path

Metadata Block

Bytes Example Description
2 0x0000 Number of fields
[x] [...] Metadata fields

Metadata Field

Bytes Example Description
2 0x05 Byte length identifier
[x] "title" Field identifier as string
1 0x00 Type of field's value
[x] 0x05 Field value

Default Metadata Fields

Name Datatype Description Default
id i64 Online ID of the map non-online maps are default -1
hash string Md5 hash of the objects data field None
title string Title of the map None
title_romanized string Romanized title of the map title
artist string Artist of the map None
artist_romanized string Romanized artist of the map artist
length u32 last object in the map 0
difficulty u8 Difficulty of the map 0
difficulty_name string Name of the difficulty None
note_count u32 Total notes in map 0
object_count u32 Total objects in map 0
artist_link string Link to the artist following None
artist_platform string Name of the platform of the artist None
mappers Array[i64, string] Online ID and Name of the mappers for the map
Online ID defaults to -1 if mapper does not submit online
None

Object Block

Bytes Example Description
1 0x00 Object Id
2 0x0000 Length of string object name
[x] [....] Object name
1 0x02 Length of object types
[x] 0x07, 0x07 Data of the object

Object Data

Bytes Example Description
8 0x0000000000000000 Timestamp as 64-bit floating point
[x] [x] Object data as defined in the object block

Default Object Data Types

Object Id Name Types Defaults
0 Note 0x07
0x07
0
0
1 Timing Point 0x07 0
Powered by Forestry.md