diff options
Diffstat (limited to 'fm_banks/ibk_files/ibk/IBK.H')
-rw-r--r-- | fm_banks/ibk_files/ibk/IBK.H | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/fm_banks/ibk_files/ibk/IBK.H b/fm_banks/ibk_files/ibk/IBK.H new file mode 100644 index 0000000..450e7b6 --- /dev/null +++ b/fm_banks/ibk_files/ibk/IBK.H @@ -0,0 +1,57 @@ +/* IBK.H - Definitions for SBTimbre Bank File +** Jamie O'Connell - 91.01.13 +** Modified 92.06.28 JWO - It seems CL is now using the 12th byte as a +** percussion voice indicator +** Modified 93.07.02 JWO - Added transpos parameter to IBK timbre +** Modified 93.10.11 JWO - Added Percussion Pitch +*/ + +#ifndef IBK_H +#define IBK_H + +#define IBKEXT "IBK" +#define SBIEXT "SBI" + +#define SBISIG "SBI\x1A" /* 4 chars long */ +#define IBKSIG "IBK\x1A" /* 4 chars long */ + +/* Packed Timbre Parameters */ + +typedef struct { /* 16 Bytes each */ + BYTE modchar; /* AM, VIB, SUS, KSR, MUL */ + BYTE carchar; + BYTE modscal; /* KSL, TL */ + BYTE carscal; + BYTE modad; /* Attack/Decay */ + BYTE carad; + BYTE modsr; /* Sustain/Release */ + BYTE carsr; + BYTE modwave; /* Wave Select */ + BYTE carwave; + BYTE feedback; /* FB, Connection *(inverse of Adlib)* <- not true? */ + /* The following was originally reserved...CL uses */ + /* the next byte the same way we do: BD=6,SD=7,TT=8 */ + /* CY=9,HH=10 */ + BYTE percvoc; /* Percussion voice number : JWO */ + char transpos; /* Number of notes to transpose timbre, signed: JWO */ + BYTE dpitch; /* percussion pitch: MIDI Note 0 - 127 : JWO */ + BYTE rsv[2]; /* unsused - so far */ + } SBTIMBRE; + +/* SBI Instrument file */ + +typedef struct { + char sig[4]; /* signature: "SBI\x1A" */ + char name[32]; /* instrument name: NUL Terminated */ + SBTIMBRE snd; /* instrument parameters */ + } SBIFMT; + +/* IBK Instrument Bank File */ + +typedef struct { /* 3204 Bytes (0x0C83) */ + char sig[4]; /* signature: "IBK\x1A" */ + SBTIMBRE snd[128]; /* Instrument block */ + char name[128][9]; /* name block: NUL terminated strings */ + } IBKFMT; + +#endif |