1Summary of changes between libmikmod 3.3.10 and libmikmod 3.3.11:
2========================================================================
3
4libmikmod v3.3.11 was released on June 14, 2017.
5
6- Fixed lots of possible crashes in the IT, XM, S3M, STM, STX, AMF, IMF,
7  GDM and MED module loaders.
8- Fixed a possible endless loop in the IT loader with malformed files.
9- Fixed signed integer overflow leading to crashes in the sample loader.
10- Fixed a possible crash in MMCMP depacker with malformed files.
11- Fixed the broken fixed-line comment reader which might possibly lead
12  to crashes, and also badly translated several song messages. The new
13  code is adapted from libopenmpt.
14- Support for building the Windows version using Open Watcom compiler.
15- A few minor OS/2 fixes.
16- CMake updates.
17- Other minor fixes/tidy-ups.
18
19Thanks to:
20- Lionel Debroux, for providing fuzz files which helped finding defects.
21- Johannes Schultz (sagamusix), for allowing us to use a piece of code
22  from libopenmpt.
23
24
25Summary of changes between libmikmod 3.3.9 and libmikmod 3.3.10:
26========================================================================
27
28libmikmod v3.3.10 was released on 31-Aug-2016.
29
30- Fixed windows builds when UNICODE is defined. (Thanks S. Michel).
31
32
33Summary of changes between libmikmod 3.3.8 and libmikmod 3.3.9:
34========================================================================
35
36libmikmod v3.3.9 was released on 12-Aug-2016.
37
38- Amiga, AHI driver: Fixed a crash upon driver shutdown.
39- Amiga: Updates. Added standalone makefiles with cross-build support.
40- RAW file writer: Changed to use ansi stdio functions instead of
41  posix unistd, for better portability.
42- Playercode: Allocate the right channel reverb buffers only if the
43  mixer is setup for stereo mode. (Helps with ports to memory-tight
44  platforms. Patch from Andrew Rossignol.)
45- Fixed access to uninitialized memory in the simpleplayMEM example
46  program.
47- Added a configuration option to exclude the hqmixer (off by default.)
48- Using locale-insensitive ctype.h and casecmp functions in library.
49- Configury: New --disable-alldrv option to disable all of the audio
50  output drivers.  If additional --enable-xxx options are given, the
51  specified drivers will be enabled.
52
53
54Summary of changes between libmikmod 3.3.7 and libmikmod 3.3.8:
55========================================================================
56
57libmikmod v3.3.8 was released on 15-Nov-2015.
58
59- Handle the FastTracker2 pattern loop (E60) bug. Modules abusing this
60  bug (roadblas.xm) should play correctly now. Thanks to Eugene Toder.
61- AMF loader: Fixed segmentation fault in case of bad sample offsets in
62  broken files. (sf.net bug #26, thanks to 'Saga' of OpenMPT project for
63  the report and analysis.)
64- AMF loader: Fixed loading of v10 files where sample loop start and end
65  values must be read as 32 bits, not 16 bits. (Tested with Maelcum's
66 "the tribal zone" and "the way its gonna b". Noticed in OpenMPT source)
67- Fixed a possible undefined behavior in the XM loader.
68- Support for MMCMP, Amiga PP20 (PowerPack), STC (Stone Cracker S404)
69  and XPK compressed module formats, based on public domain code from
70  libmodplug and libxmp.
71- Support for OpenBSD sndio.
72- Fixed SDL output driver, so that it doesn't crash upon resetting.
73- Disabled the gt2 loader until it is completed properly. (It has been
74  always non-functional since its introduction in v3.2.0.)
75- Updated configury. The aix, hpux, bsd/sunaudio and sgi audio drivers
76  are now configurable and not built unconditionally. Haiku support
77  thanks to Jérôme Duval.
78- Documentation update.
79- Update DOS build for the new djgpp-2.05 release.
80- Minor fix/tidy-ups.
81
82
83Summary of changes between libmikmod 3.3.6 and libmikmod 3.3.7:
84========================================================================
85
86libmikmod v3.3.7 was released on 31-Aug-2014.
87
88- Android support, thanks to Radovan Cervenka, with the OpenSL ES
89  driver adapted from the old libmikmod-android project.
90- Support for AmigaOS and its variants like MorphOS, AROS, and a new
91  AHI driver thanks to Szilárd Biró.
92- Build system configuration and packaging simplifications, tidy-ups.
93- Several portability tweaks.
94- New PSP driver. (untested. suggested by Jon Daniel, based on older
95  ports from pspdev.)
96- Fix some OS/2 bit rot. (for nostalgia...)
97
98
99Summary of changes between libmikmod 3.3.5 and libmikmod 3.3.6:
100========================================================================
101
102libmikmod v3.3.6 was released on 20-Mar-2014.
103
104- UMX loader: Minor corrections to the container parse code with
105  relation to upkg file format. (for correctness' sake only...)
106- ALSA and ESD drivers: Fixed a dlopen() issue.
107- PulseAudio driver: Simplified its command line parser procedure,
108  so that it always sets server and sink to some value, NULL or
109  otherwise, and fix a very minor memory leak on some occasions.
110- Configury, OSS driver: Removed useless check for /dev/sndstat
111  presence, added <soundcard.h> check to cover all our bases for
112  less common setups.
113- Configury, NAS driver: Use the configury detected X header and
114  library locations when necessary, not just hardcoded /usr/X11R6/.
115- Several configury and makefile clean-ups.
116- Added Dreamcast driver from the old 3.2.0b2 dreamcast.es port.
117
118
119Summary of changes between libmikmod 3.3.4 and libmikmod 3.3.5:
120========================================================================
121
122libmikmod v3.3.5 was released on 10-Jan-2014.
123This is a minor bugfix / maintenance release.
124
125- New PulseAudio driver for audio output, using pa_simple_* api.
126- Improved ALSA driver.
127- mikmod.texi: Fixed document generation using newer texinfo.
128- Updates and fixes to configury (autotools) and to cmake support.
129  Cmake support covers more targets and options now.
130- Made the aiff, wav and raw file writer drivers configurable: the
131  library can be configured and compiled without any audio output
132  drivers if so required, except for drv_nos ('nosound') of course.
133- DOS (djgpp): fixed the sound blaster SB16 driver.
134- Fixed a few potential sources of crash, several code clean-ups.
135- Minor compilation fixes against ancient software versions.
136- Merged an updated gp32 driver (it is still an untested driver...)
137
138
139Summary of changes between libmikmod 3.3.3 and libmikmod 3.3.4:
140========================================================================
141
142libmikmod 3.3.4 was released on 08-Dec-2013.
143
144- libmikmod.m4: fixed so that it works with C++ compilers.
145- cmake: fixed a cpack version number issue.
146- Fix CVE-2006-3879 (Secunia 21196) for Graoumf tracker (gt2) loader.
147  (the loader is non-functional yet but the issue was there.)
148- Fix memory leaks in the Graoumf tracker (gt2) loader.
149- UMX loader: Support umx music files from Unreal 1997/98 beta version.
150- S3M loader: Enforce the 64000 bytes sample length limit, which has
151  been in effect since libmikmod-v3.1.10, only for tracker id 1, i.e.
152  only if setting the S3MIT_SCREAM flag during track conversion. Fixes
153  playback of some rare brokenly prepared files - e.g. Arena2.umx from
154  the unreal game community add-on level decyberduel.
155- ULT loader: Fix version array size (was 1 less then its initializer.)
156- ESD driver: Fix signature for esd_playstream function pointer (const)
157- ALSA driver: Remove unused function pointers.
158- The library is compilable using C++ compilers.
159
160
161Summary of changes between libmikmod 3.3.2 and libmikmod 3.3.3:
162========================================================================
163
164libmikmod 3.3.3 was released on 15-Oct-2013.
165This is a bug fix/maintenance release, with a new umx loader as the
166new feature.
167
168- New loader to load modules contained in UMX files from games like
169  Unreal, DeusEx, etc. (Developers: custom MREADER implementations
170  must respect the 'iobase' field for umx loading to work for them.
171  see the splayMEM example app source.)
172- AIFF file writer now silently ignores and clears float output mode.
173- Fixed a small memory leak in samples freeing (thanks to S. Michel.)
174- Fixed calling the previous position while at position 0 resulting
175  in an invalid read. (noticed while running mikmod under valgrind.)
176- Memory reader now fills the available bytes to destination buffer
177  when a short read is happening, while still returning false.
178- Memory reader now respects the iobase value of the reader struct.
179  (doesn't change normal behavior, but may help with new features.)
180- Updated simpleplayMEM example application.
181- Fix return types for MREADER->Seek and MWRITER->Put to be int, and
182  not BOOL. (identical functionality but non-misleading.)
183- Documentation fixes with relation to free()/MikMod_free().
184- Marked the SIMD (SSE2/AltiVec) option as unstable in the makefiles
185  and configury/cmake: not recommended until it is fixed properly.
186- Provided new Visual Studio 6 and Visual Studio 2005 project files.
187  The latter imports into newer Visual Studio versions, e.g. VS2012.
188- Fixed some driver version signatures which I missed changing in the
189  previous release. (cosmetic change.)
190
191
192Summary of changes between libmikmod 3.2.0 and libmikmod 3.3.2:
193========================================================================
194
195libmikmod 3.3.2 was released on 05-Oct-2013.
196
197This is a serious bug fix release after the previous 3.2.0 series, with
198some additional new features. All who are using libmikmod-3.2.0 (or the
199interim 3.3.1-beta) must upgrade to the new libmikmod-3.3.2 version.
200
201THANKS
202
203- Paul Spark <sparkynz74@gmail.com> for Microsoft Visual C 6.0 fixes.
204- Ozkan Sezer: many changes.
205
206NEW FEATURES
207
208- New CMake build system.
209- Updated configury, support for cross-compilation, support for building
210  in a separate directory, support latest autotools.
211- New SDL driver - works both with SDL-1.2.x and with SDL2, supports
212  floating point output if compiled against SDL2.
213- New OpenAL driver, originally suggested by 'kervala', with fixes and
214  updates and with floating point output support.
215- The multi-platform SDL and OpenAL drivers, if they are compiled, have
216  priority over OS-specific hw drivers for MikMod_RegisterAllDrivers().
217- New windows xaudio2 driver, originally suggested by 'honza.c', with
218  updates, xaudio2.8 support and with floating point output support.
219- ALSA driver now supports only the contemporary ALSA 1.0.x versions.
220  All of the ancient ALSA 0.3.x-0.4.x code were removed.
221- Floating point output mode support for ALSA, OSS, Direct Sound, WinMM
222  drivers and for WAV file writer.
223- The pipe and stdout drivers are now configurable
224- Raw file-writer now has the lowest priority among the file-writers.
225- GCC elf and macho symbol visibility attributes now supported.
226- Windows: dllexport/dllimport attributes work properly for MinGW[-w64],
227  as well as windows compilers. Static builds using MSVC, LCC, etc are
228  now named mikmod_static.lib. When compiling against static libmikmod,
229  MIKMOD_STATIC should be defined so that dllimport wouldn't be assumed.
230
231BUGFIXES
232
233- ALSA fixes from Fedora.
234- ALSA fixes for "Write error: File descriptor in bad state" crashes,
235  e.g. RedHat bug #915121. Now works stable.
236- ESD (esound) updates from Fedora. Add esd back to configury which was
237  removed in 3.2.0b3, now requiring >= 0.2.18.
238- Minor OSS fixes.
239- The NAS driver now actually compiles.
240- 64 bit detection fixes.
241- Fix BOOL type use all over the source.
242- Several const correctness fixes.
243- Fixes for CVE-2007-6720 and CVE-2009-0179.
244- mmio: memreader fixes and updates.
245- Fixes for access violations introduced in 3.2.0b3.
246- Fixes for broken memory allocation wrappers introduced in 3.2.0b3.
247- Fix MikMod_strerror() might read beyond end of a static array.
248- Fix looping volume in Player_SetVolume(), based on an old patch by
249  Yi-Huang Han.
250- XM loader now reads songlength amount of orders from the file and
251  then seeks to mh->headersize+60 (sf.net bug #10.)
252- Fix "unclick" code to consider loop lengths shorter than 16: fixes
253  crashes seen with several xm files (sf.net bug #12, mpd bug #3425.)
254- Mac OS X: new standalone makefile with cross-compilation support.
255- DJGPP build fixes.
256- Windows: fixes/updates, win64 fully supported. MinGW[-w64] fully
257  supported along with MSVC and LCC. new standalone MinGW makefile with
258  cross-compilation support.
259- SIMD (AltiVec and SSE2) option is now disabled by default. Can be
260  enabled by --enable-simd configury option, similarly with cmake. (the
261  standalone makefiles or project files are added instructions on how to
262  enable the feature if required.)
263- Many compiler warning fixes, other small cleanups.
264
265
266Summary of changes between libmikmod 3.1.11 and libmikmod 3.2.0 (Xorigad):
267==========================================================================
268
269libmikmod 3.2.0 was released on 01-June-2012.
270
271THANKS
272
273- Axel "awe" Wefers <awe@fruitz-of-dojo.de>, for creating the CoreAudio
274  driver, the new AIFF driver, and fixes for the wav output driver.
275- Frank Loemker, for sending me his collection of patches for libmikmod.
276- Anders F Björklund <afb@algonet.se>, for updates, fixes and tests on
277  Mac Platforms and rpm support.
278- Ivan Shmakov, for the NAS audio driver.
279- Various downstream patch writers (from Mandriva, SuSE, Red Hat/Fedora,
280  Debian, etc.)
281- P. Martin - the macports maintainer for some patches.
282- Stéphan Kochen for two patches: one to change MDRIVER fields to "const",
283  and the other with putting variable declarations at the start of block
284  (which is more C89 compliant and fixes compilation on Microsoft Visual
285  C++).
286
287NEW FEATURES
288
289- MacOS X CoreAudio driver
290- Carbon support
291- Loader for ASYLUM Music Format v1.0 (.amf) modules, as used in crusader
292  games.
293- New function 'Player_QueryVoices' added, which is used to return
294  dynamic channel information about the module player. (Mikmod 3.2.2 uses
295  it for its dynamic panels).
296- Mixing with floating point output. The MacOSX CoreAudio driver uses it.
297  Thanks goes to Anders F Björklund for implementing this.
298- AIFF disk writer driver.
299- RPM support. To build a rpm, download the tar.gz, and run this:
300   % rpmbuild -tb libmikmod-3.2.0-beta2.tar.gz
301- New NAS driver (Network Audio System). Tested with nasd and NCD X
302  terminals.
303- MREADERs now have an iobase member (previously was a static variable
304  in mmio.c). This permits to have many MREADERs with different iobase
305  base values.
306- Created an example/ subdirectory, to hold programming examples.
307- Added functions to read from memory (Player_LoadMem, Sample_LoadMem...)
308  and a memory reader in mmio.c
309- renamed internal _mm_malloc function to MikMod_malloc, which is now
310  part of the API.
311- Raw samples can now be loaded using the new Sample_LoadRaw* family of
312  functions for sound effects.
313- PowerPC 64 support
314- ALSA (Advanced Linux Sound Architecture) driver is now working with
315  "recent" (actually a few years back) ALSAs.
316- Change MDRIVER "char *" fields to "const char *".
317    - Thanks to Stéphan Kochen.
318- Implement a fix to the ALSA driver in MIKMOD_DYNAMIC mode so it will
319  allow linking against libmikmod when "-Wl,--no-undefined" is passed.
320    - Reported by Andrey Bondrov from Mandriva.
321    - The problem was that we used some snd_... identifiers indirectly in
322    some macro expansions.
323
324BUGFIXES
325
326- The sun driver now compiles on solaris (Thanks to Nicolas Gros d'Aillon
327  for sending me Jonathan Perkin's fix)
328- The wav output driver had problems on big endian systems. Thanks to
329  Axel "awe" Wefers for fixing this.
330- A warning reported by Stéphane LOEUILLET in libmikmod.m4 with autoconf
331  1.8 was fixed.
332- The 'card' argument, supported by the OSS driver was not documented via
333  the MDRIVER->CmdLineHelp string.
334- libmikmod-3.1.11-CVE-2010-2546,2971.diff (from Mandriva/Mageia).
335- libmikmod-3.1.11-CVE-2009-3995,3996.diff (from Mandriva/Mageia).
336- Now checking for linking against -lm (from Mandriva/Mageia).
337- Modified patch of libmikmod-CVE-2009-0179.patch (from Mandriva/Mageia).
338- Apply the libmikmod-CVE-2007-6720.patch (from Mandriva/Mageia).
339- Implement a fix for sprintf-of-list
340    - sprintf(list, "%sSOMETHING", list) does not work as expected and
341    suffers from the
342    http://en.wikipedia.org/wiki/Schlemiel_the_Painter%27s_algorithm
343    syndrome.
344- Apply a patch for non-blocking opening of the OSS driver.
345  (from Mandriva/Mageia).
346- Fixed the prototypes of vc_callback (thanks to P. Martin).
347- Cast a vc_callback parameter to "unsigned char *" instead of "char *",
348  because the former is what it accepts (thanks to P. Martin).
349- Check for Samples' validatity in virtch_common.c (thanks to P. Martin).
350- Fix compilation on MSVC.
351    - Thanks to Stéphan Kochen.
352
353
354Summary of changes between libmikmod 3.1.10 and libmikmod 3.1.11 (Thiers):
355==========================================================================
356
357libmikmod 3.1.11 was released on 01/21/2004.
358
359This is a small maintenance release. I know there are not many changes,
360but since it has been a very long time since the last one, and meanwhile
361libmikmod changed maintainer, I think it is justified.
362
363THANKS
364
365- Ingo Saitz, the maintainer of the mikmod packages for debian, for
366  bugfixes.
367- Frank Loemker, for the lcc-win32 stuff and fixes for the direct sound
368  driver.
369
370BUGFIXES
371
372- Playback problems in MODs of length >128. This fixes the file beatwave.mod. Thanks
373  to Emmanuel Coirier for pointing this out.
374- Applied debian patches:
375  - Fix for broken volume fadeouts of IT instruments
376  - Fixed configure test for pthread
377  - devfs support for Linux OSS
378
379- Makefile for lcc-win32. To compile libmikmod with lcc-win32 a rather new
380  version is needed. I currently use version 3.7 compiled on Jan 20 2002.
381  A version half a year old did not work. To compile
382  - check that you have the lcc bin directory in the PATH
383    (and no other compiler bin dirs),
384  - change to libmikmod-3.1.11/win32,
385  - check Makefile.lcc for any needed changes, and
386  - use make -f Makefile.lcc.
387
388- Different fixes for the direct sound driver:
389  - Pausing did only work for half of the buffer.
390  - Restarting the player did not work as the output thread was removed
391    in DS_PlayStop().
392  - Removed busy waiting for end of thread.
393  - Sound output is started immediately on the first call to DS_Update()
394    to be consistent with other non threaded drivers.
395  - Different small clean ups.
396
397- In MikMod_Reset() the raw output driver driver did not use the
398  filename set via the cmdline.
399
400
401Summary of changes between libmikmod 3.1.9 and libmikmod 3.1.10 (Arlanc):
402=========================================================================
403
404libmikmod 3.1.10 was released on 01/24/2002.
405
406This version is yet another bugfix release. I have more contributions coming,
407especially a native MacOS X driver, that will not be present in 3.1.10 but
408will be in 3.1.11.
409
410
411THANKS
412
413- Most of the bugs mentioned below have been squished by ``UFO'',
414  Holger Jakob, Thomas Neumann, Mark Page and Juan Linietsky.
415
416
417BUGFIXES
418
419- Systematic coredumps on library initialization and calls to
420  MikMod_InfoDriver have been eliminated. Sorry, and thanks to Shlomi
421  Fish for the best fix.
422
423- The fix for spurious effect memory for portamentos in MOD files shouldn't
424  have been applied to the ``porta to note'' (effect 3) effect. Fixed in this
425  release. In the process, the aforementioned fix was perfected, as it
426  broke a few modules by accident.
427
428- IT Panbrello effect with random wave did not work.
429
430- IT Tempo slide (T0x, T1x) was not updated accurately, and the effect memory
431  was not implemented. The only tempo slide command which worked accurately
432  was T10, which is a no-op (-:
433
434- IT effect SC0 (cut note with no delay) is now correctly interpreted as SC1.
435
436- XM effect 6 (porta + volume slide) didn't have memory.
437
438- ProTracker effect F (change speed or bpm) should now be correctly handled
439  when its value is 32, depending on the module type (some formats will use
440  it as a speed value, others as a bpm value).
441
442- XM playback stopped when reaching pattern 255 in the order list.
443
444- Corrupted envelopes in XM instruments are detected and some repair is
445  attempted.
446
447- Some valid AMF, IMF and IT modules refused to load.
448
449- Fine volume slide effects in volume column of IT modules, when using the
450  effect memory (i.e. A0 and B0) were misinterpreted as AF and BF, thus
451  causing unwanted large slides.
452
453- Portamento to note effect in volume column of IT modules was not rendered
454  correctly.
455
456- S3M files marked as created by ScreamTracker will honour the limit of 64000
457  bytes (not 64KB!) for sample length and sample offset effect position.
458
459- Loops in instrument envelopes were processed one tick too fast.
460
461- In-song message in FAR modules were not displayed correctly.
462
463- ProTracker effect E9 (Retrig) was not played correctly.
464
465
466NEW FEATURES
467
468- Modules which are not panning-aware (not using any panning effects and
469  with the tracker's default panning) use a recentered panning, so as to
470  sound better with headphones. Suggested by Urpo Lankinen.
471
472- Retrigger and panning effects are now recognized in FAR modules.
473
474- All arpeggio effects are now played in OKT modules.
475
476- FLT8 modules (8 channel StarTrekker) are now recognized and played.
477
478
479PLATFORM SPECIFIC
480
481- The Windows DirectSound driver has been improved and will use less
482  resources during playback.
483
484- The native audio driver for NetBSD and OpenBSD should work better with
485  recent versions of these systems, as well as with old sound cards such
486  as the SoundBlaster Pro.
487
488- Mac OS X is supported, although no native sound driver is available for
489  it yet, thanks to Juha Kaunisto.
490
491- Dynamically loading drivers is now supported on HP-PA systems running
492  under HP-UX, as well on systems using the a.out binary file format.
493
494
495
496Summary of changes between libmikmod 3.1.8 and libmikmod 3.1.9 (Vorey):
497=======================================================================
498
499libmikmod 3.1.9 was released on 02/14/2000.
500
501This version is a bugfix release, and was primarily considered as a public
502patch for 3.1.8 (namely, version 3.1.8-a). However, due to the very important
503bug fix in XM playback, among other things, it's worth being 3.1.9...
504
505
506THANKS
507
508- Many thanks to ``UFO'', Thomas Neumann, James Kehl and Vito Caputo for their
509  help, code and feedback.
510
511- Special thanks to Gerd Rausch, for writing both the Linux sam9407 driver and
512  the associated Mikmod driver. Nice work !
513
514- Thanks to Bastien Nocera for letting me do some tests under Linux/PPC.
515
516
517BUGFIXES
518
519- Envelopes weren't loaded correctly for IMF and XM modules. In the average
520  case, the first envelope point was correct, the remaining half points were
521  bogus, and the other half completely random. This fix is definitely worth
522  the upgrade.
523
524- In MOD files, effect 0xc (set channel volume) with effect parameter 0xff was
525  misplayed as a note cut.
526
527- In MOD files too, effects 0x1, 0x2 and 0x3 (portamentos) with effect
528  parameter 0x00 were using the command memory, but these commands do not have
529  effect memory for MOD files.
530
531- The Wuzamod check for STM modules wasn't present in 3.1.8, despite what the
532  release notes said )-:
533
534- Enabling the envelope (with an effect) for a sample with no associated
535  envelope would cause immediate coredumps. Now fixed.
536
537- Panning was ignored in GDM modules.
538
539- Sample rate was incorrect for STM and STX modules.
540
541- Arpeggio memory (for IT modules) was ignored.
542
543- Tempo slide for IT modules was not processed correctly.
544
545- Toggling surround sound didn't have effect until the driver was reset.
546
547
548NEW FEATURES
549
550- New loader for Amiga Oktalyzer (.OKT) modules.
551
552- UNI loader recognizes recent APlayer modules (.APUN format level 0x104).
553
554- Due to popular request, the function Player_LoadTitleFP() has been added to
555  the library.
556
557- Under Unix systems, make targets "check" and "uninstall" have been added.
558  However, due to a bug in automake, "make uninstall" will only work correctly
559  with the next release of automake (or the current CVS tree).
560
561- New output driver for sam9407-based soundcards under Linux, featuring
562  hardware playback.
563
564
565PLATFORM SPECIFIC
566
567- Support for the latest Linux Ultra driver development versions (2.99) has
568  been added. Also, a few bugs in this driver have been fixed.
569
570- The DirectSound driver (win32) shipped with the previous release didn't
571  compile. It should now - at least things are better !
572
573- The OSS driver from 3.1.8 didn't work very well with some versions of the
574  Linux kernel, as well as under Linux/PPC. The problems should be gone now.
575  Also, the OSS driver now handles multi-soundcard configurations.
576
577
578
579Summary of changes between libmikmod 3.1.7 and libmikmod 3.1.8 (Tence):
580=======================================================================
581
582libmikmod 3.1.8 was released on 10/25/1999.
583
584
585THANKS
586
587- Many thanks (in no particular order) to Frank Loemker, Bjornar Henden, Joshua
588  Shagam, Vito Caputo, Thomas Neumann, Zach Metzinger, and Kevin Langman for
589  their help, code and feedback.
590
591- Special thanks to Andrew Zabolotny for his huge work on the OS/2 drivers.
592  The rest of your code is not lost, it will go into 3.2...
593
594
595BUGFIXES (more details can be found in file ``PROBLEMS'')
596
597- IT global volume slide effect was played too fast.
598
599- IT effect S6x (pattern delay for x ticks) was misunderstood as SEx (pattern
600  delay for x rows).
601
602- Finetune effect was not handled correctly for some XM modules.
603
604- Software mixer incorrectly produced extra clicks in interpolated mode (fix by
605  Frank Loemker).
606
607- Under Unix systems, the piped output driver (drv_pipe), as well as the output
608  to file drivers (drv_raw, drv_wav) had security issues if the libmikmod
609  application is setuid root.
610
611- Trying to read data from a file, with the data not located at offset 0,
612  didn't work correctly since 3.1.5.
613
614- Almost any text file beginning with "if" was considered as a valid module by
615  Player_LoadTitle(), yet hopefully rejected when trying to load it.
616
617- AMF effect 4 and variants lacked memory.
618
619- IT modules featuring patterns with less than 32 rows could not be loaded.
620
621- Some samples and effects in APlayer converted modules (.apun) were not played
622  correctly.
623
624- Linefeeds in the song message in IT modules weren't loaded correctly.
625
626
627NEW FEATURES
628
629- IMF effect XE (ignore envelope) implemented.
630
631- Support for uLaw output with the OSS driver, for Linux/sparc.
632
633- Started to modularize semaphore usage when possible. The Player_LoadTitle()
634  function can be used while a module is playing without causing a short pause
635  in playback.
636
637- STM modules with the Wuzamod signature can now be loaded.
638
639- More ``slightly corrupted'' XM modules can be loaded.
640
641
642PLATFORM SPECIFIC
643
644- libmikmod 3.1.7 didn't compile out of the box under IRIX (sorry !)
645
646- The EsounD driver didn't compile under Solaris
647
648- Solaris driver forced playback to either headphone or speaker, instead of
649  using the current output setting as default. This is now fixed.
650
651- Under SunOS 4, libmikmod should compile with the non-ansi C compiler bundled
652  by default.
653
654- The ALSA driver now works with ALSA 0.4.
655
656- The OSS driver should now work with Linux/ppc.
657
658- Under OS/2, the MMPM/2 and DART driver have been almost rewritten by Andrew
659  Zabolotny and work much better. And they are now somewhat configurable, too.
660
661- libmikmod 3.1.8 should work as a DLL under win32 environments. And the
662  non-directX driver is now registered in MikMod_RegisterAllDrivers().
663
664
665Summary of changes between libmikmod 3.1.6 and libmikmod 3.1.7 (Sauxillanges):
666==============================================================================
667
668libmikmod 3.1.7 was released on 06/28/1999.
669
670
671THANKS
672
673- Anders Bjoerklund did a terrific job of creating a Macintosh driver !
674  I'm proud to add the MacOS to the list of supported systems.
675
676- Bjornar Henden provided a non-directX driver for Windows NT users. This
677  makes libmikmod more portable than ever. Thanks a lot !
678
679- Simon Hosie contributed speed optimizations and bug fixes to the software
680  mixer. Thanks for your work !
681
682- Timo Taipalus pointed out several severe problems and helped me to get rid
683  of them. Thanks for your efforts !
684
685
686BUGFIXES (more details can be found in file ``PROBLEMS'')
687
688- Very long samples were truncated when played with the normal software
689  mixer.
690
691- Invalid notes using non-existent instruments caused the current note to
692  be retrigged instead of being ignored.
693
694- Porta to note effects did not restart the sample envelopes.
695
696- Note cut with non empty volume column on the same row resulted in the note
697  cut being ignored.
698
699- Disabling/enabling envelopes had no effect.
700
701- 15 instrument modules embedding a ``Music Channel BBS'' ad were rejected.
702
703- Huge (>64Kb) sample offsets were ignored with the hiqh quality mixer.
704
705- Delay note effect was incorrectly converted to pattern jump, and porta to
706  note was incorrectly converted to tremor, for GDM modules.
707
708- Dual effect Lxx in S3M and IT was misconverted to L00 (this bug was
709  introduced in 3.1.5-beta2, thanks to Timo Taipalus for noticing it)
710
711- Pitch envelope was not played accurately (IT).
712
713- XM modules in format 1.03 couldn't be loaded.
714
715- XM modules with the tracker name empty made the library coredump on some
716  platforms.
717
718- Set finetune effect (E5x) wasn't handled correctly for XM modules.
719
720- Fine slides (X1x,X2x) didn't play correctly for XM modules (thanks to Frank
721  Loemker for reporting it).
722
723- If the MikMod_InitThreads() function was called more than once, the library
724  did not behave correctly.
725
726- Sample loops were not computed correctly for Oktalyzer modules.
727
728
729NEW FEATURES
730
731- Modules can be played with a speed shift (suggested by Roope Anttinnen).
732
733- MikMod_Init() and MikMod_Reset() have been extended to pass specific
734  parameters to the drivers. This makes libmikmod 3.1.7 incompatible with the
735  previous versions, but updated libmikmod-based players will be released soon.
736  The shared library version has increased (now 2.0). This number scheme is
737  going to be as crazy as ncurses' one...
738
739
740PLATFORM SPECIFIC
741
742- It was not possible to create a multithreaded library on FreeBSD (fix by
743  Roope Anttinnen).
744
745- HP-UX driver used to reset mixer settings at initialization.
746
747- Added MacOS support, thanks to Anders Bjoerklund.
748
749- Solaris driver now works on Solaris/Intel edition.
750
751
752
753Summary of changes between libmikmod 3.1.5 and libmikmod 3.1.6 (Romegier):
754==========================================================================
755
756libmikmod 3.1.6 was released on 03/24/1999.
757
758
759BUGFIXES
760
761- When the library was built thread-safe, calls to Player_SetPosition
762  resulted in a deadlock.
763
764- The OSS driver was too strict and didn't allow OSS to select a different
765  playback frequency.
766
767- A volume bug has been removed from the module player (thanks to Thomas
768  Neumann for the report).
769
770
771NEW FEATURES
772
773- Volume ramping has been ported from the high quality mixer to the regular
774  mixer, and is enabled when interpolated mixing is requested. You should hear
775  less clicks in interpolated mode from now ! (Suggested by Bjornar Henden)
776
777- The UNI loader recognizes APlayer format 1.3 modules.
778
779
780PLATFORM SPECIFIC
781
782- The NetBSD and OpenBSD driver should work with recent NetBSD and OpenBSD
783  versions.
784
785- Some Windows code has been merged. Feedback will be appreciated. Note that,
786  as I don't have a windows development system (and no plan to have one in the
787  near future), I can't test or debug the Windows part myself.
788
789
790
791Summary of changes between libmikmod 3.1.2 and libmikmod 3.1.5 (Pradelles):
792===========================================================================
793
794libmikmod 3.1.5 was released on 03/01/1999.
795
796
797THANKS
798
799- Many thanks to Lutz Roeder and Uwe Thoma, who send me the description of
800  the Imago Orpheus file format (IMF), as well as some of Imago's code, which
801  made the creation of the IMF loader a pure C exercise (-:
802
803- Many thanks to Claudio Matsuoka, Tobias Gloth, C. Ray C. and Ben Collver for
804  their contributions and bug reports.
805
806- Also big thanks to Jan Havelka for his help in tracking and fixing bugs.
807
808- I almost forgot to thank Cedric Hebert for pointing out the gcc 2.x
809  optimization options bug !
810
811- And as a last-minute add-on, Kev Vance submitted a GDM loader.
812
813
814BUGFIXES
815
816- The OSS driver used much more memory than necessary without reason.
817
818- Samples longer than 1 Mb were not played correctly. However, the fix now
819  requires that your C compiler provides a 64 bit integer type. As a result,
820  libmikmod will not compile anymore on AIX with old versions of xlC.
821
822- Samples with ping pong loops could make the library segfault on some rare
823  conditions. This bug was also present in MikIT and in the module plugin
824  of winamp, which are also based on old MikMod 3 sources...
825
826- The sample loaders will now load samples with extra information blocks in
827  them, and has been made more robust.
828
829- More checks to detect empty song messages.
830
831- The song message loading routine was bugged and could make the library
832  coredump.
833
834- AMF modules in formats 1.0, 1.2 and 1.3 couldn't be loaded.
835
836- MED loader now loads instrument names and song message if they exist.
837
838- More check have been added to the 15 instrument MOD loader to prevent it
839  from hanging on non-mod files ; let me know if you still experience
840  problems with it.
841
842- STM loader rejected STM created by MOD2STM ; the last pattern was never
843  played ; also, in some STM modules the samples were not loaded correctly.
844
845- XM modules in format 1.02 couldn't be loaded.
846
847- Envelope sustain loops in XM modules were not processed correctly.
848
849- Porta to note using the command memory used sometimes an incorrect value
850  when playing AMF, IT, S3M and ULT modules.
851
852- Volume slides for IT (Dxx) and XM (Axx) modules didn't continue in the
853  background.
854
855- Porta down effect in the volume column of IT modules was not played
856  correctly.
857
858- Problems occuring when compiling libmikmod when an older version of libmikmod
859  is installed are now fixed.
860
861
862DOCUMENTATION FIXES
863
864- The documentation incorrectly referred to PAN_MIDDLE instead of PAN_CENTER.
865
866
867NEW FEATURES
868
869- On platforms that support POSIX.4 threads, the library is now thread-safe.
870
871- Depending on your system's capabilities, ALSA and EsounD driver can now
872  be dynamically loaded when a libmikmod application is run, so if you built
873  your binary with the shared ALSA or EsounD libraries (which is the default),
874  it will run on other systems lacking those libraries.
875
876- New loaders for GDM (General Digital Music), IMF (Imago Orpheus) and STX
877  (STMIK 0.2) modules.
878
879- UNI loader is back, for those who need to play the ``Acid Tetris'' songs.
880
881- S3M loader correctly identifies S3M modules created by Impulse Tracker
882  an Imago Orpheus.
883
884- IT effect T (slide tempo) is now implemented.
885
886- The driver for the Linux Ultrasound project (the ancestor of ALSA) is back,
887  too.
888
889- The selection of the standard or high-quality software mixer is now made at
890  runtime.
891
892- New interfaces Voice_Get{Frequency,Panning,Volume} and
893  Player_GetChannelPeriod (this one is for x11amp's MikMod plugin).
894
895- Due to the addition of the new driver and loaders, library version has
896  increased.
897
898
899PLATFORM SPECIFIC
900
901- Compiling with gcc 2.x under Linux on x86 platforms performed aggressive
902  optimizations which had nasty interferences with the channel volumes on
903  some modules. Hopefully this is now fixed, so gcc users will get the same
904  sound quality as egcs users.
905  I apologize to everyone told me of this volume problem for the time it took
906  me to figure out where it came from.
907
908
909Previous versions of libmikmod were bundled with the MikMod player ; refer to
910its ``NEWS'' file for older changes information.
911