From 38cccbe351a25fad4f1ecac00290011041e5ea65 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 21 Nov 2022 05:43:15 -0500 Subject: [PATCH] update newIns.md --- papers/newIns.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/papers/newIns.md b/papers/newIns.md index 4baab71e..dbc1e4f2 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 `(