NW > Sound Files > Bank File (FBNK)

This file contains instrument definitions. Every instrument references a wave file in a wave archive. Bank files are used by sequence sounds.

Block idDescription
0x5800Info block

Info Block

OffsetSizeDescription
0x04Identifier ("INFO")
0x44Block size
0x88Reference to wave id table (0x0100)
0x108Reference to instrument reference table (0x0101)

Instrument Reference Table

OffsetSizeDescription
0x04Number of entries
0x4References to instruments (0x5900)

Instrument

OffsetSizeDescription
0x08Reference table for key regions (0x5901)

Key Region

OffsetSizeDescription
0x08Reference table for velocity regions (0x5902)

Velocity Region

OffsetSizeDescription
0x04Unknown
0x44Flags. This field specifies which of the following fields is present.

Every optional field takes up exactly 4 bytes (if present).

FlagDescription
0x1Original key
0x2Volume
0x4Pan
0x8Pitch
0x100x00XXYYZZ: XX = Interpolation type, YY = Key group, ZZ = Ignore note off
0x200Offset to reference to adshr curve (0x0000)

Region Reference Table

Every instrument has a bunch of key regions which are further divided into velocity regions. All note commands in a sequence sound specify a 'key' and 'velocity' value, which ultimately decide which key region and velocity region are chosen.

OffsetSizeDescription
0x08Reference to region info (0x6000, 0x6001 or 0x6002)

Type 0x6000 is stored as follows:

OffsetSizeDescription
0x08Reference to region

Type 0x6001 is stored as follows:

OffsetSizeDescription
0x01Region number 1
0x11Region number 2
...
Padding to align to 8 bytes
8Reference to region 1
8Reference to region 2
...

Type 0x6002 is stored as follows:

OffsetSizeDescription
0x01First region number
0x11Last region number
0x26Padding
0x8References to regions