Commit graph

18 commits

Author SHA1 Message Date
Christoph Oelckers
43203cb207 - removed command line stuff for FluidSynth.
Nothing of this is needed but it got linked in regardless.
2022-07-31 12:33:13 +02:00
Christoph Oelckers
47475495f4 - integrate FluidSynth directly into the project in source form.
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.
2022-07-31 12:12:11 +02:00
Braden Obrzut
95e6bfcd8c Better support for vendoring
- 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)
2021-05-31 22:22:57 +02:00
Braden Obrzut
b3c4b55dab Overhaul CMakeLists to conform with modern CMake
- 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.
2021-02-16 01:38:10 -05:00
Wohlstand
eac26c3aca libADLMIDI and libOPNMIDI: Fixed an infinite loop caused the stuck
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.
2020-10-16 10:54:25 +02:00
Wohlstand
a175de1531 The small update at libADLMIDI
- 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
2020-10-15 13:31:04 +02:00
Wohlstand
8eff49f731 libADLMIDI & libOPNMIDI: Apply the important fix
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.
2020-10-11 07:58:12 +02:00
Wohlstand
13623aeda8 ADL & OPN MIDI: Fixed some MSVC warnings 2020-10-04 08:03:44 +02:00
Wohlstand
c4f24b47f4 OPNMIDI: Try to remive the unistd header at PMDWin emulator
Seems it doesn't required here...
2020-10-04 08:03:44 +02:00
Wohlstand
72c23d98a3 Update libOPNMIDI library to 1.5.0
## 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!)
 * Added support for OPNA chip with Neko Project II Kai YM2602 emulator usage (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
 * Added VGM file dumper which allows to output OPN2 commands into VGM file. (A new MIDI to VGM tool is now created with basing on libOPNMIDI)
 * Fixed an incorrect work of CC-121 (See https://github.com/Wohlstand/libADLMIDI/issues/227 for details)
 * Internality has been refactored and improved
2020-10-04 08:03:44 +02:00
Wohlstand
1d4a016c41 Update libADLMIDI up to 1.5.0
## 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
2020-10-04 08:03:44 +02:00
alexey.lysiuk
271b919048 - fixed ARM64 compilation errors reported by Xcode 12 beta 4
thirdparty/dumb/src/helpers/resampler.c:927:43: error: invalid operands to binary expression
thirdparty/dumb/src/helpers/resampler.c:1132:13: error: called object type 'const float *' is not a function or function pointer
2020-08-09 15:05:24 +03:00
alexey.lysiuk
9d7175259e - timidity++: better handling of soundfont terminal preset record 2020-06-08 14:55:15 +03:00
alexey.lysiuk
e8b2bd4318 - added header files to CMake generated projects 2020-06-08 11:31:07 +03:00
Cacodemon345
425ac9048d
Fix compilation on NetBSD (#8) 2020-05-30 11:26:23 +03:00
alexey.lysiuk
edd802e655 - added ability to build static libraries
Dynamic libraries are still built by default
2020-02-09 12:30:29 +02:00
Christoph Oelckers
17d7942d02 - made the global interface c compatible. Added an empty C source so that incompatibilities immediately trigger compile errors.
- simplified the message printing interface to a single function.
2020-01-11 12:47:07 +01:00
Christoph Oelckers
a4eae42ec5 - initial commit 2020-01-02 17:52:30 +01:00