Changelog:
* Added an ability to disable the automatical arpeggio
* Updated the GENS chip emulator from the 2.10 into GS/II (thanks to @freq-mod for the help)
* Added an ability to set number of loops
* Added an ability to disable/enable playing of selected MIDI channels
* Fixed memory damages and crashes while playing XMI files
* Added the chip channels allocation mode option
* Fixed the playback of multi-song XMI files
* Added an ability to switch the XMI song on the fly
And also:
* Fixed the work on big endian processors
* Fixed ARM64 build on some platforms
* Improved support of the EA-MUS files (Thanks to [dashodanger](https://github.com/dashodanger))
* Fixed crash on attempt to change the volume of a blank note
Changelog
* Added an ability to disable the automatical arpeggio
* Added an ability to set the count of loops (how many times to play the song)
* Added an ability to disable/enable playing of selected MIDI channels
* Fixed memory damages and crashes while playing XMI files
* Added bank-specific MT32 defaults (to don't confuse XMI playback between different games, works for AIL and IBK only, and for WOPL if set at the header)
* Added the chip channels allocation mode option
* Fixed the playback of multi-song XMI files
* Added an ability to switch the XMI song on the fly
ALSO (future updates)
* Fixed the work on big endian processors
* Fixed ARM64 build on some platforms
* Improved support of the EA-MUS files (Thanks to [dashodanger](https://github.com/dashodanger))
* Fixed crash on attempt to change the volume of a blank note
The primary reason for this is to avoid dealing with FluidSynth's rather messy compile setup.
This also protects us from breaking API/ABI changes like between version 1 and 2.
This still needs work for Linux/macOS to deal with glib. Windows works fine.
The method open_file use read text flags to open a file and it fail to check the header of the gus patches, by setting the flag to read binary fix the issue.
- fixed gus emulation not working with DMXGUS and DMXGUSC lump
- gus_patchdir and/or ULTRADIR variable can be used to load custom gus patches together with main patches set with midi_config (not required when using DMXGUS(C) lump configuration)
- gus_patchdir and ULTRADIR variable can be used with both DMXGUS and timidity configuration when using GUS emulation
- fixed wildmidi emulation not working with collection of gus patches (resource files)
- removed sf2 files from midi_config items for gus emulation (when using sf2 with gus emulation the sound is distorted), only resource files will be listed to be used with gus emulation.
- removed the `already loaded` check from timidity setup in order to recreate the reader even when changing the gus memory.
- Allow ZLIB::ZLIB target to be provided by a unified build
- Added ZMUSIC_INSTALL variable to allow disabling of install rules (mostly due to how install(EXPORT) works)
- Static libraries don't need dllimport/dllexport on Windows
- Fixed: INTERFACE include directory was missing from zmusic/zmusiclite targets when using with add_subdirectory
- use_fast_math CMake function updated to allow source files to be passed (for GZDoom/Raze)