How do I rearrange the instrument list in a soundfont?

• Jan 16, 2022 - 16:35

Hi. I have been using Polyphone to add some free soundfont instruments to the MuseScore SF2 general soundfont. It works great, but unfortunately, the list that I get when I open the soundfont/mixer to choose an instrument to use, is not in order. For example, I have about 8 piano soundfonts now in the SF2 general font, but some of them are halfway down the list, somewhere near the violins. I want to rearrange all the instruments so that all of them are together (all piano fonts near the top). I cannot find the instruction on how to rearrange a soundfont instrument list, either in MuseScore or Polyphone. Could someone tell me how? I am grateful for any help you can give me.
Thanks
Frank


Comments

In reply to by yonah_ag

Thanks. That seems simple, but ...

When I opened the soundfont in Polyphone, I was unable to change the Preset #. The up/down arrows did not work, and while I could type in a new number, it did not take. As soon as I clicked on another preset, then went back to the one I edited, the Preset # stayed at Bank 1, Preset 9. Here is a screenshot:

Screenshot 2022-01-16 131226.png

What am I missing? Is there some other tab or something I must click to change the Preset #? Also, assume there is already a Preset instrument labeled "Bank 0, Preset 4". If I want another instrument to become Bank 0, Preset 4, what happens to the one already there? Does it get overwritten, or does the program just assign it a different #? If not, do I have to assign it a new # first? Also, how does "Bank" change the order of the instruments, when MuseScore opens the soundfont?

Thanks for your patience.

In reply to by fsgregs

Up-arrow moves a preset to the next available lower preset number in the same bank whilst down-arrow moves to the next available higher preset. So, you need to have available gaps for this to work. There is no scope for presets being overwritten.

Bank seems to be a sub-sort of Preset within Musescore.

In reply to by yonah_ag

Whoa! I am sorry but I am now confused big time. What I am trying simply to do is have the soundfont SF2 file arranged according to instrument type (all pianos together, all violins, all synths, etc.) Perhaps Polyphone has a quick means to do that, or perhaps MuseScore can do it. Is there such a way? If not, and I have to do this manually, I need further clarification. My SF2 piano instruments are by default, in Bank 0, presets, 0, 1, 2, etc. If I want to move a new piano font located at Bank 1, Preset 9, to list just below Bank 0, preset 6, how do I do that? There is already a Preset 7 (another instrument). Do I assign it a new Bank, or ..... I cannot just use the Up and down arrows in the Presets unless I have a blank space, but there is no blank space.

HELP!

In reply to by fsgregs

You cannot use up/down unless there is a space. This is a good design feature in Polyphone as Presets have pre-assigned positions for GM compatibility. So, you would have to use a different bank. If you rearrange your SF2 presets into a different order then don't expect your scores to use the correct sounds if you share via Musescore.

For GM see https://www.midi.org/specifications-old/item/gm-level-1-sound-set but note that Presets are often listed as 0-127 rather than 1-128.

In reply to by yonah_ag

Thanks. I can just invent a new bank for all the instruments I've loaded into the MuseScore default SF2 soundfont, but how does that rearrange the instruments? Does Polyphone have any way to arrange the instruments by type of instrument? If not, it seems really laborious to invent new banks and assign Preset #'s, without knowing how the instruments will arrange when the file is saved and closed.
HELP!
Frank

In reply to by fsgregs

The file will save the presets in exactly the same order that you define them in Polyphone. Closing it will not change this arrangement at all. If you don't need GM compatibility then order the presets however you like. There is no automatic way to sort by instrument type because Polyphone has no idea what type of instrument you are creating.

I wouldn't load any instruments into MuseScore's default font; I would leave it alone and build your custom presets into a separate SF2 file. Just follow the same preset order in your custom font as in the MS font and GM compatibility will be guaranteed. You can have both soundfonts loaded into Polyphone at the same time.

You only need additional banks if you have different versions of the same preset, e.g. 2 different nylon string guitars. You don't need to fill all 128 presets in these additional banks.

If you load both the MS font and your custom font into MuseScore's synthesizer then you don't even need to fill all 128 presets in bank 0 of your custom font as you can rely on the MS font for the missing presets.

In reply to by yonah_ag

Thanks. I did not overwrite the default soundfont. Rather, I opened the MuseScore General SF3 file in Polyphone, added about 10 instrument presets to it, and saved it as an SF2 file. I then loaded that file in MuseScore, and made it the new Default soundfont. This way, I do not have to load 2 or 3 separate custom soundfonts via the View/Synthesizer menu every time I boot up a song. I just have the new default font available, with all the newer/other instruments I want.

That said, I still have no understanding of how to rearrange instruments in this custom font, if I cannot change the GM compatibility. If I understand, I can simply assign a new instrument a new Bank #. but will it arrange near the top of the SF2 file, near the pianos? For example, my piano instruments are in Bank 0, Presets 0 - 6. If I assign a new piano instrument a Bank 3, Preset 0, will it save near the top?

