-
Notifications
You must be signed in to change notification settings - Fork 4
FR8X User Program File (.UPG)
The first three bytes of the file must be EF BB BF.
This is followed by 4 bytes with unknown significance. On most files this is 00 00 02 FA.
It is followed by the XML preamble: a block of XML with document element "Roland_Fr_UPS", an inner element SET giving the size (in bytes) of the data block - see below, followed by an index into the data block.
The index consists of a series of XML element where the element type gives the type of data chunk, and three attributes are included: size (gives the size of ''each record''), number (gives the number of records) and offset (gives the byte offset of the chunk ''from the start of the data block'' (not from the start of the file)).
Contents of data blocks are described below. Data blocks are packed bitwise. Numbers are stored and packed MSB-first. Because of the 7-bit packing, most of the ASCII values can't be read with a hex editor.
The blocks present in the file are:
- SC (set common) - also appears in FR-7x files but the FR-8x version is 78 bytes longer
- O_R - same properties as FR-7x - 26 records, probably registers (2 per key)
- OB_R - same properties as fr-7x - 7 records, probably bass registers
- OBC_R - same properties at FR-7x - 8 records, probably orchestra bass registers
- OFB_R - same properties as FR-7x - 8 records, probably free bass registers
- TR - same properties as FR-7x - 16 records which seem to correspond to registers, but there are only 14 registers. In file under test the extra two records are duplicates of the ACCORD and PICCOLO registers.
- BR - same properties as FR-7x
- BCR - same properties as FR-7x
- ORR - same properties as FR-7x, 26 records, probably registers (2 per key)
- OBR - 7 records, size is 42 on FR-8x but 32 on FR-7x
- OBCR - 8 records, size is 124 on FR-8x but 30 on fr-7x
- OFBR - 8 records, size is 118 on FR-8x but 24 on FR-7x
- ORCH1 - 28 records, new for FR-8x
- ORCH2 - 28 records, new for FR-8x
- SC2 - new for FR-8x, does not always appear (most probably on sets exported from 2.00 firmware)
This is based on the FR7x set file format. The FR8x SC block is substantially longer so has some unknown fields, and some may have been moved.
Item part length (bits) | Item part count | Field Name | Notes |
---|---|---|---|
7 | 4 | creator | 4 ASCII-coded chars, seems to be "FR-7" on default sets |
7 | 4 | type | 4 ASCII-coded chars, seems to be "FR7X" (even on FR-8X sets!) |
7 | 4 | ver | 4 ASCII-coded chars, 4-digit number expressed as a string |
7 | 4 | num | 4 ASCII-coded chars, seems to be all spaces on given sets |
7 | 8 | name | 8 ASCII-coded chars |
7 | 1 | reverb-character | |
7 | 1 | reverb-prelpf | |
7 | 1 | reverb-time | |
7 | 1 | reverb-delay | |
7 | 1 | reverb-predelay | |
7 | 1 | reverb-level | |
7 | 1 | reverb-selected | |
7 | 1 | chorus-prelpf | |
7 | 1 | chorus-feedback | |
7 | 1 | chorus-delay | |
7 | 1 | chorus-rate | |
7 | 1 | chorus-depth | |
7 | 1 | chorus-sendrev | |
7 | 1 | chorus-senddelay | |
7 | 1 | chorus-level | |
7 | 1 | chorus-selected | |
7 | 1 | delay-prelpf | |
7 | 1 | delay-time-center | |
7 | 1 | delay-time-ratio-left | |
7 | 1 | delay-time-ratio-right | |
7 | 1 | delay-level-center | |
7 | 1 | delay-level-left | |
7 | 1 | delay-level-right | |
7 | 1 | delay-feedback | |
7 | 1 | delay-send-reverb | |
7 | 1 | delay-level | |
7 | 1 | delay-selected | |
7 | 1 | master-bar-recall | |
7 | 1 | index-icon | |
7 | 1 | bassoon | 0-1 ? |
7 | 1 | edited | 0-1 ? |
15 | 1 | dummy | |
7 | 89 | unknown |