order preset list to account for similar instruments on banks > 0

• Mar 2, 2018 - 16:00
Reported version
P2 - Medium
S4 - Minor

In the mixer, instead of listing all presets from bank 0, then all presets from bank 1, etc., we should instead show all presets that share a common preset number together. In General MIDI, instruments that are similar or a variant of a bank 0 instrument are placed in higher banks using the same preset number.

Currently MuseScore's mixer does this:
Bank 0, Preset 0: Acoustic Grand Piano
Bank 0, Preset 1: Bright Grand Piano
... (126 other instruments)
Bank 1, Preset 0: Mellow Grand Piano

We want it to do this instead:
Bank 0, Preset 0: Acoustic Grand Piano
Bank 1, Preset 0: Mellow Grand Piano
Bank 0, Preset 1: Bright Grand Piano

Now all the pianos are together. This isn't an enormous deal now, but as I develop more orchestral sounds for the new SoundFont (e.g., proper section violins, violas, etc.), we don't want these to be scattered randomly through an already difficult-to-parse list.


What if there is more than one soundfont ? Would you advise to list all Preset 0 from all soundfonts first ?
Right now we indeed list soundfont after soundfont, for each soundfont bank after bank, for each bank, preset after preset.

For the record, it's probably Fluid::updatePatchList() which need tweakings.

I'd sort presets per soundfont, at least for 2.2, where users are used to have one soundfont after the other when using more than one (at least that's how it is documented, I think)

In reply to by Jojo-Schmitz

Since the sounds are listed by sound font in version 2.x I would suggest keeping it that way for consistency's sake in 2.2. Right now if someone asks a question about the mixer and sound fonts, I know they have sounds listed by sound font. If you want to put all of the different sounds together for 3.0 that would make sense and make it much easier to find different sounds for a given instrument. There is less confusion between major versions than minor versions.

Agreed that listing should be per-SoundFont. There is no guarantee that user-added SoundFonts will even conform to the GM standard, so mixing those presets together makes little sense, IMO.

What about ordering by soundfont with drop-down lists and then by preset number with each soundfont. Each present number can also have its own drop-down list. Something like this:

>Preset 00
Bank 00, preset 00
Bank 01, preset 00
Bank 02, preset 00
Bank 127, preset xx

>Sonatina symphonic sounds
>Preset 00
Bank 00, preset 00
Bank 01, preset 00
Bank 02, preset 00
Bank 127, preset xx
The main advantage of this would be eliminating the need to scroll through an embarrassingly long list to get to the instrument you want.

A user on the forum has requested that bank and preset number should be visible as well. Perhaps something concise like this would be useful:

0:0 Grand Piano
1:0 Mellow Grand Piano
0:1 Bright Grand Piano


Then the user could see both sound source and bank/preset number easily.

In reply to by s.chriscollins

That was me ;) Thanks for putting it here, I was unsure whether to open a new feature request for it or where to put it; now I found it.

The way I see it, we can keep sorting by soundfonts as first-order, since people are used to it, but also display the soundfont (as non-selectable item in the list) so people like me who have just begun playing with soundfonts find what’s where.

Then, we have the bank:preset in front of the name (Chris emboldened them; if that’s not possible I’d put them into parenthesēs), so that people do not need to compare the name of the instrument to find out the song they want if they already know the preset number. Pro: names of instruments are not necessarily unique, and they’re English; for international users, comparing numbers might be easier (especially in bank 0 of a GM soundfont, they might have a cheatsheet at hand already in their native language, and just need to figure out the fencepost problem (0-based vs. 1-based) to get the correct sound).

I know this is marked as a "feature request", but it is very important that we get this resolved for future updates to the core SoundFont. Any chance we could have this done for next release?

Though I would like all trumpets together, a temporary workaround might be to prefix the sounds with with soundfont name (or a short version of it). Or maybe just suffixed with an incremental number. Yes, I am aware some instruments are already numbered intrafont, but you could do something like:

Font A
trumpet - 01
trumpet 2 - 01
Font B
trumpet - 02
trumpet 2 - 02

Or maybe incremental letters could be used.

In reply to by Jojo-Schmitz

Reported version 2.2 3.0
Regression No
Reproducibility Always
Workaround No