Please help me here. Surely, there is a way to get instruments rearranged based on Bank #s. How?

Thanks again

In reply to by yonah_ag

I was referring to how MuseScore's mixer assigns the order of instruments. I have just learned through trying it that if I assign all the piano instruments in the soundfont a Bank 3 Preset 0, 1, 2, 3, etc. number, they will list following Bank 0, Bank 1 and Bank 2 instruments in the mixer. Somehow, they are listing in MuseScore near the top, even though Bank 0 goes from 0 to 128 in the Presets. I have no good idea how all this works, but it seems to work in the Mixer, so I am assigning all the "new" piano instruments a Bank 3 designation, presets 0, 1, 2, 3, & 4. I'll do the same for all the strings, etc.

If you do understand this somehow, I'd be grateful for an explanation.

In reply to by yonah_ag

I am so sorry for the continuing confusion, but if MuseScore sorted by Preset, then Bank as you suggested, then ALL of the Bank 0, from Presets 0- to 127, would list first in the Mixer, then Bank 1's instruments, then Bank 2, etc. In other words, all of the GM instruments would list first (presets 0 -127), then other instruments in higher banks. That is not what happens. When I open the mixer, MuseScore lists the piano instruments in Banks 0, 1, 2, 3, etc. near the top, then continues with the remainder of the Presets in Bank 0.

In reply to by fsgregs

No, Sort-by Preset then Sort-by Bank has the opposite effect.

Preset is the primary sort criterion and Bank is the secondary sub-sort within each Preset, rather like a tie breaker for equal Presets. So all of Preset 0 is listed first, then all of Preset 1, then P2, P3, P4 etc. and we get in the mixer:

• Preset 0
- - - Bank 0, 1, 2, ...
• Preset 1
- - - Bank 0, 1, 2, ...
• Preset 2
- - - Bank 0, 1, 2, ...
• Preset 3
- - - Bank 0, 1, 2, ...
• Preset 4
- - - Bank 0, 1, 2, ...
:
:
• Preset 127
- - - Bank 0, 1, 2, ...

This is exactly why the Musescore mixer keeps your pianos together at the top.

Polyphone uses Bank as the primary sort and Preset as the secondary, so we get:

• Bank 0
- - - Preset 0-127
• Bank 1
- - - Preset 0-127
• Bank 2
- - - Preset 0-127
:
:
• Bank 127
- - - Preset 0-127

With this method your first variant Grand Piano, (001:000), will be 128 entries below your first Grand Piano, (000:000). If you have a second variant Grand Piano at (002:000) then it will be another 128 entries further down.

This is exactly why your Grand Pianos are not kept together in Polyphone.

In reply to by yonah_ag

AH, now I understand. Thanks so much for clarifying. Seems I have a lot of renumbering to do, to get all the pianos, all the strings, all the synths, all the horns, etc. listed together in my customized SF2 soundfont. I will work on it when I have time, and if anyone is interested, I will post it in the forum. When I am done, I will have perhaps 20 other really beautiful (free) instruments in the font.

In reply to by fsgregs

Sounds an interesting project.

I would put the 20 new instruments into their own SF2 and simply load it globally into the synthesizer so there's no need to change per score. You wouldn't have all your Grand Pianos together by doing this but it would give users a means of knowing when they are using a custom instrument. If you list this custom SF2 before the MS standard then you won't have to scroll thru all the MS instruments to find your specials.

This would also make your SF2 smaller to distribute.

In reply to by yonah_ag

Two questions.
1. How do you load a 2nd soundfont "globally" into a MuseScore song all the time, without having to "Add Soundfont" in the Synth every time you open a score? Is there a way to make two soundfonts both defaults, so they always load together?

  1. How would I move all the custom instruments before the Default General GM instruments as you suggest so they come first? The GM instruments are all Bank 0, Presets 0, 1, 2, etc. Nothing comes before Bank 0, so how can I put the custom instruments in front of it? I could renumber all of Bank 0 to Bank 1, all of Bank 1 to Bank 2, etc. but ... is that what you suggest? If so, it will take me a long time.

In reply to by fsgregs

To make a soundfont collection load by default every time you start MuseScore, simply hit the "set as default" button in the synthesizer window.

I have no insight into soundfont editing so I can't help with that. But I'd personally suggest not messing the default soundfont, and instead just putting your own instruments in your own second soundfont.

In reply to by yonah_ag

Gees! I had no idea you could load 2 or 3 soundfonts into MuseScore, click each of them as a default, and from then on, every song in MuseScore would open all 3. Thanks. I will do as you suggest, then will upload my custom font onto the forum for anyone who wants it.

Do you still have an unanswered question? Please log in first to post your question.