From 283b2f249a17eba3be8a98e09f1d009e2ef20aee Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 30 May 2019 18:11:59 +0300 Subject: Continue work on a new db format with a small dumper --- utils/gen_adldata/gen_adldata.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 7cb4528..1896c43 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -46,6 +46,8 @@ int main(int argc, char**argv) return 1; } + BanksDump db; + std::fprintf(outFile, "\ #include \"adldata.hh\"\n\ \n\ @@ -130,7 +132,7 @@ int main(int argc, char**argv) else if(format == "WOPL") { - if(!LoadWopl(filepath.c_str(), bank, prefix.c_str())) + if(!LoadWopl(db, filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -565,6 +567,8 @@ int main(int argc, char**argv) std::fclose(outFile); + db.exportBanks(std::string(outFile_s) + "x"); + std::printf("Generation of ADLMIDI data has been completed!\n"); std::fflush(stdout); } -- cgit v1.2.3 From 7786fa8f6ba65673d24aa07245cb11d9a1fc1350 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Fri, 31 May 2019 20:25:44 +0300 Subject: Make the output of data into new database format --- utils/gen_adldata/gen_adldata.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 1896c43..341a3f9 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -132,7 +132,7 @@ int main(int argc, char**argv) else if(format == "WOPL") { - if(!LoadWopl(db, filepath.c_str(), bank, prefix.c_str())) + if(!LoadWopl(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- cgit v1.2.3 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/gen_adldata.cc | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 341a3f9..5c99147 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -15,17 +15,6 @@ #include "midi_inst_list.h" -#include "file_formats/load_ail.h" -#include "file_formats/load_bisqwit.h" -#include "file_formats/load_bnk2.h" -#include "file_formats/load_bnk.h" -#include "file_formats/load_ibk.h" -#include "file_formats/load_jv.h" -#include "file_formats/load_op2.h" -#include "file_formats/load_tmb.h" -#include "file_formats/load_wopl.h" -#include "file_formats/load_ea.h" - int main(int argc, char**argv) { if(argc == 1) @@ -114,7 +103,7 @@ int main(int argc, char**argv) if(format == "AIL") { - if(!LoadMiles(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadMiles(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -123,7 +112,7 @@ int main(int argc, char**argv) else if(format == "Bisqwit") { - if(!LoadBisqwit(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadBisqwit(filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -132,7 +121,7 @@ int main(int argc, char**argv) else if(format == "WOPL") { - if(!LoadWopl(db, filepath.c_str(), bank, bank_name, prefix.c_str())) + if(!BankFormats::LoadWopl(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -141,7 +130,7 @@ int main(int argc, char**argv) else if(format == "OP2") { - if(!LoadDoom(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadDoom(filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -150,7 +139,7 @@ int main(int argc, char**argv) else if(format == "EA") { - if(!LoadEA(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadEA(filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -159,7 +148,7 @@ int main(int argc, char**argv) else if(format == "TMB") { - if(!LoadTMB(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadTMB(filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -168,7 +157,7 @@ int main(int argc, char**argv) else if(format == "Junglevision") { - if(!LoadJunglevision(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadJunglevision(filepath.c_str(), bank, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -177,7 +166,7 @@ int main(int argc, char**argv) else if(format == "AdLibGold") { - if(!LoadBNK2(filepath.c_str(), bank, prefix.c_str(), filter_m, filter_p)) + if(!BankFormats::LoadBNK2(filepath.c_str(), bank, prefix.c_str(), filter_m, filter_p)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -186,14 +175,14 @@ int main(int argc, char**argv) else if(format == "HMI") { - if(!LoadBNK(filepath.c_str(), bank, prefix.c_str(), false, false)) + if(!BankFormats::LoadBNK(filepath.c_str(), bank, prefix.c_str(), false, false)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; } if(!filepath_d.empty()) { - if(!LoadBNK(filepath_d.c_str(),bank, prefix_d.c_str(), false, true)) + if(!BankFormats::LoadBNK(filepath_d.c_str(),bank, prefix_d.c_str(), false, true)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -203,7 +192,7 @@ int main(int argc, char**argv) else if(format == "IBK") { - if(!LoadIBK(filepath.c_str(), bank, prefix.c_str(), false)) + if(!BankFormats::LoadIBK(filepath.c_str(), bank, prefix.c_str(), false)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -211,7 +200,7 @@ int main(int argc, char**argv) if(!filepath_d.empty()) { //printf("Loading %s... \n", filepath_d.c_str()); - if(!LoadIBK(filepath_d.c_str(),bank, prefix_d.c_str(), true, noRhythmMode)) + if(!BankFormats::LoadIBK(filepath_d.c_str(),bank, prefix_d.c_str(), true, noRhythmMode)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- cgit v1.2.3 From 99cc4bfafcce3390bdd5d78ef8e55222d6507877 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Sat, 1 Jun 2019 02:43:59 +0300 Subject: Add Bisqwit, OP2 and TMB --- utils/gen_adldata/gen_adldata.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 5c99147..14e68ea 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -112,7 +112,7 @@ int main(int argc, char**argv) else if(format == "Bisqwit") { - if(!BankFormats::LoadBisqwit(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadBisqwit(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -130,7 +130,7 @@ int main(int argc, char**argv) else if(format == "OP2") { - if(!BankFormats::LoadDoom(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadDoom(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -148,7 +148,7 @@ int main(int argc, char**argv) else if(format == "TMB") { - if(!BankFormats::LoadTMB(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadTMB(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- cgit v1.2.3 From 14303359fde2d8cf76a129296cf1f30fdcb57520 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Sun, 2 Jun 2019 02:54:00 +0300 Subject: Junglevision format is also supported by new DB --- utils/gen_adldata/gen_adldata.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 14e68ea..4b59439 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -157,7 +157,7 @@ int main(int argc, char**argv) else if(format == "Junglevision") { - if(!BankFormats::LoadJunglevision(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadJunglevision(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- cgit v1.2.3 From 86d471c8d664f0c6921f30f0fce4e8d2a7cab77d Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 6 Jun 2019 21:27:19 +0300 Subject: Added IBK and C++98 support for generated database --- utils/gen_adldata/gen_adldata.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 4b59439..c501642 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -192,7 +192,7 @@ int main(int argc, char**argv) else if(format == "IBK") { - if(!BankFormats::LoadIBK(filepath.c_str(), bank, prefix.c_str(), false)) + if(!BankFormats::LoadIBK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -200,7 +200,7 @@ int main(int argc, char**argv) if(!filepath_d.empty()) { //printf("Loading %s... \n", filepath_d.c_str()); - if(!BankFormats::LoadIBK(filepath_d.c_str(),bank, prefix_d.c_str(), true, noRhythmMode)) + if(!BankFormats::LoadIBK(db, filepath_d.c_str(),bank, bank_name, prefix_d.c_str(), true, noRhythmMode)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- 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/gen_adldata.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index c501642..d2cfa5c 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -139,7 +139,7 @@ int main(int argc, char**argv) else if(format == "EA") { - if(!BankFormats::LoadEA(filepath.c_str(), bank, prefix.c_str())) + if(!BankFormats::LoadEA(db, filepath.c_str(), bank, bank_name, prefix.c_str())) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -166,7 +166,7 @@ int main(int argc, char**argv) else if(format == "AdLibGold") { - if(!BankFormats::LoadBNK2(filepath.c_str(), bank, prefix.c_str(), filter_m, filter_p)) + if(!BankFormats::LoadBNK2(db, filepath.c_str(), bank, bank_name, prefix.c_str(), filter_m, filter_p)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -175,14 +175,14 @@ int main(int argc, char**argv) else if(format == "HMI") { - if(!BankFormats::LoadBNK(filepath.c_str(), bank, prefix.c_str(), false, false)) + if(!BankFormats::LoadBNK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false, false)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; } if(!filepath_d.empty()) { - if(!BankFormats::LoadBNK(filepath_d.c_str(),bank, prefix_d.c_str(), false, true)) + if(!BankFormats::LoadBNK(db, filepath_d.c_str(), bank, bank_name, prefix_d.c_str(), false, true)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; -- cgit v1.2.3 From d20e6b38692f4d1159fa4219c0985f8b322454e4 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Sat, 22 Jun 2019 03:59:56 +0300 Subject: Enable measurer for new database format too --- utils/gen_adldata/gen_adldata.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index d2cfa5c..0aa756d 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -556,6 +556,20 @@ int main(int argc, char**argv) std::fclose(outFile); + { + measureCounter.m_durationInfo.clear(); + measureCounter.m_cache_matches = 0; + measureCounter.m_done = 0; + measureCounter.m_total = db.instruments.size(); + std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency()); + std::fflush(stdout); + for(size_t b = 0; b < db.instruments.size(); ++b) + { + measureCounter.run(db, db.instruments[b]); + } + std::fflush(stdout); + measureCounter.waitAll(); + } db.exportBanks(std::string(outFile_s) + "x"); std::printf("Generation of ADLMIDI data has been completed!\n"); -- cgit v1.2.3 From d992f42f694e816a1ab2922d2bdc6fc3d1bce408 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Sun, 30 Jun 2019 16:31:43 +0300 Subject: New cache format for measured entries --- utils/gen_adldata/gen_adldata.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 0aa756d..f0c1265 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -557,6 +557,7 @@ int main(int argc, char**argv) std::fclose(outFile); { + measureCounter.LoadCacheX("fm_banks/adldata-cache-x.dat"); measureCounter.m_durationInfo.clear(); measureCounter.m_cache_matches = 0; measureCounter.m_done = 0; @@ -569,6 +570,7 @@ int main(int argc, char**argv) } std::fflush(stdout); measureCounter.waitAll(); + measureCounter.SaveCacheX("fm_banks/adldata-cache-x.dat"); } db.exportBanks(std::string(outFile_s) + "x"); -- cgit v1.2.3 From 81f905ea76f0efb6ea35331bd1fe476f14f804de Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Mon, 1 Jul 2019 05:01:55 +0300 Subject: First working of new database // not so stable, needs a polishing, however, multibank from embedded 72'th bank (DMXOPL3) works! --- utils/gen_adldata/gen_adldata.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index f0c1265..2b94ab6 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -341,6 +341,7 @@ int main(int argc, char**argv) std::fprintf(outFile, "{\n"); MeasureThreaded measureCounter; +#ifndef GEN_ADLDATA_DEEP_DEBUG // Skip slowest place to work with a debug { std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency()); std::fflush(stdout); @@ -358,6 +359,7 @@ int main(int argc, char**argv) measureCounter.waitAll(); measureCounter.SaveCache("fm_banks/adldata-cache.dat"); } +#endif std::printf("Writing generated measure data...\n"); std::fflush(stdout); @@ -566,6 +568,7 @@ int main(int argc, char**argv) std::fflush(stdout); for(size_t b = 0; b < db.instruments.size(); ++b) { + assert(db.instruments[b].instId == b); measureCounter.run(db, db.instruments[b]); } std::fflush(stdout); -- cgit v1.2.3 From 2ba770631ff1dc978d16a874a4ab99930ce12d2d Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Wed, 19 Aug 2020 02:11:01 +0300 Subject: Use new banks database format However, it's stil need to clean-up and fix gen_adldata for a correct work! --- utils/gen_adldata/gen_adldata.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 2b94ab6..35967b2 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -575,7 +575,8 @@ int main(int argc, char**argv) measureCounter.waitAll(); measureCounter.SaveCacheX("fm_banks/adldata-cache-x.dat"); } - db.exportBanks(std::string(outFile_s) + "x"); + + db.exportBanks(std::string(outFile_s)); std::printf("Generation of ADLMIDI data has been completed!\n"); std::fflush(stdout); -- 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/gen_adldata.cc | 151 ++++++++++----------------------------- 1 file changed, 39 insertions(+), 112 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 35967b2..e62ddf2 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -28,15 +28,18 @@ int main(int argc, char**argv) const char *outFile_s = argv[1]; +#if 0 FILE *outFile = std::fopen(outFile_s, "w"); if(!outFile) { std::fprintf(stderr, "Can't open %s file for write!\n", outFile_s); return 1; } +#endif BanksDump db; +#if 0 std::fprintf(outFile, "\ #include \"adldata.hh\"\n\ \n\ @@ -45,6 +48,9 @@ int main(int argc, char**argv) * PREPROCESSED, CONVERTED, AND POSTPROCESSED OFF-SCREEN.\n\ */\n\ "); +#endif + + { IniProcessing ini; if(!ini.open("banks.ini")) @@ -97,7 +103,7 @@ int main(int argc, char**argv) return 1; } - banknames.push_back(bank_name); +// banknames.push_back(bank_name); //printf("Loading %s...\n", filepath.c_str()); @@ -251,119 +257,34 @@ int main(int argc, char**argv) } #endif - std::printf("Writing raw instrument data...\n"); - std::fflush(stdout); - { - std::fprintf(outFile, - /* - "static const struct\n" - "{\n" - " unsigned modulator_E862, carrier_E862; // See below\n" - " unsigned char modulator_40, carrier_40; // KSL/attenuation settings\n" - " unsigned char feedconn; // Feedback/connection bits for the channel\n" - " signed char finetune; // Finetune\n" - "} adl[] =\n"*/ - "const adldata adl[%u] =\n" - "{ // ,---------+-------- Wave select settings\n" - " // | ,-------ч-+------ Sustain/release rates\n" - " // | | ,-----ч-ч-+---- Attack/decay rates\n" - " // | | | ,---ч-ч-ч-+-- AM/VIB/EG/KSR/Multiple bits\n" - " // | | | | | | | |\n" - " // | | | | | | | | ,----+-- KSL/attenuation settings\n" - " // | | | | | | | | | | ,----- Feedback/connection bits\n" - " // | | | | | | | | | | | ,----- Fine tune\n\n" - " // | | | | | | | | | | | |\n" - " // | | | | | | | | | | | |\n", (unsigned)insdatatab.size()); - - for(size_t b = insdatatab.size(), c = 0; c < b; ++c) - { - for(std::map > > - ::const_iterator - i = insdatatab.begin(); - i != insdatatab.end(); - ++i) - { - if(i->second.first != c) continue; - std::fprintf(outFile, " { "); - - uint32_t carrier_E862 = - uint32_t(i->first.data[6] << 24) - + uint32_t(i->first.data[4] << 16) - + uint32_t(i->first.data[2] << 8) - + uint32_t(i->first.data[0] << 0); - uint32_t modulator_E862 = - uint32_t(i->first.data[7] << 24) - + uint32_t(i->first.data[5] << 16) - + uint32_t(i->first.data[3] << 8) - + uint32_t(i->first.data[1] << 0); - - std::fprintf(outFile, "0x%07X,0x%07X, 0x%02X,0x%02X, 0x%X, %+d", - carrier_E862, - modulator_E862, - i->first.data[8], - i->first.data[9], - i->first.data[10], - i->first.finetune); - -#ifdef ADLDATA_WITH_COMMENTS - std::string names; - for(std::set::const_iterator - j = i->second.second.begin(); - j != i->second.second.end(); - ++j) - { - if(!names.empty()) names += "; "; - if((*j)[0] == '\377') - names += j->substr(1); - else - names += *j; - } - std::fprintf(outFile, " }, // %u: %s\n", (unsigned)c, names.c_str()); -#else - std::fprintf(outFile, " },\n"); -#endif - } - } - std::fprintf(outFile, "};\n"); - } - - /*std::fprintf(outFile, "static const struct\n" - "{\n" - " unsigned short adlno1, adlno2;\n" - " unsigned char tone;\n" - " unsigned char flags;\n" - " long ms_sound_kon; // Number of milliseconds it produces sound;\n" - " long ms_sound_koff;\n" - " double voice2_fine_tune;\n" - "} adlins[] =\n");*/ - - std::fprintf(outFile, "const struct adlinsdata adlins[%u] =\n", (unsigned)instab.size()); - std::fprintf(outFile, "{\n"); +// std::printf("Writing raw instrument data...\n"); +// std::fflush(stdout); MeasureThreaded measureCounter; -#ifndef GEN_ADLDATA_DEEP_DEBUG // Skip slowest place to work with a debug - { - std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency()); - std::fflush(stdout); - measureCounter.LoadCache("fm_banks/adldata-cache.dat"); - measureCounter.m_total = instab.size(); - for(size_t b = instab.size(), c = 0; c < b; ++c) - { - for(std::map > >::const_iterator i = instab.begin(); i != instab.end(); ++i) - { - if(i->second.first != c) continue; - measureCounter.run(i); - } - } - std::fflush(stdout); - measureCounter.waitAll(); - measureCounter.SaveCache("fm_banks/adldata-cache.dat"); - } -#endif +//#ifndef GEN_ADLDATA_DEEP_DEBUG // Skip slowest place to work with a debug +// { +// std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency()); +// std::fflush(stdout); +// measureCounter.LoadCache("fm_banks/adldata-cache.dat"); +// measureCounter.m_total = instab.size(); +// for(size_t b = instab.size(), c = 0; c < b; ++c) +// { +// for(std::map > >::const_iterator i = instab.begin(); i != instab.end(); ++i) +// { +// if(i->second.first != c) continue; +// measureCounter.run(i); +// } +// } +// std::fflush(stdout); +// measureCounter.waitAll(); +// measureCounter.SaveCache("fm_banks/adldata-cache.dat"); +// } +//#endif - std::printf("Writing generated measure data...\n"); - std::fflush(stdout); +// std::printf("Writing generated measure data...\n"); +// std::fflush(stdout); +#if 0 std::vector adlins_flags; for(size_t b = instab.size(), c = 0; c < b; ++c) @@ -469,6 +390,7 @@ int main(int argc, char**argv) } std::set listed; + std::fprintf(outFile, "\n\n//Returns total number of generated banks\n" "int maxAdlBanks()\n" @@ -531,6 +453,10 @@ int main(int argc, char**argv) #endif } +#endif + + +#if 0 std::fprintf(outFile, "};\n\n"); std::fflush(outFile); @@ -557,9 +483,10 @@ int main(int argc, char**argv) std::fflush(outFile); std::fclose(outFile); +#endif { - measureCounter.LoadCacheX("fm_banks/adldata-cache-x.dat"); + measureCounter.LoadCacheX("fm_banks/adldata-cache.dat"); measureCounter.m_durationInfo.clear(); measureCounter.m_cache_matches = 0; measureCounter.m_done = 0; @@ -573,7 +500,7 @@ int main(int argc, char**argv) } std::fflush(stdout); measureCounter.waitAll(); - measureCounter.SaveCacheX("fm_banks/adldata-cache-x.dat"); + measureCounter.SaveCacheX("fm_banks/adldata-cache.dat"); } db.exportBanks(std::string(outFile_s)); -- 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/gen_adldata.cc | 274 --------------------------------------- 1 file changed, 274 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index e62ddf2..b67e53b 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -28,29 +28,8 @@ int main(int argc, char**argv) const char *outFile_s = argv[1]; -#if 0 - FILE *outFile = std::fopen(outFile_s, "w"); - if(!outFile) - { - std::fprintf(stderr, "Can't open %s file for write!\n", outFile_s); - return 1; - } -#endif - BanksDump db; -#if 0 - std::fprintf(outFile, "\ -#include \"adldata.hh\"\n\ -\n\ -/* THIS OPL-3 FM INSTRUMENT DATA IS AUTOMATICALLY GENERATED\n\ - * FROM A NUMBER OF SOURCES, MOSTLY PC GAMES.\n\ - * PREPROCESSED, CONVERTED, AND POSTPROCESSED OFF-SCREEN.\n\ - */\n\ -"); -#endif - - { IniProcessing ini; if(!ini.open("banks.ini")) @@ -230,260 +209,7 @@ int main(int argc, char**argv) std::fflush(stdout); } - #if 0 - for(unsigned a = 0; a < 36 * 8; ++a) - { - if((1 << (a % 8)) > maxvalues[a / 8]) continue; - - const std::map &data = Correlate[a]; - if(data.empty()) continue; - std::vector< std::pair > correlations; - for(std::map::const_iterator - i = data.begin(); - i != data.end(); - ++i) - { - correlations.push_back(std::make_pair(i->second, i->first)); - } - std::sort(correlations.begin(), correlations.end()); - std::fprintf(outFile, "Byte %2u bit %u=mask %02X:\n", a / 8, a % 8, 1 << (a % 8)); - for(size_t c = 0; c < correlations.size() && c < 10; ++c) - { - unsigned count = correlations[correlations.size() - 1 - c ].first; - unsigned index = correlations[correlations.size() - 1 - c ].second; - std::fprintf(outFile, "\tAdldata index %u, bit %u=mask %02X (%u matches)\n", - index / 8, index % 8, 1 << (index % 8), count); - } - } - #endif - -// std::printf("Writing raw instrument data...\n"); -// std::fflush(stdout); - MeasureThreaded measureCounter; -//#ifndef GEN_ADLDATA_DEEP_DEBUG // Skip slowest place to work with a debug -// { -// std::printf("Beginning to generate measures data... (hardware concurrency of %d)\n", std::thread::hardware_concurrency()); -// std::fflush(stdout); -// measureCounter.LoadCache("fm_banks/adldata-cache.dat"); -// measureCounter.m_total = instab.size(); -// for(size_t b = instab.size(), c = 0; c < b; ++c) -// { -// for(std::map > >::const_iterator i = instab.begin(); i != instab.end(); ++i) -// { -// if(i->second.first != c) continue; -// measureCounter.run(i); -// } -// } -// std::fflush(stdout); -// measureCounter.waitAll(); -// measureCounter.SaveCache("fm_banks/adldata-cache.dat"); -// } -//#endif - -// std::printf("Writing generated measure data...\n"); -// std::fflush(stdout); - -#if 0 - std::vector adlins_flags; - - for(size_t b = instab.size(), c = 0; c < b; ++c) - for(std::map > > - ::const_iterator - i = instab.begin(); - i != instab.end(); - ++i) - { - if(i->second.first != c) continue; - //DurationInfo info = MeasureDurations(i->first); - MeasureThreaded::DurationInfoCache::iterator indo_i = measureCounter.m_durationInfo.find(i->first); - DurationInfo info = indo_i->second; -#ifdef ADLDATA_WITH_COMMENTS - { - if(info.peak_amplitude_time == 0) - { - std::fprintf(outFile, - " // Amplitude begins at %6.1f,\n" - " // fades to 20%% at %.1fs, keyoff fades to 20%% in %.1fs.\n", - info.begin_amplitude, - info.quarter_amplitude_time / double(info.interval), - info.keyoff_out_time / double(info.interval)); - } - else - { - std::fprintf(outFile, - " // Amplitude begins at %6.1f, peaks %6.1f at %.1fs,\n" - " // fades to 20%% at %.1fs, keyoff fades to 20%% in %.1fs.\n", - info.begin_amplitude, - info.peak_amplitude_value, - info.peak_amplitude_time / double(info.interval), - info.quarter_amplitude_time / double(info.interval), - info.keyoff_out_time / double(info.interval)); - } - } -#endif - - unsigned flags = (i->first.pseudo4op ? ins::Flag_Pseudo4op : 0)| - (i->first.real4op ? ins::Flag_Real4op : 0) | - (info.nosound ? ins::Flag_NoSound : 0) | i->first.rhythmModeDrum; - - std::fprintf(outFile, " {"); - std::fprintf(outFile, "%4d,%4d,%3d, %d, %6" PRId64 ",%6" PRId64 ", %6d, %g", - (unsigned) i->first.insno1, - (unsigned) i->first.insno2, - (int)(i->first.notenum), - flags, - info.ms_sound_kon, - info.ms_sound_koff, - i->first.midi_velocity_offset, - i->first.voice2_fine_tune); - std::string names; - for(std::set::const_iterator - j = i->second.second.begin(); - j != i->second.second.end(); - ++j) - { - if(!names.empty()) names += "; "; - if((*j)[0] == '\377') - names += j->substr(1); - else - names += *j; - } -#ifdef ADLDATA_WITH_COMMENTS - std::fprintf(outFile, " }, // %u: %s\n\n", (unsigned)c, names.c_str()); -#else - std::fprintf(outFile, " },\n"); -#endif - std::fflush(outFile); - adlins_flags.push_back(flags); - } - std::fprintf(outFile, "};\n\n"); - - - std::printf("Writing banks data...\n"); - std::fflush(stdout); - - //fprintf(outFile, "static const unsigned short banks[][256] =\n"); -#ifdef HARD_BANKS - const unsigned bankcount = sizeof(banknames) / sizeof(*banknames); -#else - const size_t bankcount = banknames.size(); -#endif - - size_t nosound = InsertNoSoundIns(); - - std::map > bank_data; - for(size_t bank = 0; bank < bankcount; ++bank) - { - //bool redundant = true; - std::vector data(256); - for(size_t p = 0; p < 256; ++p) - { - size_t v = progs[bank][p]; - if(v == 0 || (adlins_flags[v - 1] & 2)) - v = nosound; // Blank.in - else - v -= 1; - data[p] = v; - } - bank_data[bank] = data; - } - std::set listed; - - - std::fprintf(outFile, - "\n\n//Returns total number of generated banks\n" - "int maxAdlBanks()\n" - "{\n" - " return %u;\n" - "}\n\n" - "const char* const banknames[%u] =\n", - (unsigned int)bankcount, - (unsigned int)(bankcount + 1)); - std::fprintf(outFile, "{\n"); - for(size_t bank = 0; bank < bankcount; ++bank) - std::fprintf(outFile, " \"%s\",\n", banknames[bank].c_str()); - std::fprintf(outFile, " NULL\n};\n"); - - std::fprintf(outFile, "const unsigned short banks[%u][256] =\n", (unsigned int)bankcount); - std::fprintf(outFile, "{\n"); - for(size_t bank = 0; bank < bankcount; ++bank) - { -#ifdef ADLDATA_WITH_COMMENTS - std::fprintf(outFile, " { // bank %u, %s\n", bank, banknames[bank].c_str()); -#else - std::fprintf(outFile, " {\n"); - #endif -#ifdef ADLDATA_WITH_COMMENTS - bool redundant = true; -#endif - for(size_t p = 0; p < 256; ++p) - { - size_t v = bank_data[bank][p]; - if(listed.find(v) == listed.end()) - { - listed.insert(v); -#ifdef ADLDATA_WITH_COMMENTS - redundant = false; -#endif - } - std::fprintf(outFile, "%4d,", (unsigned int)v); - if(p % 16 == 15) fprintf(outFile, "\n"); - } - std::fprintf(outFile, " },\n"); -#ifdef ADLDATA_WITH_COMMENTS - if(redundant) - { - std::fprintf(outFile, " // Bank %u defines nothing new.\n", bank); - for(unsigned refbank = 0; refbank < bank; ++refbank) - { - bool match = true; - for(unsigned p = 0; p < 256; ++p) - if(bank_data[bank][p] != nosound - && bank_data[bank][p] != bank_data[refbank][p]) - { - match = false; - break; - } - if(match) - std::fprintf(outFile, " // Bank %u is just a subset of bank %u!\n", - bank, refbank); - } - } -#endif - } - -#endif - - -#if 0 - std::fprintf(outFile, "};\n\n"); - std::fflush(outFile); - - std::fprintf(outFile, "const AdlBankSetup adlbanksetup[%u] =\n", (unsigned)banksetup.size()); - std::fprintf(outFile, "{\n"); - { - BankSetupData::iterator last = banksetup.end(); - last--; - for(BankSetupData::iterator it = banksetup.begin(); it != banksetup.end(); it++) - { - AdlBankSetup &setup = it->second; - std::fprintf(outFile, " {%d, %d, %d, %d}", - setup.volumeModel, - setup.deepTremolo, - setup.deepVibrato, - setup.scaleModulators); - if(it != last) - std::fprintf(outFile, ", //Bank %u, %s\n", (unsigned)it->first, banknames[it->first].c_str()); - else - std::fprintf(outFile, " //Bank %u, %s\n", (unsigned)it->first, banknames[it->first].c_str()); - } - } - std::fprintf(outFile, "};\n"); - std::fflush(outFile); - - std::fclose(outFile); -#endif { measureCounter.LoadCacheX("fm_banks/adldata-cache.dat"); -- 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/gen_adldata.cc | 1 - 1 file changed, 1 deletion(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index b67e53b..fe369d9 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -213,7 +213,6 @@ int main(int argc, char**argv) { measureCounter.LoadCacheX("fm_banks/adldata-cache.dat"); - measureCounter.m_durationInfo.clear(); measureCounter.m_cache_matches = 0; measureCounter.m_done = 0; measureCounter.m_total = db.instruments.size(); -- cgit v1.2.3 From 30504f2ff0fc73ecb4ee6330b17cc768a8686d86 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 24 Aug 2020 00:49:32 +0300 Subject: gen_adldata: rename some *X suffixes As old calls has been removed, they no longer need to have X suffix --- utils/gen_adldata/gen_adldata.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'utils/gen_adldata/gen_adldata.cc') diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index fe369d9..45f0c7c 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -212,7 +212,7 @@ int main(int argc, char**argv) MeasureThreaded measureCounter; { - measureCounter.LoadCacheX("fm_banks/adldata-cache.dat"); + measureCounter.LoadCache("fm_banks/adldata-cache.dat"); measureCounter.m_cache_matches = 0; measureCounter.m_done = 0; measureCounter.m_total = db.instruments.size(); @@ -225,7 +225,7 @@ int main(int argc, char**argv) } std::fflush(stdout); measureCounter.waitAll(); - measureCounter.SaveCacheX("fm_banks/adldata-cache.dat"); + measureCounter.SaveCache("fm_banks/adldata-cache.dat"); } db.exportBanks(std::string(outFile_s)); -- cgit v1.2.3