Investigate in MuseScore's Fluidsynth
Finding out about the CC11 capability of Fluidsynth in MuseScore is nice. But what would be interesting is - when was it integrated and what happened since then to upstream?
By looking at the
synth.cpp file here and comparing it to this addition in fluidsynth we see that Werner used the latest development version of fluidsynth instead of the quite old release at this point (1.0.7a from February 2006 for the ones interested you can find the source here).
So now that we know what was when (I love source version control systems) we can figure out what changed in fluidsynth and what would be potentially interesting for MuseScore. Since I'm working on getting better synthesizers in MuseScore having an up to date version of fluidsynth seems pretty straight forward. So I had a look at all changelogs since then and created this nice google doc. I sorted out the things I thing would be good for MuseScore (but I haven't checked of some of them might be already in MuseScore!) and which might be good for MuseScore and I'm not sure about it. In the lists with all changes I also marked the ones I sorted out - green means might be interesting and red means is definitely interesting. If you know something about fluidsynth and it's state in MuseScore I would love to read your comment! (It should be also possible to comment in the gdoc!)
I think it is worth to mention that I think there aren't too many commits between the fork of fluidsynth in February 2007 and fluidsynth 1.0.8 in November 2007. But the changelog refers to changes from 1.0.7a to 1.0.8 - so there might be things already present in MuseScore that are mentioned in the changelog of fluidsynth 1.0.8.
Further more fluidsynth 1.1.6 (most recent release) is from August 2012 and it's last change in git is from May 2015. So there might be nice things lying in trunk that might be worth to integrate as well. I haven't looked into that but I will!
Next thing I'll investigate is actual volume of various combinations using velocity and expression on some of the default sounds in MuseScore and after that I'll try to have the first usable implementation in
libmscore/rendermidi.cpp of CC11 commands. (I have a very stupid and naive implementation in my branch testCC11 which was just to play around if things would work as I thought ;))