From 732f2f269d6be456b93af18c8cec035fc01b5eba Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Fri, 31 May 2019 22:07:21 +0300 Subject: Organize file formats parsers, and multi-bank AIL support --- utils/gen_adldata/file_formats/load_bnk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index f1412ba..ca20625 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -7,7 +7,7 @@ #include #include -static bool LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_fat, bool percussive) +bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_fat, bool percussive) { #ifdef HARD_BANKS writeIni("HMI", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); -- cgit v1.2.3 From db28f6d8489798eec60ef7f12e2f3bff423a5681 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 6 Jun 2019 22:17:05 +0300 Subject: All bank formats now loading into new database --- utils/gen_adldata/file_formats/load_bnk.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index ca20625..beb2bd5 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -7,7 +7,9 @@ #include #include -bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_fat, bool percussive) +bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, + const std::string &bankTitle, const char *prefix, + bool is_fat, bool percussive) { #ifdef HARD_BANKS writeIni("HMI", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); @@ -25,6 +27,9 @@ bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, boo } std::fclose(fp); + size_t bankDb = db.initBank(bank, bankTitle, BanksDump::BankEntry::SETUP_Generic); + BanksDump::MidiBank bnk; + /*printf("%s:\n", fn);*/ //unsigned short version = *(short*)&data[0]; // major,minor (2 bytes) // "ADLIB-" (6 bytes) @@ -80,6 +85,9 @@ bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, boo else sprintf(name2, "%s%u", prefix, n); + BanksDump::InstrumentEntry inst; + BanksDump::Operator ops[5]; + insdata tmp; tmp.data[0] = uint8_t( (op1[ 9] << 7) // TREMOLO FLAG @@ -115,11 +123,16 @@ bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, boo if(is_fat) tmp.data[10] ^= 1; + db.toOps(tmp, ops, 0); + inst.percussionKeyNumber = is_fat ? voice_num : (percussive ? usage_flag : 0); + inst.setFbConn(op1[2] * 2 + op1[12]); + size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); if(!is_fat) { SetBank(bank, (unsigned int)gmno, resno); + db.addInstrument(bnk, n & 127, inst, ops); } else { @@ -151,6 +164,8 @@ bool BankFormats::LoadBNK(const char *fn, unsigned bank, const char *prefix, boo */ } + db.addMidiBank(bankDb, percussive, bnk); + AdlBankSetup setup; setup.volumeModel = VOLUME_Generic; setup.deepTremolo = false; -- cgit v1.2.3 From bfd932874f5e107eaf81c40b87d5c722170a5ace Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Mon, 8 Jul 2019 02:28:48 +0300 Subject: More accurate silence detector Now, there are very low level of error! The only one weird condition is still be there... --- utils/gen_adldata/file_formats/load_bnk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index beb2bd5..9379de5 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -132,7 +132,7 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, if(!is_fat) { SetBank(bank, (unsigned int)gmno, resno); - db.addInstrument(bnk, n & 127, inst, ops); + db.addInstrument(bnk, n & 127, inst, ops, fn); } else { -- cgit v1.2.3 From e4db1c263355202a9cb033f9e07d42c31e3ff4a5 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 20 Aug 2020 00:01:06 +0300 Subject: gen_adldata: First step of old code clean-up Verify that all code here is in safe --- utils/gen_adldata/file_formats/load_bnk.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index 9379de5..4021831 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -127,17 +127,17 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, inst.percussionKeyNumber = is_fat ? voice_num : (percussive ? usage_flag : 0); inst.setFbConn(op1[2] * 2 + op1[12]); - size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); +// size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); if(!is_fat) { - SetBank(bank, (unsigned int)gmno, resno); +// SetBank(bank, (unsigned int)gmno, resno); db.addInstrument(bnk, n & 127, inst, ops, fn); } else { - if(name[2] == 'O' || name[1] == 'M') SetBank(bank + 0, (unsigned int)gmno, resno); - if(name[2] == 'S' || name[1] == 'M') SetBank(bank + 1, (unsigned int)gmno, resno); +// if(name[2] == 'O' || name[1] == 'M') SetBank(bank + 0, (unsigned int)gmno, resno); +// if(name[2] == 'S' || name[1] == 'M') SetBank(bank + 1, (unsigned int)gmno, resno); } /* @@ -166,12 +166,12 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, db.addMidiBank(bankDb, percussive, bnk); - AdlBankSetup setup; - setup.volumeModel = VOLUME_Generic; - setup.deepTremolo = false; - setup.deepVibrato = false; - setup.scaleModulators = false; - SetBankSetup(bank, setup); +// AdlBankSetup setup; +// setup.volumeModel = VOLUME_Generic; +// setup.deepTremolo = false; +// setup.deepVibrato = false; +// setup.scaleModulators = false; +// SetBankSetup(bank, setup); return true; } -- cgit v1.2.3 From f656802667e93be893ebc30a18b0f12482586e6f Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Sun, 23 Aug 2020 22:10:46 +0300 Subject: gen_adldata: remove the rest of old code --- utils/gen_adldata/file_formats/load_bnk.h | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index 4021831..ed47567 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -11,9 +11,9 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, bool is_fat, bool percussive) { - #ifdef HARD_BANKS +#ifdef HARD_BANKS writeIni("HMI", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); - #endif +#endif FILE *fp = std::fopen(fn, "rb"); if(!fp) return false; @@ -121,24 +121,15 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, tmp2.midi_velocity_offset = 0; tmp2.rhythmModeDrum = 0; - if(is_fat) tmp.data[10] ^= 1; + if(is_fat) + tmp.data[10] ^= 1; db.toOps(tmp, ops, 0); inst.percussionKeyNumber = is_fat ? voice_num : (percussive ? usage_flag : 0); inst.setFbConn(op1[2] * 2 + op1[12]); -// size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); - if(!is_fat) - { -// SetBank(bank, (unsigned int)gmno, resno); db.addInstrument(bnk, n & 127, inst, ops, fn); - } - else - { -// if(name[2] == 'O' || name[1] == 'M') SetBank(bank + 0, (unsigned int)gmno, resno); -// if(name[2] == 'S' || name[1] == 'M') SetBank(bank + 1, (unsigned int)gmno, resno); - } /* for(unsigned p=0; p<30; ++p) @@ -166,13 +157,6 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, db.addMidiBank(bankDb, percussive, bnk); -// AdlBankSetup setup; -// setup.volumeModel = VOLUME_Generic; -// setup.deepTremolo = false; -// setup.deepVibrato = false; -// setup.scaleModulators = false; -// SetBankSetup(bank, setup); - return true; } -- cgit v1.2.3 From 1b4237dffce60e8546e550767b2816c1979bbb9d Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Sun, 23 Aug 2020 23:54:07 +0300 Subject: gen_adldata: Remove more old code --- utils/gen_adldata/file_formats/load_bnk.h | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'utils/gen_adldata/file_formats/load_bnk.h') diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index ed47567..29f5494 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -88,7 +88,7 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, BanksDump::InstrumentEntry inst; BanksDump::Operator ops[5]; - insdata tmp; + InstBuffer tmp; tmp.data[0] = uint8_t( (op1[ 9] << 7) // TREMOLO FLAG + (op1[10] << 6) // VIBRATO FLAG @@ -110,21 +110,13 @@ bool BankFormats::LoadBNK(BanksDump &db, const char *fn, unsigned bank, tmp.data[8] = op1[0] * 0x40 + op1[8]; // KSL , LEVEL tmp.data[9] = op2[0] * 0x40 + op2[8]; // KSL , LEVEL tmp.data[10] = op1[2] * 2 + op1[12]; // FEEDBACK, ADDITIVEFLAG - tmp.finetune = 0; - tmp.diff = false; + // Note: op2[2] and op2[12] are unused and contain garbage. - ins tmp2; - tmp2.notenum = is_fat ? voice_num : (percussive ? usage_flag : 0); - tmp2.pseudo4op = false; - tmp2.real4op = false; - tmp2.voice2_fine_tune = 0.0; - tmp2.midi_velocity_offset = 0; - tmp2.rhythmModeDrum = 0; if(is_fat) tmp.data[10] ^= 1; - db.toOps(tmp, ops, 0); + db.toOps(tmp.d, ops, 0); inst.percussionKeyNumber = is_fat ? voice_num : (percussive ? usage_flag : 0); inst.setFbConn(op1[2] * 2 + op1[12]); -- cgit v1.2.3