diff options
Diffstat (limited to 'utils/gen_adldata/file_formats')
-rw-r--r-- | utils/gen_adldata/file_formats/load_ail.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bisqwit.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bnk.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bnk2.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_ea.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_ibk.h | 38 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_jv.h | 2 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_op2.h | 3 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_tmb.h | 4 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_wopl.h | 3 |
10 files changed, 45 insertions, 15 deletions
diff --git a/utils/gen_adldata/file_formats/load_ail.h b/utils/gen_adldata/file_formats/load_ail.h index 7f4d7ea..80ca8ad 100644 --- a/utils/gen_adldata/file_formats/load_ail.h +++ b/utils/gen_adldata/file_formats/load_ail.h @@ -92,6 +92,7 @@ static bool LoadMiles(const char *fn, unsigned bank, const char *prefix) tmp2.real4op = (inscount > 1); tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; std::string name; if(midi_index >= 0) name = std::string(1, '\377') + MidiInsName[midi_index]; size_t resno = InsertIns(tmp[0], tmp[1], tmp2, name, name2, twoOp); @@ -103,7 +104,6 @@ static bool LoadMiles(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_Generic; setup.deepTremolo = true; setup.deepVibrato = true; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_bisqwit.h b/utils/gen_adldata/file_formats/load_bisqwit.h index 3283aa9..9749a76 100644 --- a/utils/gen_adldata/file_formats/load_bisqwit.h +++ b/utils/gen_adldata/file_formats/load_bisqwit.h @@ -27,6 +27,7 @@ static bool LoadBisqwit(const char *fn, unsigned bank, const char *prefix) tmp2.pseudo4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; insdata tmp[2]; for(int side = 0; side < 2; ++side) @@ -55,7 +56,6 @@ static bool LoadBisqwit(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_Generic; setup.deepTremolo = true; setup.deepVibrato = true; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index dfa066e..f1412ba 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -111,6 +111,7 @@ static bool LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_f tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; if(is_fat) tmp.data[10] ^= 1; @@ -154,7 +155,6 @@ static bool LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_f setup.volumeModel = VOLUME_Generic; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_bnk2.h b/utils/gen_adldata/file_formats/load_bnk2.h index b4f8da9..072712c 100644 --- a/utils/gen_adldata/file_formats/load_bnk2.h +++ b/utils/gen_adldata/file_formats/load_bnk2.h @@ -89,6 +89,7 @@ static bool LoadBNK2(const char *fn, unsigned bank, const char *prefix, tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; if(xxP24NNN & 8) { @@ -110,7 +111,6 @@ static bool LoadBNK2(const char *fn, unsigned bank, const char *prefix, setup.volumeModel = VOLUME_Generic; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_ea.h b/utils/gen_adldata/file_formats/load_ea.h index 79367d9..c217c09 100644 --- a/utils/gen_adldata/file_formats/load_ea.h +++ b/utils/gen_adldata/file_formats/load_ea.h @@ -86,6 +86,7 @@ static bool LoadEA(const char *fn, unsigned bank, const char *prefix) tmp2.notenum = 0; tmp2.pseudo4op = false; tmp2.real4op = false; + tmp2.rhythmModeDrum = 0; std::string name; char name2[512]; @@ -131,7 +132,6 @@ static bool LoadEA(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_CMF; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_ibk.h b/utils/gen_adldata/file_formats/load_ibk.h index 934fb67..28177c7 100644 --- a/utils/gen_adldata/file_formats/load_ibk.h +++ b/utils/gen_adldata/file_formats/load_ibk.h @@ -3,7 +3,7 @@ #include "../progs_cache.h" -static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool percussive) +static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool percussive, bool noRhythmMode = false) { #ifdef HARD_BANKS writeIni("IBK", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); @@ -55,16 +55,45 @@ static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool perc tmp.data[6] = data[offset2 + 8]; tmp.data[7] = data[offset2 + 9]; tmp.data[10] = data[offset2 + 10]; - // [+11] seems to be used also, what is it for? - tmp.finetune = 0; + // bisqwit: [+11] seems to be used also, what is it for? + // Wohlstand: You wanna know? It's the rhythm-mode drum number! If 0 - melodic, >0 - rhythm-mode drum + tmp.finetune = percussive ? 0 : data[offset2 + 12]; tmp.diff = false; struct ins tmp2; - tmp2.notenum = gmno < 128 ? 0 : 35; + tmp2.notenum = percussive ? data[offset2 + 13] : 0; tmp2.pseudo4op = false; tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; + if(percussive && !noRhythmMode) + { + int rm = data[offset2 + 11]; + switch(rm) + { + case 6: + tmp2.rhythmModeDrum = ins::Flag_RM_BassDrum; + break; + case 7: + tmp2.rhythmModeDrum = ins::Flag_RM_Snare; + break; + case 8: + tmp2.rhythmModeDrum = ins::Flag_RM_TomTom; + break; + case 9: + tmp2.rhythmModeDrum = ins::Flag_RM_Cymbal; + break; + case 10: + tmp2.rhythmModeDrum = ins::Flag_RM_HiHat; + break; + default: + // IBK logic: make non-percussion instrument be silent + tmp = MakeNoSoundIns(); + break; + } + } + size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); SetBank(bank, (unsigned int)gmno, resno); } @@ -73,7 +102,6 @@ static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool perc setup.volumeModel = VOLUME_Generic; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_jv.h b/utils/gen_adldata/file_formats/load_jv.h index ad840d8..a498bb6 100644 --- a/utils/gen_adldata/file_formats/load_jv.h +++ b/utils/gen_adldata/file_formats/load_jv.h @@ -74,6 +74,7 @@ static bool LoadJunglevision(const char *fn, unsigned bank, const char *prefix) tmp2.real4op = (data[offset] != 0); tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; while(tmp2.notenum && tmp2.notenum < 20) { @@ -105,7 +106,6 @@ static bool LoadJunglevision(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_9X; setup.deepTremolo = true; setup.deepVibrato = true; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h index 7c68dd8..feb85ed 100644 --- a/utils/gen_adldata/file_formats/load_op2.h +++ b/utils/gen_adldata/file_formats/load_op2.h @@ -111,6 +111,8 @@ static bool LoadDoom(const char *fn, unsigned bank, const char *prefix) tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = 0; + tmp2.rhythmModeDrum = 0; + while(tmp2.notenum && tmp2.notenum < 20) { tmp2.notenum += 12; @@ -161,7 +163,6 @@ static bool LoadDoom(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_DMX; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_tmb.h b/utils/gen_adldata/file_formats/load_tmb.h index 1d999d1..4417b02 100644 --- a/utils/gen_adldata/file_formats/load_tmb.h +++ b/utils/gen_adldata/file_formats/load_tmb.h @@ -44,7 +44,7 @@ static bool LoadTMB(const char *fn, unsigned bank, const char *prefix) tmp.data[8] = data[offset + 2]; tmp.data[9] = data[offset + 3]; tmp.data[10] = data[offset + 10]; - tmp.finetune = 0; //data[offset + 12]; + tmp.finetune = 0; tmp.diff = false; struct ins tmp2; @@ -53,6 +53,7 @@ static bool LoadTMB(const char *fn, unsigned bank, const char *prefix) tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; tmp2.midi_velocity_offset = (int8_t)data[offset + 12]; + tmp2.rhythmModeDrum = 0; std::string name; if(midi_index >= 0) name = std::string(1, '\377') + MidiInsName[midi_index]; @@ -69,7 +70,6 @@ static bool LoadTMB(const char *fn, unsigned bank, const char *prefix) setup.volumeModel = VOLUME_APOGEE; setup.deepTremolo = false; setup.deepVibrato = false; - setup.adLibPercussions = false; setup.scaleModulators = false; SetBankSetup(bank, setup); diff --git a/utils/gen_adldata/file_formats/load_wopl.h b/utils/gen_adldata/file_formats/load_wopl.h index 24b303e..cd8765e 100644 --- a/utils/gen_adldata/file_formats/load_wopl.h +++ b/utils/gen_adldata/file_formats/load_wopl.h @@ -15,6 +15,7 @@ enum class WOPL_Flags Mode_2op = 0x00, Mode_4op = 0x01, Mode_DoubleVoice = 0x02, + WOPL_RhythmModeMask = 0x38, }; static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) @@ -60,7 +61,6 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) setup.deepTremolo = (data[0x11] & 0x01) != 0; setup.deepVibrato = (data[0x11] & 0x02) != 0; setup.volumeModel = (int)data[0x12]; - setup.adLibPercussions = false; setup.scaleModulators = false; // Validate file format by size calculation @@ -172,6 +172,7 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) tmp2.real4op = real4op && !tmp2.pseudo4op; tmp2.voice2_fine_tune = 0; tmp2.midi_velocity_offset = (int8_t)data[offset + 36]; + tmp2.rhythmModeDrum = (flags & (uint8_t)WOPL_Flags::WOPL_RhythmModeMask); tmp[0].diff = false; tmp[1].diff = real4op && !tmp2.pseudo4op; |