IBK Format

From ModdingWiki
Jump to: navigation, search
IBK Format
Format typeMusic
Notation typeInstrument-only
Max channel count9
Max track count0
Max pattern countUnknown
Max order countUnknown

The IBK (Instrument Bank) Format was created to store up to 128 instruments suitable for playback on a sound card with an OPL2 or OPL3 chip. The 128 instrument limit was most likely chosen so that a single IBK file could store all the instruments for a General MIDI song.

File format

The file is structured as follows:

Data type Name Description
char[4] signature "IBK" followed by 0x1A
BYTE[16][128] inst 128 instrument settings, 16 bytes each (see below)
char[9][128] names 128 instrument titles (each must be NULL-terminated, giving 8 visible chars max)


Each instrument is in the following format. This is identical to the format used for the instrument block in CMF Format files. Each individual instrument is the same as in the SBI Format.

Data type Name OPL base register Description
UINT8 iModChar 0x20 Modulator characteristic (Mult, KSR, EG, VIB and AM flags)
UINT8 iCarChar 0x23 Carrier characteristic (Mult, KSR, EG, VIB and AM flags)
UINT8 iModScale 0x40 Modulator key scaling/output level
UINT8 iCarScale 0x43 Carrier key scaling/output level
UINT8 iModAttack 0x60 Modulator attack/decay level
UINT8 iCarAttack 0x63 Carrier attack/decay level
UINT8 iModSustain 0x80 Modulator sustain/release level
UINT8 iCarSustain 0x83 Carrier sustain/release level
UINT8 iModWaveSel 0xE0 Modulator wave select
UINT8 iCarWaveSel 0xE3 Carrier wave select
UINT8 iFeedback 0xC0 Feedback/connection
BYTE[5] Padding to bring instrument definition up to 16 bytes

Percussive instruments

There is no indication as to whether a given instrument should be played in melodic or percussive mode. Playing an instrument destined for one mode in the other usually sounds quite bad.


  • SBTimbre - instrument editor using IBK as its primary format