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 |