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 |
| Bytes | Example | Description |
| 2 | 0x0000 | Number of fields |
| [x] | [...] | Metadata fields |
| 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 |
| 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 |