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
- Prefer target properties instead of setting variables whenever possible.
A zmusic-obj target now exists to represent the commonality between zmusic
and zmusiclite.
- Factored out as much as possible from global settings to per target settings
which will make it easier to support using ZMusic as a submodule. Moved
helper functions into a ZUtility.cmake module.
- We now generate and install ZMusicConfig.cmake so find_package(ZMusic)
will work either automatically or given ZMusic_DIR is set.
- CPack is enabled although some refinement is still needed.
- Requires CMake >= 3.13 which is newer than I would normally like, but given
how no one like to refactor these things it may be better to deal with the
short term pain of going a little aggressive on the requirement in order to
avoid having to make things ugly. Especially given that these scripts have
a tendency to be copy/pasted into sister projects. CMake itself has very few
dependencies so users of old Linux distros should be able to easily compile
a supported version of CMake.
- On Windows CMake >= 3.15 is required for redistributable results.
- Cleaned out bits that were copied from GZDoom but not relevant to ZMusic.
Recently I've got the report from @drfrag666 that at LZDoom some banks
do cause the dead freeze and that is probably because of the merge
problems. However, after my research, I found the bug at me: in a very
special case, a zero delay value may appear that will cause the stuck.
- Fixed a bug of DMX frequency, accidentally ported from DMX
- Removed the useless adlmidi_sequencer.cpp file
- Synchronize all files of chipset with OPL3-BE
Fixed an incorrect timer processing when using a real-time interface.
This bug does directly affect the case of ZMusic which does use of RealTime API of both libraries.
## 1.5.0 2020-09-28
* Drum note length expanding is now supported in real-time mode (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
* Channels manager has been improved (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
* Nuked OPL3 1.8 emulator got some optimizations ported from 1.7 where they are was applied previously (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
* Reworked rhythm-mode percussions system, WOPL banks with rhythm-mode percussions
* Added Public Domain Opal OPL3 emulator made by Reality (a team who originally made the Reality Adlib Tracker) (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
* Added LGPL licensed JavaOPL3 emulator made by Robson Cozendey in Java and later rewritten into C++ for GZDoom (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
* Fully rewritten an embedded bank database format, embedded banks now supports a wider set (more than 127:127 instruments in one bank)
* Improved accuracy of the DMX volume model, include the buggy AM interpretation
* Improved accuracy of Apogee volume model, include the bug of AM instruments
* Improved accuracy of the Win9X volume model
* Removed C++ extras. C++-bounded instruments tester is useless since a real-time MIDI API can completely replace it
* Added AIL volume model
* Added Generic FM variant of Win9X volume model
* Fixed an incorrect work of CC-121 (See https://github.com/Wohlstand/libADLMIDI/issues/227 for details)
* Added HMI volume model (Thanks to [Alexey Khokholov](https://github.com/nukeykt) for help with research!)
* Added frequency models, assigned to every volume model: AIL, HMI, DMX, Apogee, 9X, and the Generic formula