One really useful solution to this problem would be to copy what Mixcraft does: have a search bar at the top of the instrument selection pop-up:


This would make it much easier for users to find the desired sound within the mass of instrument sounds that can accumulate.

That being said, proper preset ordering (bank first, then preset) would at least put like instruments together. Currently, one must scroll way down past the default ensemble strings to find the new violin, viola, cello and bass section presets. Ordering them bank first would put all of these together.

Also, instead of displaying the presets from all loaded sound banks in the same list, add another drop-down above "Patch:" in the mixer called "Source:", which would let the user choose between all loaded sound banks. Then, the "Patch:" drop-down would only display presets from the selected sound bank. Also selectable in "Source:" could be available external MIDI devices for easy connectivity to VST libraries running in another host.

Search is okay for many use cases, but for people who don’t know what they’re looking for, the browsable/scrollable list should also work (the current dropdown doesn’t scale well).

Also, I would like to repeat the request to indicate, for each sound, which soundfont it is from (at least if there are multiple), or, if we continue sorting by soundfont, separators which indicate which soundfont is which (ideally this even if there is only one, for consistency).

Status PR created fixed

Fixed in branch master, commit b01a1cb583

fix #269939: order preset list to account for similar instruments on different banks

Fixed in branch master, commit 9ff66ed1df

Merge pull request #4535 from jthistle/269939-synth-patch-order

fix #269939: order preset list to account for similar instruments on different banks

In reply to by jotape1960

This "fix" doesn't seem to do anything productve. I was expecting the user to be able to tell when the instruments list switched from one sound font to another. The new display, IMHO, is worse that the previous version. You now have a list like

Grand piano
Grand piano
Mellow Grand piano
Bright piano

It is quite confusing which sounds go with which soundfont. Previously it was easier to tell when you switched from one soundfont to another. I have 3 soundfonts loaded by default. Now, I have to remember that sound font A & C have a grand piano, A & B has a harpsichord and so forth. This may be better for the future playback improvements, but I think it is worse for the user trying to change sounds. I'm open for discussion on this though.

In reply to by mike320

Regression No Yes
Severity S5 - Suggestion S4 - Minor
Status fixed active

No, you’re right, this is awful, not only is the bank:preset not shown (as was requested in this issue) but also the soundfont isn’t (which is the main thing that ought to have come out of this issue), and the new display is worse in that you now can’t even count to figure out when a new soundfont begins.

Perhaps it would be somewhat useful IF the other things (display source soundfont, bank and preset info) had been merged FIRST, but as-is this is a major regression.

In reply to by mirabilos

This should be seen as a typical MS-Excel (or LibreOffice Calc) spreadsheet.
If the user uses more than one SoundFont file, then it has to have more than one "SoundFont" columns group.
Whatever, each used SoundFont source should have the following column group order:
First column should be the bank number.
Second column should be the MIDI patch/instrument number.
Third column should be the patch/instrument name (according with the SoundFont file used).
Maybe all of this could be made FROM xml or text files (associated with the SoundFont files) with all the MIDI information... maybe!

If you wanted to get really fancy, you'd have a header up top with soundfont, bank, preset, name, and you could sort the list via that.
As it is though, it's just really confusing.

This new order works well with most standard soundfonts, but some others, such as Timbres of heaven and other less conventional soundfonts end up way out of order.
You can see in the screenshots that with this new order, sound effects which were stored out of the way in bank 64 now show up at the top of the list
There really should be an option to use the old order or a way to personalize it.

Attachment Size
2019-03-14.png 172.92 KB
2019-03-14 (1).png 194.71 KB

Just reporting here too (as it is linked to above) I brought up the idea of soundfont bookmarks (maybe dots/ small buttons to the left of the list), and I think (assuming there will still be some sort of dropdown list) that being able to let the user set his/ her own bookmarks by patch would make it easy for the user to navigate them, whether one wants to divide soundfonts by sf2, by bank, some combination, or lack thereof.

With version and MuseScore_General_Compact.sf2 (Only Pianos/Strings/A few others)


Why not change the default MuseScore_General_.sf2/3 Instrument Bank /Preset to make the mixer list neat?

Fix version