Banks and Presets update

Initially, existing users should see no difference, apart from a slightly quicker startup if they have a very large number of banks and roots. New users will see all the bank roots that Yoshimi can find, and this will include "$HOME/.local/share/yoshimi/found/" with "yoshimi/banks" and/or "zynaddsubfx/banks" if these are found in the default locations.

Unlike the actual defaults, these will be editable. After first being copied they are NOT kept up to date if any default ones are added to. This is to protect any that you may have changed.

This is also the case for existing users the first time they see the new format, but these roots will not be shown in the roots list. Instead there will be a message informing you of this, and inviting you to A: add them to the Path,  B: not add them, C: ask again later.

For all users if any banks get added or removed by external means this will be reported, and the associated bank roots updated in the master file accordingly *without* disrupting any other banks and roots. Previously if new banks were seen as added externally the bank structure was regenerated, resulting in bank IDs changing - this could have broken old MIDI files that performed bank changes.


There is a really strange anomaly where phantom empty banks sometimes get added to the first and/or the last bank root in the list. These are always at bank ID 0 - which should be impossible!

Work rounds have been created to hide these (and not include them when the master file is saved), but still report them to the CLI. Also there is nothing to stop you adding real ones at these locations. We don't recommend it as many sequencers try to set root and bank zero with every program change unless you keep resetting them yourself. This is a ridiculous waste of bandwidth and is *not* a requirement in the MIDI spec.

Yoshimi reports, but ignores unrecognised locations. Repeat calls to the same ones are reported as done, but ignored.


The complete routes to add these editable 'defaults' manually are:

$HOME/.local/share/yoshimi/found/yoshimi/banks
$HOME/.local/share/yoshimi/found/zynaddsubfx/banks

Further to this, at one time some distributions either didn't include the default banks of instruments, or put them in unusual locations, so yoshimi didn't find them on a first time startup. It's not known if this still happens, but if Yoshimi can't find any it will still create the "$HOME/.local/share/yoshimi/found/yoshimi/banks" root with the ID of 5. It will then go on to create a bank "newBank" also with an ID of 5, and in this it will create a SubSynth instrument called "First Instrument" with a prefix of "0005-".


There is also a new editable presets directory:
$HOME/.local/share/yoshimi/presets

This has been derived in the same way, but in this case we haven't included zyn ones, as they've changed most of the filenames, and we've no idea if they've changed anything internally :(
