Change of soundfont is cumbersome
Reported version
3.0
Priority
P1 - High
Type
Ergonomical (UX)
Frequency
Many
Severity
S5 - Suggestion
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
In the view->synthesizer->Fluid tab, soundfonts from the defined resource path can be added and removed to a list. The soundfont at the top of the list is used for playback.
Changing the order of the list is currently only possible with 'move up'/'move down' buttons. This is worsened by the reload of soundfont that musescore does every time the order changes.
Fix version
3.6.0
Comments
In this branch https://github.com/barafael/MuseScore/tree/moveSoundfontToTop, I have added a third button to move the selected soundfont to the top and use it for playback.
Pull request: https://github.com/musescore/MuseScore/pull/3983#issuecomment-427031527
Sounds like a great usability improvement. :-)
Came up again in https://musescore.org/en/node/293361
Would like at the very least some sort of drag-and-drop system and a move-to-bottom button, the latter of which is possibly able to be implemented in Musescore 3 easily (though I don't think MS3 is being worked on anymore).
MuseScore 3 is still being worked at, a 3.5 RC has just been done
There's no open PR (anymore)
There is, however, already a move to top button, which there wasn't when this was opened. No move to bottom, true, but that actually seems a lot less important?
In reply to There is, however, already a… by Marc Sabatella
In fact this is most important because the new one soundfont take place up and must be go down.
In reply to There is, however, already a… by Marc Sabatella
@Marc Sabatella You underestimate the importance of "move to bottom". When a soundfont gets added, it moves to the top by default. This can already screw up some soundfonts (that are admittedly not properly set up) such as those with percussion in banks that are not 128. Then you add on the fact that it takes processing time (as Musescore presumably reapplies every loaded soundfont) every time you adjust the list. So when you have a large amount of soundfonts, it takes forever for you to move a new one to the bottom (which you'll absolutely want to do if you, say, add a new instrument, or want to test it out without affecting other sounds).
Really, a drag-and-drop system is optimal, but if that is not achievable then a move to bottom button is at least necessary. Thank you for coming to my TED talk
Also, why is Frequency set to Few? This is applicable to everyone who uses soundfonts, which is a lot of users.
Only less than 6 people so far are bothered by it...
The vast majority of users use exactly one soundfont, the default one.
Some use the HQ one, instead.
In reply to Only less than 6 people so… by Jojo-Schmitz
Just because they do not speak does not mean that they are not bothered. I have been struggling with this issue for two years and I did not say anything until I saw someone else mention it.
In reply to You underestimate the… by DaforLynx
This is exactly how things are. My difficulty in speaking English did not allow me to describe it as well as you @
DaforLynx.
That however is what "Frequency" is counting.
In reply to You underestimate the… by DaforLynx
Each time we try to move the new soundfont to the bottom of the list.
We do not write to the issue-tracker, thinking "There are more important bugs. There will be no one to deal with this".
But since someone made a "move to top" button, why didn't they make one "Move to bottom"?
OK, with you we're now just over the threshold ;-)
Still waiting for a new PR though... i.e. someone to do the actual work
FWIW I agree that adding a soundfont should append it to the list, not move it to the top right away, that's what we have the 'Move to top' button for.
Relates to #311174: [EPIC] UI/UX issues and suggestions (and as such would be a perfect match for 3.6)
To get this right, what is wanted is:
Did I get that right?
In reply to To get this right, what is… by Jojo-Schmitz
For 3: You mean the delay that occurs during the reordering of the soundfont patch list that occurs when the soundfonts change places.
Can this be avoided, I don't know.
Suspicion: Normally patch names should be replaced in the list shown. But if the location of the sound fonts in the memory also changes, the problem may be caused by this. If the compression decompression algorithm is also working at the same time (such as reloading sf3's), delay cannot be avoided. (I'm speaking blindly. I don't know where the code for this is or how it works)
Yes, I mean that. Might not be possible to avoid, but at least is a pretty complicated task.
The other 2 things are basically no-brainers
In reply to To get this right, what is… by Jojo-Schmitz
Yes for me :)
That sounds about right, @Jojo-Schmitz . It's possible the delay might even be caused by the fact that it's moved to the top, since it switches every sound in the mixer to the ones in the new soundfont list. If appended to bottom by default, perhaps any delay associated with this may be alleviated. However, I suspect that it'll still be slow on disk-based systems (like mine) and moving soundfonts will still be slow as well. But I think that's excusable as long as we don't have to maneuver soundfonts slowly down the list.
That might be the case indeed, or maybe partly.
OK, I'm working on it.
Got the "move to bottom" buttons implemented/added for Fluid and Zerberus (not quite a fruit as low hanging as I thought)
Also, instead of appearing to hang when a soundfont gets moved, I've got a process indicator to show, similar to the one seen when adding a soundfont.
The other seemingly low hanging fruit of appending an added soundfont at the end rather then inserting it at the top doesn't seem low hanging at all...
See https://github.com/musescore/MuseScore/pull/6724 (still lacking the append to list and the delayed soundfont loading)
I think for most people, inserting at top of the list is the expected behavior, certainly this was very deliberately. The most common case use is someone just wanting to install a new GM soundfont to replace the default. If the new one were appended to the end, it would seem nothing happened. Most people probably expect it to just work, no additional fiddling. They could be retrained, sure, but I'm not convinced it's a positive thing overall.
Marc, I think you're probably correct about the expectation that an added soundfont will work immediately.
In reply to I think for most people,… by Marc Sabatella
Depending on the use case, this may vary:
I have a basic soundfont that I use constantly.
Sometimes I would like to add an instrument that is not in the basic soundfont (or has a different tone). example: bouzouki, nay, breathy-sax, ovation-guitar, etc.
Since the setup of my basic arrangement is ready, I only need to make a change for the instrument I added.
But since the soundfont I just added changed the entire existing setup (making it pointless if it contains only one instrument), I have to put it at the bottom of the list. Thus, all old settings are preserved and only a new instrument is added to the setup.
@Ziya, I've had similar experiences but I think the average user will want to use their new sound font immediately. Those looking to do something more complicated will probably be able to understand how to move them down. The move to bottom will be a nice option. That's where I put my gong sound font so it wouldn't mess up any scores I've previously made.
Adding anything to any list always appends it to the end. Anything else is confusing.
This is a list (or pipe or queue, FIFO), not a stack (LIFO).
Here, with a sane default of MuseScore General, a General MIDI complete one, and the possibility that the added one is not GM, this even becomes vital, to not screw up playback
With my PR in its current state this is a bit easier though, add new soundfont, move to bottom (in one step), better than having to use move down multiple times, and have to wait for them all to get reloaded between every move and without any indication that something is happening.
An easy solution: one option to "replace" the top soundfont, and another option to "append" the soundfont (or "add") in the soundfont selection menu. Options!
"Add" should indeed append rather then insert at top IMHO. But that is not what some others expect it seems.
"Replace" would be another possible addition.
@Jojo-Schmitz I tried out your PR. While I'll admit I'm a bit disappointed that you couldn't get appending to the bottom working, the move to bottom button and progress bar make things a whole lot easier. One request, though: is there a way to let the user know (perhaps in the Status Bar at the bottom) when a soundfont is currently loading at any time? This would take care of the case where the user starts up Musescore and playback isn't working because the default soundfont is still loading, even though there's no indication of it. This would also provide some defense against the case when Load from Score crashes the program if you use it right after starting up.
Maybe you can give those suggestions a try?
In reply to Maybe you can give those… by Jojo-Schmitz
Ah, I'm not a coder, I'm afraid...
Though I am willing to learn. Firstly, how should I modify the code? Do I fork it off the PR, your branch, or create a new branch off of 3.x?
Depends on whether you want to build a PR of your own or want to make your work based on mine
Fixed in branch 3.x, commit 1990ecc3e9
_Fix #276840, part 2.a): Implement 'Move To Bottom" buttons for Synthesizer
Fluid and Zerberus_
Fixed in branch 3.x, commit ae54ec8825
_Fix #276840, part 2.b): Show progress indicator when moving soundfonts
similar to when adding one, rather than appearing to hang_
So at least party fixed in 3.6.
Might be best to open a new issue for the remaining parts I guess?
Automatically closed -- issue fixed for 2 weeks with no activity.