Pre-designed instrument patches are immediately available in banks. These in turn are contained within a bank root. These bank roots are themselves contained in a root path. The entire structure bearing a direct relationship to MIDI Program Change, Bank LSB and Bank MSB controllers respectively. For normal work that gives up to 128 Instruments in 128 banks in 128 Roots - potentially over 2 million! Yoshimi actually has an extra 32 Instruments in each bank which are only accessible to MIDI using a custom extended program change control.
Note that Yoshimi uses the standard MIDI numbers, starting from 1 for program (instrument) changes, and 0 for banks and roots.
As well as instrument files themselves, a bank will have a hidden ID file .bankdir. This serves two purposes. It speeds up bank searches. If this is present there is no need to positively identify at least one instrument. It also contains the version number from the last time the bank was updated.
We advise against making any changes to the bank structure through any external means (such as a desktop filer) as it is possible to invalidate Yoshimi's records and cause it to perform a complete bank reset. This in turn could change all the MIDI numbers, breaking any previous projects.
This first image is of a typical instrument bank, and the first item at the top is a menu of alternative banks.
Following this is a button that opens the instrument Search window for loading an instrument by its type classification from any bank at all. Next is a button that takes you to the Root paths window, and finally there is one for the Bank roots window.
The menu is quick to use when changing banks, but doesn't give you the flexibility of using the buttons for bank roots and root paths. In particular, a right hand mouse click on these buttons will close this window while opening the wanted one, and a right-click on the Close button (bottom right) will return you to where you came from.
Below this is a table of all the instruments in the current bank, with coloured backgrounds indicating what engine types are being used. In order, these are AddSynth, SubSynth, PadSynth (a reminder is shown at the bottom of the window).
Clicking on one of these will load the instrument into the currently selected part, and highlight it in the bank, so you can easily see where it came from. If selected with a right-click it will also close the window.
If the virtual keyboard is visible, then it will be given keyboard focus so you can use it to quickly try out different sounds.
The buttons on the bottom row determine what action is to be performed when clicking on an instrument. The coloured underscore shows which is the currently active one, and by default it will be Select.
With these buttons, you set the operation you want to perform before clicking on an entry, and regardless of whether the action is successful or not, it will always return to 'Select' Also, the next four buttons will only work where you have filesystem write permission, as they all make actual file changes.
Rename When chosen, clicking on an instrument entry a small editable window will be opened with the existing name. Changing this will change the name here and the actual filename. It will not change the name of the current part.
Save Clicking on a table slot will save the currently selected part to that location. If there is already an entry there, you will be asked if you want to overwrite it. It will not save the default 'Simple Sound'. There would be no point, as that can easily be recovered by clearing the instrument.
Delete This asks for confirmation before permanently removing the selected Instrument.
Swap This is a two stage operation. You select one instrument (which will then be highlighted) followed by either a second instrument to actually swap with, or an empty slot to just move it to a new location. Additionally, after making your first selection you can change bank, or even bank root before making the second selection, so you can move and swap right across the entire bank structure.
Back to top
Back to Bank Root
Next (Parts and Channels)