IBNK page. Feel free to overwrite with accurate information
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
IBNK (0x49424E4B)
|
|
0x04
|
UInt32
|
File size minus 0x08
|
|
0x08
|
Byte[3]
|
?
|
|
0x0B
|
UInt8
|
Bank ID
|
|
0x0C
|
Byte[3]
|
?
|
|
0x0F
|
Byte[1]
|
?
|
|
0x10
|
Byte[16]
|
Padding?
|
|
INST Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
INST (0x494E5354)
|
|
0x04
|
UInt32
|
Section size minus 0x08
|
|
0x08
|
UInt32
|
Amount N of Inst sections
|
|
0x0C
|
|
Start of first Inst section
|
|
Inst Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
Inst (0x496E7374)
|
|
0x04
|
UInt32
|
?
|
|
0x08
|
UInt32
|
?
|
|
0x0C
|
UInt32
|
?
|
|
0x10
|
UInt32
|
Amount N of Keyboard sections
|
|
0x14
|
|
Start of first Keyboard section
|
|
0x14+N*0x18
|
Float
|
Keyboard global volume
|
|
0x14+N*0x18+0x04
|
Float
|
Keyboard global pitch
|
|
Keyboard section (size 0x18)
Offset
|
Type
|
Description
|
Notes
|
0x00
|
UInt8
|
Highest key of current keyboard
|
Cannot be higher than 7F. Lowest key of next keyboard (if exists) is this value + 0x01.
|
0x01
|
Byte[6]
|
?
|
|
0x07
|
Byte[1]
|
?
|
|
0x08
|
UInt8
|
Velocity
|
|
0x09
|
Byte[3]
|
?
|
|
0x0C
|
UInt16
|
Bank ID
|
|
0x0E
|
UInt16
|
Wave ID
|
|
0x10
|
Float
|
Volume
|
|
0x14
|
Float
|
Pitch
|
|
PMAP Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
PMAP (0x504D4150)
|
|
0x04
|
UInt32
|
Section size minus 0x08
|
|
0x08
|
UInt32
|
Amount N of Pmap sections
|
|
0x0C
|
|
Start of first Inst section
|
|
Pmap Section (Size 0x28)
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
Pmap (0x506D6170)
|
|
0x04
|
Float
|
?
|
|
0x08
|
Float
|
?
|
|
0x0C
|
Float
|
?
|
|
0x10
|
Byte[7]
|
?
|
|
0x17
|
Byte[1]
|
?
|
|
0x18
|
UInt8
|
Velocity
|
|
0x19
|
Byte[3]
|
?
|
|
0x1C
|
UInt16
|
Bank ID
|
|
0x1E
|
UInt16
|
Wave ID
|
|
0x20
|
Float
|
?
|
|
0x24
|
Float
|
?
|
|
PERC Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
PERC (0x50455243)
|
|
0x04
|
UInt32
|
Section size minus 0x08
|
|
0x08
|
UInt32
|
Amount N of Perc sections
|
|
0x0C
|
|
Start of first Inst section
|
|
Perc Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
Perc (0x50657263)
|
|
0x04
|
UInt32
|
Amount N of entries
|
|
0x08
|
|
Start of entries
|
|
Perc entry
Offset
|
Type
|
Description
|
Notes
|
0x00
|
UInt32
|
Offset to Pmap section relative to file beginning.
|
Many entries can be found holding no offset (0x00000000).
|
LIST Section
Offset
|
Type
|
Description
|
Notes
|
0x00
|
String[4]
|
LIST (0x4C495354)
|
|
0x04
|
UInt32
|
Section size minus 0x08
|
|
0x08
|
UInt32
|
Amount N of entries
|
|
0x0C
|
|
Start of entries
|
|
List entry
Offset
|
Type
|
Description
|
Notes
|
0x00
|
UInt32
|
Offset to Inst or Perc section relative to file beginning.
|
Many entries can be found holding no offset (0x00000000). The position of an entry in this list defines the Program ID. It starts counting at 0.
|