Summary of changes between libmikmod 3.1.6 and libmikmod 3.1.7 (Sauxillanges):
==============================================================================

libmikmod 3.1.7 will be released on 06/28/1999.


THANKS

- Anders Bjoerklund did a terrific job of creating a Macintosh driver !
  I'm proud to add the MacOS to the list of supported systems.

- Bjornar Henden provided a non-directX driver for Windows NT users. This
  makes libmikmod more portable than ever. Thanks a lot !

- Simon Hosie contributed speed optimizations and bug fixes to the software
  mixer. Thanks for your work !

- Timo Taipalus pointed out several severe problems and helped me to get rid
  of them. Thanks for your efforts !


BUGFIXES (more details can be found in file ``PROBLEMS'')

- Very long samples were truncated when played with the normal software
  mixer.

- Invalid notes using non-existent instruments caused the current note to
  be retrigged instead of being ignored.

- Porta to note effects did not restart the sample envelopes.

- Note cut with non empty volume column on the same row resulted in the note
  cut being ignored.

- Disabling/enabling envelopes had no effect.

- 15 instrument modules embedding a ``Music Channel BBS'' ad were rejected.

- Huge (>64Kb) sample offsets were ignored with the hiqh quality mixer.

- Delay note effect was incorrectly converted to pattern jump, and porta to
  note was incorrectly converted to tremor, for GDM modules.

- Dual effect Lxx in S3M and IT was misconverted to L00 (this bug was
  introduced in 3.1.5-beta2, thanks to Timo Taipalus for noticing it)

- Pitch envelope was not played accurately (IT).

- XM modules in format 1.03 couldn't be loaded.

- XM modules with the tracker name empty made the library coredump on some
  platforms.

- Set finetune effect (E5x) wasn't handled correctly for XM modules.

- Fine slides (X1x,X2x) didn't play correctly for XM modules (thanks to Frank
  Loemker for reporting it).

- If the MikMod_InitThreads() function was called more than once, the library
  did not behave correctly.


NEW FEATURES

- Modules can be played with a speed shift (suggested by Roope Anttinnen).

- MikMod_Init() and MikMod_Reset() have been extended to pass specific
  parameters to the drivers. This makes libmikmod 3.1.7 incompatible with the
  previous versions, but updated libmikmod-based players will be released soon.
  The shared library version has increased (now 2.0). This number scheme is
  going to be as crazy as ncurses' one... 


PLATFORM SPECIFIC

- It was not possible to create a multithreaded library on FreeBSD (fix by
  Roope Anttinnen).

- HP-UX driver used to reset mixer settings at initialization.

- Added MacOS support, thanks to Anders Bjoerklund.

- Solaris driver now works on Solaris/Intel edition.



Summary of changes between libmikmod 3.1.5 and libmikmod 3.1.6 (Romegier):
==========================================================================

libmikmod 3.1.6 was released on 03/24/1999.


BUGFIXES

- When the library was built thread-safe, calls to Player_SetPosition
  resulted in a deadlock.

- The OSS driver was too strict and didn't allow OSS to select a different
  playback frequency.

- A volume bug has been removed from the module player (thanks to Thomas
  Neumann for the report).


NEW FEATURES

- Volume ramping has been ported from the high quality mixer to the regular
  mixer, and is enabled when interpolated mixing is requested. You should hear
  less clicks in interpolated mode from now ! (Suggested by Bjornar Henden)

- The UNI loader recognizes APlayer format 1.3 modules.


PLATFORM SPECIFIC

- The NetBSD and OpenBSD driver should work with recent NetBSD and OpenBSD
  versions.

- Some Windows code has been merged. Feedback will be appreciated. Note that,
  as I don't have a windows development system (and no plan to have one in the
  near future), I can't test or debug the Windows part myself.



Summary of changes between libmikmod 3.1.2 and libmikmod 3.1.5 (Pradelles):
===========================================================================

