- Android support, thanks to Radovan Cervenka, with the OpenSL ES
driver adapted from the old libmikmod-android project.
- Support for AmigaOS and its variants like MorphOS, AROS, and a new
AHI driver thanks to Szilárd Biró.
- Build system configuration and packaging simplifications, tidy-ups.
- Several portability tweaks.
- New PSP driver. (untested. suggested by Jon Daniel, based on older
ports from pspdev.)
- Fix some OS/2 bit rot. (for nostalgia...)
libmikmod v3.3.6 was released on 20-Mar-2014.
- UMX loader: Minor corrections to the container parse code with
relation to upkg file format. (for correctness' sake only...)
- ALSA and ESD drivers: Fixed a dlopen() issue.
- PulseAudio driver: Simplified its command line parser procedure,
so that it always sets server and sink to some value, NULL or
otherwise, and fix a very minor memory leak on some occasions.
- Configury, OSS driver: Removed useless check for /dev/sndstat
presence, added <soundcard.h> check to cover all our bases for
less common setups.
- Configury, NAS driver: Use the configury detected X header and
library locations when necessary, not just hardcoded /usr/X11R6/.
- Several configury and makefile clean-ups.
- Added Dreamcast driver from the old 3.2.0b2 dreamcast.es port.
Summary of changes between libmikmod 3.2.0 and libmikmod 3.3.2 ():
==========================================================================
libmikmod 3.3.2 was released on 05-Oct-2013.
This is a serious bug fix release after the previous 3.2.0 series, with
some additional new features. All who are using libmikmod-3.2.0 (or the
interim 3.3.1-beta) must upgrade to the new libmikmod-3.3.2 version.
THANKS
- Paul Spark <sparkynz74@gmail.com> for Microsoft Visual C 6.0 fixes.
- Ozkan Sezer: many changes.
NEW FEATURES
- New CMake build system.
- Updated configury, support for cross-compilation, support for building
in a separate directory, support latest autotools.
- New SDL driver - works both with SDL-1.2.x and with SDL2, supports
floating point output if compiled against SDL2.
- New OpenAL driver, originally suggested by 'kervala', with fixes and
updates and with floating point output support.
- The multi-platform SDL and OpenAL drivers, if they are compiled, have
priority over OS-specific hw drivers for MikMod_RegisterAllDrivers().
- New windows xaudio2 driver, originally suggested by 'honza.c', with
updates, xaudio2.8 support and with floating point output support.
- ALSA driver now supports only the contemporary ALSA 1.0.x versions.
All of the ancient ALSA 0.3.x-0.4.x code were removed.
- Floating point output mode support for ALSA, OSS, Direct Sound, WinMM
drivers and for WAV file writer.
- The pipe and stdout drivers are now configurable
- Raw file-writer now has the lowest priority among the file-writers.
- GCC elf and macho symbol visibility attributes now supported.
- Windows: dllexport/dllimport attributes work properly for MinGW[-w64],
as well as windows compilers. Static builds using MSVC, LCC, etc are
now named mikmod_static.lib. When compiling against static libmikmod,
MIKMOD_STATIC should be defined so that dllimport wouldn't be assumed.
BUGFIXES
- ALSA fixes from Fedora.
- ALSA fixes for "Write error: File descriptor in bad state" crashes,
e.g. RedHat bug #915121. Now works stable.
- ESD (esound) updates from Fedora. Add esd back to configury which was
removed in 3.2.0b3, now requiring >= 0.2.18.
- Minor OSS fixes.
- The NAS driver now actually compiles.
- 64 bit detection fixes.
- Fix BOOL type use all over the source.
- Several const correctness fixes.
- Fixes for CVE-2007-6720 and CVE-2009-0179.
- mmio: memreader fixes and updates.
- Fixes for access violations introduced in 3.2.0b3.
- Fixes for broken memory allocation wrappers introduced in 3.2.0b3.
- Fix MikMod_strerror() might read beyond end of a static array.
- Fix looping volume in Player_SetVolume(), based on an old patch by
Yi-Huang Han.
- XM loader now reads songlength amount of orders from the file and
then seeks to mh->headersize+60 (sf.net bug #10.)
- Fix "unclick" code to consider loop lengths shorter than 16: fixes
crashes seen with several xm files (sf.net bug #12, mpd bug #3425.)
- Mac OS X: new standalone makefile with cross-compilation support.
- DJGPP build fixes.
- Windows: fixes/updates, win64 fully supported. MinGW[-w64] fully
supported along with MSVC and LCC. new standalone MinGW makefile with
cross-compilation support.
- SIMD (AltiVec and SSE2) option is now disabled by default. Can be
enabled by --enable-simd configury option, similarly with cmake. (the
standalone makefiles or project files are added instructions on how to
enable the feature if required.)
- Many compiler warning fixes, other small cleanups.
libmikmod 3.2.0 was released on 01-June-2012.
THANKS
- Axel "awe" Wefers <awe@fruitz-of-dojo.de>,
for creating the CoreAudio driver, the new
AIFF driver, and fixes for the wav output driver.
- Frank Loemker, for sending me his collection of patches
for libmikmod.
- Anders F Björklund <afb@algonet.se>, for updates, fixes and tests on
Mac Platforms and rpm support.
- Ivan Shmakov, for the NAS audio driver.
- Various downstream patch writers (from Mandriva, SuSE, Red Hat/Fedora,
Debian, etc.)
- P. Martin - the macports maintainer for some patches.
- Stéphan Kochen for two patches: one to change MDRIVER fields to "const",
and the other with putting variable declarations at the start of block (which
is more C89 compliant and fixes compilation on Microsoft Visual C++).
NEW FEATURES
- MacOS X CoreAudio driver
- Carbon support
- Loader for ASYLUM Music Format v1.0 (.amf) modules,
as used in crusader games.
- New function 'Player_QueryVoices' added, which is used to return
dynamic channel information about the module player. (Mikmod 3.2.2 uses
it for it's dynamic panels).
- Mixing with floating point output. The MacOSX CoreAudio driver uses it.
Thanks goes to Anders F Björklund for implementing this.
- AIFF disk writer driver.
- New NAS driver (Network Audio System). Tested with nasd and NCD X terminals.
- MREADERs now have an iobase member (previously was a static variable in mmio.c). This
permits to have many MREADERs with different iobase base values.
- Created an example/ subdirectory, to hold programming examples.
- Added functions to read from memory (Player_LoadMem, Sample_LoadMem...) and a memory reader in mmio.c
- renamed internal _mm_malloc function to MikMod_malloc, which is now
part of the API.
- Raw samples can now be loaded using the new Sample_LoadRaw* family of functions for sound effects.
- PowerPC 64 support
- ALSA (Advanced Linux Sound Architecture) driver is now working with "recent"
(actually a few years back) ALSAs.
- Change MDRIVER "char *" fields to "const char *".
- Thanks to Stéphan Kochen.
- Implement a fix to the ALSA driver in MIKMOD_DYNAMIC mode so it will allow
linking against libmikmod when "-Wl,--no-undefined" is passed.
- Reported by Andrey Bondrov from Mandriva.
- The problem was that we used some snd_... identifiers indirectly in
some macro expansions.
BUGFIXES
- The sun driver now compiles on solaris (Thanks to Nicolas Gros d'Aillon
for sending me Jonathan Perkin's fix)
- The wav output driver had problems on big endian systems. Thanks to
Axel "awe" Wefers for fixing this.
- A warning reported by Stéphane LOEUILLET in libmikmod.m4 with autoconf 1.8 was fixed.
- The 'card' argument, supported by the OSS driver was not documented via
the MDRIVER->CmdLineHelp string.
- libmikmod-3.1.11-CVE-2010-2546,2971.diff (from Mandriva/Mageia).
- libmikmod-3.1.11-CVE-2009-3995,3996.diff (from Mandriva/Mageia).
- Now checking for linking against -lm (from Mandriva/Mageia).
- Modified patch of libmikmod-CVE-2009-0179.patch (from Mandriva/Mageia).
- Apply the libmikmod-CVE-2007-6720.patch (from Mandriva/Mageia).
- Implement a fix for sprintf-of-list
- sprintf(list, "%sSOMETHING", list) does not work as expected and
suffers from the
http://en.wikipedia.org/wiki/Schlemiel_the_Painter%27s_algorithm
syndrome.
- Apply a patch for non-blocking opening of the OSS driver. (from Mandriva/Mageia).
- Fixed the prototypes of vc_callback (thanks to P. Martin).
- Cast a vc_callback parameter to "unsigned char *" instead of "char *",
becuase the former is what it accepts (thanks to P. Martin).
- Check for Samples' validatity in virtch_common.c (thanks to P. Martin).
- Fix compilation on MSVC.
- Thanks to Stéphan Kochen.
add music and sound effects to an application. It is a powerful
and flexible library, with a simple and easy-to-learn API.
Besides, the library is very portable and runs under a lot of
Unices, as well as under OS/2, MacOS and Windows. Third party
individuals also maintain ports on other systems, including MS-DOS,
and BeOS.
MikMod is able to play a wide range of module formats, as well as
digital sound files. It can take advantage of particular features
of your system, such as sound redirection over the network. And
due to its modular nature, the library can be extended to support
more sound or module formats, as well as new hardware or other
sound output capabilities, as they appear.
Submitted in PR 8543 by kuebart@mathematik.uni-ulm.de (Joachim Kuebart)