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