libmikmod 3.1.5 was released on 03/01/1999.


THANKS

- Many thanks to Lutz Roeder and Uwe Thoma, who send me the description of
  the Imago Orpheus file format (IMF), as well as some of Imago's code, which
  made the creation of the IMF loader a pure C exercise (-:

- Many thanks to Claudio Matsuoka, Tobias Gloth, C. Ray C. and Ben Collver for
  their contributions and bug reports.

- Also big thanks to Jan Havelka for his help in tracking and fixing bugs.

- I almost forgot to thank Cedric Hebert for pointing out the gcc 2.x
  optimization options bug !

- And as a last-minute add-on, Kev Vance submitted a GDM loader.


BUGFIXES

- The OSS driver used much more memory than necessary without reason.

- Samples longer than 1 Mb were not played correctly. However, the fix now
  requires that your C compiler provides a 64 bit integer type. As a result,
  libmikmod will not compile anymore on AIX with old versions of xlC.

- Samples with ping pong loops could make the library segfault on some rare
  conditions. This bug was also present in MikIT and in the module plugin
  of winamp, which are also based on old MikMod 3 sources...

- The sample loaders will now load samples with extra information blocks in
  them, and has been made more robust.

- More checks to detect empty song messages.

- The song message loading routine was bugged and could make the library
  coredump.

- AMF modules in formats 1.0, 1.2 and 1.3 couldn't be loaded.

- MED loader now loads instrument names and song message if they exist.

- More check have been added to the 15 instrument MOD loader to prevent it
  from hanging on non-mod files ; let me know if you still experience
  problems with it.

- STM loader rejected STM created by MOD2STM ; the last pattern was never
  played ; also, in some STM modules the samples were not loaded correctly.

- XM modules in format 1.02 couldn't be loaded.

- Envelope sustain loops in XM modules were not processed correctly.

- Porta to note using the command memory used sometimes an incorrect value
  when playing AMF, IT, S3M and ULT modules.

- Volume slides for IT (Dxx) and XM (Axx) modules didn't continue in the
  background.

- Porta down effect in the volume column of IT modules was not played
  correctly.

- Problems occuring when compiling libmikmod when an older version of libmikmod
  is installed are now fixed.


DOCUMENTATION FIXES

- The documentation incorrectly referred to PAN_MIDDLE instead of PAN_CENTER.


NEW FEATURES

- On platforms that support POSIX.4 threads, the library is now thread-safe.

- Depending on your system's capabilities, ALSA and EsounD driver can now
  be dynamically loaded when a libmikmod application is run, so if you built
  your binary with the shared ALSA or EsounD libraries (which is the default),
  it will run on other systems lacking those libraries.

- New loaders for GDM (General Digital Music), IMF (Imago Orpheus) and STX
  (STMIK 0.2) modules.

- UNI loader is back, for those who need to play the ``Acid Tetris'' songs.

- S3M loader correctly identifies S3M modules created by Impulse Tracker
  an Imago Orpheus.

- IT effect T (slide tempo) is now implemented.

- The driver for the Linux Ultrasound project (the ancestor of ALSA) is back,
  too.

- The selection of the standard or high-quality software mixer is now made at
  runtime.

- New interfaces Voice_Get{Frequency,Panning,Volume} and
  Player_GetChannelPeriod (this one is for x11amp's MikMod plugin).

- Due to the addition of the new driver and loaders, library version has
  increased.


PLATFORM SPECIFIC

- Compiling with gcc 2.x under Linux on x86 platforms performed aggressive
  optimizations which had nasty interferences with the channel volumes on
  some modules. Hopefully this is now fixed, so gcc users will get the same
  sound quality as egcs users.
  I apologize to everyone told me of this volume problem for the time it took
  me to figure out where it came from.


Previous versions of libmikmod were bundled with the MikMod player ; refer to
its ``NEWS'' file for older changes information.
