Change Instrument mid-staff

• Aug 15, 2019 - 22:16

I would like to see the 'Change Instrument' feature of the text property display all the instruments that are present in the loaded sounfont banks for the score. With that we could do a mid-staff change to any of the special instruments eventually present in all the loaded sf banks. So far, that doesn't seem to be the case, because what is displayed looks like the standard GM instrument list or some MuseScore default list.


There are far more instruments available in the instrument list than there is in any soundfont I know of. Limiting the list to the soundfont would be illogical. One reason for this is that instruments like the violin have Arco, pizzicato and tremolo versions in all GM compatible sound fonts, but they are all used on the same instrument often in the same song. There is no instrument change necessary to get these different sounds.

The current method gives you a large amount of flexibility in adding instruments to the score. You can usually add new instruments if one you want does not yet exist.

I'd like to clarify something: soundfonts do not contain instruments at all, they contain sounds. Changing soundfonts may change the sounds available for the computer-generated playback , but it has no effect whatsoever on the instruments available for the "Change Instrument" command. Once you have the selected the instrument list - which is many, many, many times larger than the GM list - then you can also change the sound if you like, using the Mixer, same way you change sounds for the staff as a whole.

In reply to by Marc Sabatella

Let me state this: when you open a soundfont file in an editor, for example Viena (or Vienna, for that matter), you see three classes of objects: SAMPLES, which are SOUNDS, INSTRUMENTS, which are a collection of samples under a single name, for example, trumpet, and PRESETS, which are the very objects that appear in the mixer when you open the instrument list, once that sf file is loaded. So, clearly, the term "instruments" does not have the same meaning for MuseScore and for soundfont editors. Truly enough, I tend to agree with the MuseScore definition of what an "instrument" should be. It should reflect the popular understanding of a musical instrument. However that is NOT what the official SoundFont specification defines as an instrument. I dind't write that spec and like I said, I don't agree with its definition for the term, but, definitely yes, a soundfont, as formally defined, contains instruments, by their own definition. It also contains presets, the higher order object, which is what MuseScore calls instruments. So, to settle this debate, let me go along with Marc's arguments and, from now on, whenever I use that term here in the forum or anywhere else within MuseScore terrain, I'll stick to the MuseScore way of defining it.
By the way, MuseScore_General.sf3 contains about 270 instruments and the General MIDI Instrument definition contains 128 instruments. So, yes, the instrument list in MuseScore mixer is a little over twice the official GM list.
So, a soundfont does not contain ONLY sounds (the samples). It is a complex, well organized structure, encompassing more than just the samples. Just open one in an editor and check.

In reply to by luizcrodrigues

This confusion will continue as some people still think the sound-font is a sample container.

The term "Instrument" used by Musescore software refers to "Instrument-definition".
It only uses/contains information for the Instruments. (Voice-range; Clef and Staff information, Transposing def., Link to a GM patch number, musicXML-Id, etc.)

Patches/Instrument-sounds (samples, presets and their adjustments) are in the soundfont.

They're trying to find a new name for the sountfont-patches you can see on the mixer, so that the two terms don't mix (and find a translate(able) name for other languages). And the new name they want to use for the Instruments (patches) in the mixer is "Sound."

The word-changing and meaning-shifting (equivocation) process is also about this subject.

In reply to by luizcrodrigues

OK, then how I would state is, in MuseScore the only thing you can access directly within a file that happens to be in "SoundFont" format is the PRESET. The people defining the "SoundFont" format can obviously define the term INSTRUMENT or SOUND however they want within that context, but they continue to mean what they already mean in other contexts.

To be clear, in the MuseScore context, an "instrument" is an abstraction that consists of a plain language name (eg, Alto Gemshorn), a standardized MusicXML id (eg, wind.flutes.gemshorn), information about the number of staves and their configuration (eg, one staff with G clef), the amateur and professional ranges of the instrument (eg, MIDI pitches 65-80), and string data or transposition information if appropriate, some miscellaneous playback related settings such as the interpretation of articulations, and info on what "sound" (In the generic sense of word, not the sense specific to the internal design spec of the "SoundFont" format). The slightly more specific term we use to select the sound is "program", a term in standard use in the MIDI world. And for alto gemshorn, it's program number 79 - the general MIDI standard for ocarina - that we use. Whether the receiving device internally calls that a PRESET or soemthing else is immaterial to us, what matters is that we can select it using a program change with value 79.

So, when you happen to using something in "Soundfont" format, what we might generically call a "sound" is apparently (from what you are saying) mapped by the synthesizer to what they specifically a PRESET. But remember, we don't just support "Soundfont" format; we also support SFZ format (which may for all I know call it something else) and also JACK and general MIDI out. So the term "program" is really the most specific term that we can use here that is also sufficiently general. This is what all MIDI synthesizers respond to ("program change" messages) so it is what we call the number we use to identify the particular sound we want (there can also be bank and port information.

Anyhow, with all of that now hopefully made more clear: do you still have a question about something, or are the previous answers given now clear as well?

BTW, while the list of PRESETS in the MuseScore default soundfont might only twice be as long as the GM list, the instrument list in MuseScore is much larger still - 564 currently.

In reply to by Marc Sabatella

Truly enough, the clarifications are all ok, and I don't argue against them, in fact I understand and I agree with what has been posted. But going over all the posts again, it seems to me that my initial request has been left behind. My feature request was that the "Change Instrument" feature could list the instruments that are available for use, based on the soundbanks that are loaded for the current score. My scores are loaded with special sound banks (I guess many score writers do that), but the instrument names from these banks do not appear in the list when an instrument change is used. Simply that. If that is not feasible, for some reason, fine, I'll live with it. My work around is to create a separate staff for each instrument and not use the Change Instrument feature for the cases where the change would be for an instrument from one of the special banks. Practical example: I'm working on a bank that will contain several types of harmonica, with different ranges, different sounds, different envelopes, different styles, etc. Those will have special names, occupying special bank numbers and presets, that will not appear in the Change Instrument list. They all appear, though, in the mixer list. This is the fundamental reason of my initial post: the Change Instrument list is not the same as the Mixer list. With the work around I'm using, there is one staff for each type of harmonica, each one being populated in the right time. That way I don't need to change instrument in any staff. The cost here is a score with many staves for the same type of instrument.

In reply to by luizcrodrigues

Unless you have a way to get the other information MuseScore needs - the transposition, clef, all the other things I mentioned - then no, it simply doesn't make sense to use presets in soundfonts as if they were instruments. Instead, you can create your own custom instruments.xml file to specify all that information, and then tell MuseScore to use your custom XML file in Edit / Preferences / Score.

Realistically, for the harmonic case you mentioned, much simpler is not to use the Change Instrument command at all, but instead simply add the instrument change text then go right to the mixer to change the sound only - you don't need the whole instrument abstraction for that. But if you do care about having the right range for each for the purpose of the range warnings in MuseScore, you'll need the custom XML file, and then use the Change Instrument. Either way, there is certainly no need for multiple staves.

In reply to by luizcrodrigues

( luizcrodrigues:)
Banks in sound-fonts do not have the Instrument-definitions required by Musescore, They just produce an instrument-sound.

Each time you change the Instrument in Musescore (with Instrument-Change text), a new sub-channel opens in the mixer inside that channel. [see: mx01.png and mx02.png] Here you can change to any other voice. (click on the sub-channel and change the patch)

Attachment Size
mx01.png 12.69 KB
mx02.png 43.05 KB

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