The organization here is now the same as for the Timidity++ device, i.e. it is the device owning the instruments to give better control over their lifecycle.
# Conflicts:
# src/sound/timidity/instrum_font.cpp
# src/sound/timidity/instrum_sf2.cpp
# src/sound/timidity/mix.cpp
# src/sound/timidity/playmidi.cpp
# src/sound/timidity/resample.cpp
* use std::string instead of FString
* replaced the single use of clamp with std::min/std::max.
* copied MAKE_ID macro into the source.
* use snprintf instead of mysnprintf
* use std::runtime_error instead of I_Error to abort on failed memory allocations.
# Conflicts:
# src/sound/timidity/common.cpp
# Conflicts:
# src/sound/timidity/common.cpp
# src/sound/timidity/instrum.cpp
# src/sound/timidity/instrum_dls.cpp
- allow the GUS to change sound fonts at run time.
- implemented sound font manager support in the GUS synth. This works but also made me realize that the SF2 support of this synth has been rather broken, apparently forever.