Proposal handling mydata in the bank screen

Banks that have been uploaded to Zynthian are shown on top in the list. I propose to move them to the bottom. As such the MSB in a DAW is not changed with uploading extra sounds. For instance in FS FluidR3 GM bank is with mydata bank 30. With every upload it changes. In case it is added to the bottom of the list MSB stays the same.

Most people want user banks first on the list. We should find a better solution :wink:

For instance, why not using LSB for selecting between user and system banks? We could have 16x127 user banks + 8x127 system banks.


Great idea. Would it be more logical to have MSB select between user and system banks and LSB for a bank. In that case MSB (user/system) → LSB (bank nr) → Program/preset

I am currently coding the solution as mentioned above. However the User banks and System banks are programmed in a single array. I always want to prevent for-next loops to count the number of ‘My/…’ banks in the list. Is there a simple way to determine the number of User banks (without expensive looping and counting) with one of the classes/methods I have not yet discovered in the codebase?

1 Like

I’m working on a solution for having the banks separated: system, user, external, favourites
I will integrate your proposal for bank change with it.


Try development branch “midi_bank_change”:

It integrates your proposal and extend it. It implements MSB like this:

0 => system banks
1 => user banks
2 => external banks (USB drive)

LSB is the bank index, same as yours.

I improved the “refresh GUI” code, so now it should work fine. For instance, if active screen is “layers”, it will get refreshed on bank/preset changes. If active screen is “bank” or “preset” list, it will jump to control. Etc.


Ok I am currently developing on: git branch midi_bank_change. Please let me know when you split the banks. For now I will omit with some calculation code to determine the position.

@jose, are the external banks shown before the user banks and what happened suddenly with the Favorites banks?

I noticed a few bugs when testing the code:

  • Fluidsynth cannot select the favorites bank and throws an error when favorites bank is selected (see error log). Seems a separate issue. Don’t know external bank ID, now named it “EXT”. Probably needs updating.
  • GUI is not updated in layer, bank and preset screen (known issue)
  • GUI is sometimes not updated in control screen

I did not try to fix the bugs to compact the code changes.

Hi Jan!

Favourites bank is not implemented because it’s not a “real bank” and including it would complicate things without too much benefit. MSB is implemented like this:

0 => system banks
1 => user banks
2 => external banks (USB drive)

It works for me.

It works for me. “Sometimes” is not a very precise word when reporting a bug :wink:

Are you testing the “midi_bank_change" branch for zynthian-ui repo?


@Jose, I just tested midi_bank_change branch again. For MSB = 0 it works. MSB = 1 (user banks) do not change. So for instance MSB = 1, LSB = 0 → bank and program keeps current values; although the screen flickers briefly (hence = triggered). Probably small bug.