mmontag / chip-player-js

Web-based music player for a variety of video game and chiptune music formats.
https://chiptune.app
GNU General Public License v3.0
324 stars 17 forks source link

Fix libADLMIDI banks #85

Closed mmontag closed 2 years ago

mmontag commented 2 years ago

Updating libADLMIDI at 39104089a30c696e174133830fd530678652c4cc reversed the bank reductions/custom OPL bank order that introduced in 92b7ab396a24a9c6ecd29fb599b6e58168b48380.

So now the default OPL3 bank is "AIL (Star Control 3...)". The default bank should be Win9x. It sounds similar but it's a bit louder.

; If you want to change list of banks in libADLMIDI, just run ; "bin/gen_adldata src/adldata.cpp" and wait until it will generate updated ; banks store, and then run "make" to rebuild libADLMIDI library with new set of ; banks

Wohlstand commented 2 years ago

About the default bank number, it's always defined by the user side (for example, I keep the default bank number at the MixerX itself, setting the bank 58 after loading the thing)

P.S. Seems a good idea to add the CMake option to specify the custom path to the custom banks.ini and make it use the custom-generated inst-db.cpp instead of the default one. P.P.S. Keep the note, there is a cache file that speeds up the preparation of banks, I made it to don't re-calculate delay values for every known instrument every time which takes a while.

mmontag commented 2 years ago

Yes, that way we can avoid tracked changes in the repo 👍

On Sep 1, 2021, at 12:23 PM, Vitaly Novichkov @.***> wrote:

 About the default bank number, it's always defined by the user side (for example, I keep the default bank number at the MixerX itself, setting the bank 58 after loading the thing)

P.S. Seems a good idea to add the CMake option to specify the custom path to the custom banks.ini, and make it use the custom-generated inst-db.cpp instead of default one.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

Wohlstand commented 2 years ago

Alternatively, you can disable embedded banks use at all, and make your own list of banks using WOPL banks (every bank can be saved in WOPL format using OPL3-BE), and passing via adl_loadBankData() call. This also will save your compile-time, and you are also able to add different banks in WOPL format at any moment having to don't re-generate the entire cache.

Wohlstand commented 2 years ago

The default bank should be Win9x. It sounds similar but it's a bit louder.

Because bank 0 uses the AIL volume model, the bank 58 uses the Win9x volume model, they are different volume scaling factors.

mmontag commented 2 years ago

About the default bank number, it's always defined by the user side (for example, I keep the default bank number at the MixerX itself, setting the bank 58 after loading the thing)

👍 I will do that.

you can disable embedded banks use at all, and make your own list of banks using WOPL banks

I prefer embedded banks for now; keeps things simpler.

Do you have a list of which banks are nice and (more or less) GM-compatible?

mmontag commented 2 years ago

I have put this issue to bed for now.

Wohlstand commented 2 years ago

Do you have a list of which banks are nice and (more or less) GM-compatible?

Didn't it yet, but I would prepare a bunch of WOPL files for you that you can use at your side. Probably will try some tomorrow...