diff --git a/papers/newIns.md b/papers/newIns.md index 4baab71e1..dbc1e4f2d 100644 --- a/papers/newIns.md +++ b/papers/newIns.md @@ -4,6 +4,32 @@ the main issue with Furnace instrument files is that they are too big, even if t the aim of this new format is to greatly reduce the size of a resulting instrument. +# information + +this format is "featural", meaning that only used parameters are stored (depending on instrument types). +this is the biggest improvement over the previous format, which stored everything including unused parameters. + +features which are not recognized by Furnace will be ignored. + +instruments are not compressed using zlib, unlike Furnace songs. + +all numbers are little-endian. + +the following fields may be found in "size": +- `f` indicates a floating point number. +- `STR` is a UTF-8 zero-terminated string. +- `???` is an array of variable size. +- `S??` is an array of `STR`s. +- `1??` is an array of bytes. +- `2??` is an array of shorts. +- `4??` is an array of ints. + +the format may change across versions. a `(>=VER)` indicates this field is only present starting from format version `VER`, and `(