This commit introduces the notion of "effects profiles", with
reverb/chorus settings that can be set on a per-SoundFont basis.
The configuration file has been updated with an example of applying a
profile to the GeneralUser GS SoundFont.
This commit adds a simple physical control system with two schemes:
* simple_buttons: 4-button scheme
* simple_encoder: 2-button scheme + rotary encoder (with button)
Rename enums, functions parameters and class member variables so that
they match the Circle coding style more closely.
Replace /* ... */ comments with // comments.
Fixup some indentation issues/trailing whitespace.
Remove undefined functions and unused #defines.
Reduce code duplication significantly by employing macros and templates
for parsing strings into enums.
Increase efficiency by adding {BEGIN|END}_SECTION markers in config.def
so that we can avoid unnecessary calls to strcmp() with the section name.
Introduce a ROM manager that scans a 'roms' directory on startup for all
valid ROMs that mt32emu supports.
If none are found in this directory, fall back on searching for
MT32_{CONTROL|PCM}.ROM in the root of the SD card as before.
Add a custom SysEx command that allows the user to switch ROM sets on
the fly.
Add a new config file option for setting the default ROM set.
Closes#18.