==============================================================================
  REVISION HISTORY : FireMOD : Copyright (c) Firelight Multimedia, 1994-2001
                        http://www.fmod.org
==============================================================================
	      + Added feature or noticable improvement
	      - Bug fix or something removed
	      * Changed or Information
==============================================================================

13/9/01 3.4
------------
+ DX8 fx support
+ Windows CE / PocketPC support added for handhelds! (such as compaq ipaq/casio/jornada etc).
  CE support is considered in beta.  See the forum at http://www.fmod.org for beta feedback.
+ Ogg Vorbis decoder upgraded to Version 1.0.  1.0 is a large quality improvement!
+ FSOUND_SetCurrentPosition added.
+ FSOUND_GetOutputHandle added to return dsound / waveout / a3d pointer.
+ FSOUND_SetSpeakerMode added.  Get true dolby digital / DTS surround output through supported hardware!
+ FSOUND_DSP_GetFFTUnit and FSOUND_DSP_GetSpectrum added.  It is now possible to get a spectrum 
  analysis of FMOD's mixer output in realtime.  Great for graphics, beat detection and note detection.
+ FSOUND_PlaySoundEx added.  Has 'paused' flag that allows the user to optinally start the sound
  paused, set any attribute, and then unpause it later to start it playing.  Also can takes
  a DSP unit handle, which means channels can now attached or grouped to specific DSP units.
+ FSOUND_DSP_GetBufferLengthTotal for help with DSP buffersize calculations.
+ FSOUND_FORCEMONO flag added for samples/streams.  Force stereo sounds to play as mono.
+ FSOUND_ENABLEFX flag added for samples/streams.  Enables a sample/stream to use DX8 FX.
+ FSOUND_2DHW flag added for samples/streams.  Allows 2d hardware acceleration.
+ "file://" support added for streams.
+ new sample in /samples/dsp added.  This shows how to use the new DSP feature of 
  FSOUND_PlaySoundEx to have wet/dry effects, and also the FSOUND_FX_xxx API on hardware voices.

- FSOUND_PlaySound3DAttrib removed due to FSOUND_PlaySoundEx.
- FSOUND_Stream_Play3DAttrib removed due to FSOUND_Stream_PlayEx.
- FSOUND_Stream_SetPaused & FSOUND_Stream_GetPaused removed.  Use FSOUND_SetPaused, FSOUND_GetPaused instead.
- FSOUND_Stream_SetSynchCallback fix for long files.
- FSOUND_UNMANAGED flag fixed when calling FSOUND_Close.
- Removed small audible glitches or 'chirps' when seeking in an mp3 stream.
- Delay when opening a stream removed.
- Streams now reset's its buffers when FSOUND_Stream_SetTime or FSOUND_Stream_SetPosition is 
  called.  This makes it more cpu intensive to seek, but results in no delays when seeking.
- Small accuracy bugfix in IT replay for looping envelopes.
- fix in delay note + volume envelope for XM.
- A3D Support fixed and working ok again.
- WMA/ASF/etc Support improved.

* FMUSIC_SetInstCallback behaviour changed to support more than one instrument at a time.
* fmod.pas update for kylix (dephi/linux).  Also new examples
* VB examples updated

28/04/01 3.33 
-------------
+ Linux Version update.
+ FSOUND_ALL support added to FSOUND_Reverb_SetMix.

- EAX2 bugfix with FSOUND_Reverb_GetEnvironmentAdvanced
- Click noise removed from WAV streams if FSOUND_Stream_SetTime was used before Play.
- S3M bugfix for samples with middlec of 0.
- Low quality mixers have been removed.  The symbols are there for backwards compatibility
  but choosing one will autodetect a quality mixer instead.
- Small bugfix in FPU quality mixer to do with volume ramping.
  
* Licensees now get an extensive compile time configuration header to include or exclude as many 
  fmod features as they like!  a stripped FMOD.DLL can be as small as 20k now.

27/03/01 3.32
-------------
+ FSOUND_SetVolume, FSOUND_SetPan & FSOUND_IsPlaying support for WMA/ASF/Internet 
  streams/etc added.  Multiple wma's open at once bug fixed.
+ Excellent quality resonant lowpass code added to fmod.exe example.  Source available.
+ FSOUND_INIT_GLOBALFOCUS added for directsound output, to allow sound to be heard
  even though the window is out of focus.
+ OGG VORBIS - Official beta 4 release included.  Previous ver was pre-release beta 4.

- Recording interface re-enabled.
- MP2 fix - sound coming out one channel for stereo sounds now work properly.
- 3D sound glitch with FSOUND_PlaySound3DAttrib fixed.
- FSOUND_Stream_GetLengthMs returning incorrect results loading multiple mp3's fix.
- exception when loading many wav files fixed.
- MIDI updates - FMUSIC_GetTime works again and support for FMUSIC_IsFinished added
- Possible DX8 related problems removed.
- Better handling of machines with NO soundcard.

* improved multitasking / buffering = lower cpu usage, more stability for sound output, 
  especially on weird configs and low spec machines.
* FMOD will now play the audio track out of AVI files - ie DIVX etc :)

18/02/01 3.31
-------------
+ WAV Loop point support added!  FMOD will now interpret loop points set in soundforge etc.
+ OGG VORBIS - Beta 4 used with FMOD.  Fixes problems and has speed benefits.
+ FMUSIC_SetInstCallback added.  Get callbacks on mod type instrument numbers.
+ FSOUND_Stream_SetSynchCallback added.  Visually drop markers in your wav editing package and 
  FMOD will callback in time to the points as the sound plays!  Great for lipsynching/gfx 
  demos etc.  WAV/RIFF mp3 only.
+ DX8 support added.
+ NT detection added.  This will mean WINMM is automatically enabled if FSOUND_Output isnt 
  called for better performance.  All other WIN32 OS'es will use DSOUND.
+ Static library project added for commercial licensees.

- Extra MP3 error checking, avoids crash on bad mp3 files. (why are there so many?)
- Crash fix on certain combinations of machines with sblive cards.
- WMA / Internet stream support error code fix.
- WAV loader now handles files with 2 data chunks :)
- FSOUND_DSP_ClearMixBuffer now works properly.
- Fixed wobbling row/order/time when you pause a mod.
- small crack noise at the end of looping 8bit wav files fixed.
- FSOUND_Stream_GetTime improved especially with looping streams.
- Zxx sync bug with mod files fixed where more than 1 Zxx was placed on a row.
- XM multiretrig + volume column volume bug fix.

- LINUX - Oss now opens the socket in nonblocking mode. That should take care of the
  lockups some ppl got when another app was using the sound. 
- LINUX - Esd now checks (via a select()) if it can send data, blocks if it can't. The
  newest Elightment Sound Daemon choked on that one, and it's the Right Thing(tm) to do. 


* A bug has been found in the win2k sblive drivers to do with volume levels on 3d sounds.. 
  We suggest you get the newest version.

17/12/00 3.3
------------
+ Linux support added!  Big thanks to Magnus Naeslund on this for such a big effort!
+ .MIDI/.RMI support added.  (use FMUSIC_LoadSong)
+ .OGG (Ogg Vorbis) support added.  (FSOUND_Stream_OpenFile/FSOUND_Sample_Load). 
+ .MP2 (mpeg layer 2) support added.  (FSOUND_Stream_OpenFile/FSOUND_Sample_Load). 
+ .WMA Support added. (FSOUND_Stream_OpenFile).
+ .ASF audio Support added.  (FSOUND_Stream_OpenFile).
+ Internet streaming support added!  Pass a URL to FSOUND_Stream_OpenFile!!!
+ Volume Ramping ('click removal') added to MMX mixers.  All quality mixers now ramp by default.
+ MP3 playback optimized.
+ Delphi and visual basic interface updated.
+ Documentation update.

+ API changes and new features!!! -
+ FSOUND_Stream_GetLengthMs added.  Returns length of stream in milliseconds.
+ FSOUND_Stream_SetTime added.  Allows setting the position of a stream in ms. (even VBR mp3s!)
+ FSOUND_Stream_OpenFile added.  This combines all the old 'FSOUND_Stream_Open*' commands into 1.
+ FSOUND_Stream_SetEndCallback added.  Get a callback when the stream has finished!
+ FSOUND_Stream_GetSample added.  Get the internal FSOUND_SAMPLE definition for a stream.
+ FSOUND_Stream_CreateDSP added.  Add a DSP effect chain per stream if you want!  
+ FSOUND_Stream_Play3DAttrib added.
+ FSOUND_CD_SetVolume and FSOUND_CD_GetVolume added.
+ FSOUND_CD_GetTrackTime added.  Returns current track time.
+ FSOUND_CD_GetTrackLength added.  Returns track length in milliseconds.
+ FSOUND_Sample_Load replaces all previous FSOUND_Sample_Load* functions.
+ FSOUND_Sample_GetName added.
+ FSOUND_PlaySound3DAttrib added.  Replaces FSOUND_3D_PlaySound and FSOUND_PlaySoundAttrib.
+ FSOUND_SetLoopMode added for those who want per channel loop control not per sample.
+ FMUSIC_SetReverb added (for MIDI only currently)

+ FSOUND_LOADMEMORY flag added which allows sample loading, and STREAMING from a memory pointer.
+ FSOUND_MPEGACCURATE flag added for FSOUND_Stream_SetTime and MP2/MP3.  You can use this to get accurate time length,
  and set the exact specified time in an MP3 even if it has a Variable BitRate!! (VBR)
+ FSOUND_ALL added to channel and sample flags.  This allows 1 function call (to FSOUND_SetVolume 
  for example) and it will affect ALL channels!  The possibilities are cool, such pitchbending all 
  sounds playing with FSOUND_SetFrequency(FSOUND_ALL, freqval); etc.


- Some mod based fixes including better support for corrupted files :} 
- Click bug removed on single-shot (non looping) samples for software engine.
- Bug in mmx 8bit sample mixers fixed.
- Streaming files stutter bug upon start removed / lessened.
- MP3 frame filter added to remove corruption/glitches in bad mp3's.
- ADPCM wav file corruption introduced in 3.22 removed.
- FSOUND_Sample_SetLoopPoints bad parameter handling fixed.
- FSOUND_StopAllChannels removed in favour of FSOUND_ALL flag. fmod.dll is still backwards compatible.
- FSOUND_Sample_LoadWav removed in favour of FSOUND_Sample_Load. fmod.dll is still backwards compatible.
- FSOUND_Sample_LoadMpeg removed in favour of FSOUND_Sample_Load. fmod.dll is still backwards compatible.
- FSOUND_Sample_LoadRaw removed in favour of FSOUND_Sample_Load. fmod.dll is still backwards compatible.
- FSOUND_Sample_LoadWavMemory removed in favour of FSOUND_Sample_Load. fmod.dll is still backwards compatible.
- FSOUND_Sample_LoadMpegMemory removed in favour of FSOUND_Sample_Load. fmod.dll is still backwards compatible.
- FSOUND_Stream_Open removed in favour of FSOUND_Stream_OpenFile. fmod.dll is still backwards compatible.
- FSOUND_Stream_OpenWav removed in favour of FSOUND_Stream_OpenFile. fmod.dll is still backwards compatible.
- FSOUND_Stream_OpenMpeg removed in favour of FSOUND_Stream_OpenFile. fmod.dll is still backwards compatible.
- FSOUND_3D_PlaySound removed in favour of FSOUND_PlaySound3DAttrib. fmod.dll is still backwards compatible.
- FSOUND_PlaySoundAttrib removed in favour of FSOUND_PlaySound3DAttrib.  fmod.dll is still backwards compatible.
- FSOUND_MIXER_QUALITY_FPU_VOLUMERAMP removed, all quality mixers are volume ramping now.
- FMOD_ERR_INVALID_MIXER error removed in favour of already existing FMOD_ERR_INVALID_PARAM flag.
- FSOUND_GetCurrentVU improved, and bugfixed for stereo samples.
- Other minor bugfixes.

* Streamer callbacks created with FSOUND_Stream_Create must now return TRUE, or FALSE to terminate the stream.
* FSOUND_MixBuffers renamed to FSOUND_DSP_MixBuffers
* _cdecl calling convention specified for callbacks in case default calling convention is changed (thanks Aristarkh Zagorodnikov)
* changed LCC-WIN32 compiler definition in fmod.h to __LCC__ (not LCCWIN32) so it works better now :)

05/11/00 3.21
-------------
* Intermediate update before FMOD 3.3 is released.

+ New, easier to navigate documentation layout.  Recording interface added to documentation :)

- End of non looping MP3 on rare combination of filelength crash fixed.
- More efficient streaming engine, mp3 and other format playback is even faster than before.
- Master Volume and FSOUND_SetVolumeAbsolute bug fixed.

04/05/00 3.2 DX3 Patch
-----------------------
+ Improved playback stability with harddisk interruptions occuring in the background.
- DirectX versions *less than* DX7 compatibility problem fixed (most noticable under NT).  This was thanks to bug in dsound API (thanks microsoft!)


01/05/00 3.2
------------
* FSOUND_NORMAL re-defined to (FSOUND_LOOP_OFF | FSOUND_8BITS | FSOUND_MONO), as in some
  cases it was being mistaken for a bitfield and or'ed in with other flags when it infact wasnt. (it was 0!)
* FSOUND_EAX interface renamed to FSOUND_Reverb interface.  (to fit a3d reverb, software reverb etc not just EAX)

+ DX7 support added.  This adds more hardware voices than previously possible before.
+ EAX 2.0 support added.  This means advanced reverb functionality and manual occlusion control.
+ A3D 3.0 support added (FMOD comes with a3dapi.dll now).  This adds A3D reverb and advanced reverb support.
+ RECORDING support added.  See FSOUND_Record_StartSample, FSOUND_Record_StartWAV etc.
+ FSOUND_MIXER_QUALITY_FPU_VOLUMERAMP mixer added.  This removes clicks on sudden volume changes for added quality.
+ MMX quality mixer speed increased AGAIN to crazy speeds!  Check out the new comparison charts.
+ 'userdata' parameter added to FSOUND_Stream_Create.
+ FMOD Standalone player/example (fmod.exe). Added 48khz support, MP3,WAV & A3D 3 support!
  Reverb added (NR button removed) and lowpass filter declicked.  See FMOD.C for the code for all this!
+ New music callbacks! FMUSIC_SetRowCallback, FMUSIC_SetOrderCallback.  LATENCY ADJUSTED, so when it calls back on a particular row, it is the row you HEAR.
+ FSOUND_Stream_GetTime smoother and LATENCY ADJUSTED, so when the time displays a value, that is the time into the stream that you HEAR.
+ FMUSIC_GetPatternLength added.  (for time calculation purposes)
+ FSOUND_SetMinHardwareChannels and FSOUND_SetMaxHardwareChannels added.  Great for controlling 3d Hardware resources.
+ FSOUND_REVERB_IGNOREPARAM added, so you can change specific elements of environmental reverb and ignore others.
+ Delphi interface added!  
+ Added fmod_errors.h which contains FMOD_ErrorString.  Use this in conjunction with FMOD_GetError to get a string description of the error.

- PCM .WAV files accidentally did an ACM codec check even if it was PCM.  Some machines didn't
  have this PCM ACM codec, and so loadwav or openwav failed - ACM check now skipped for PCM files.
- FSOUND_GetCurrentVU fixed!
- 3D - Software engine bugfixed rolloff and distancefactor to make it sound more like DS3D.
- WAV/MP3 - streamer fixes and improvements.  
- XM/IT - portamento with multi sample instruments fixed.
- API - FSOUND_Sample_Get somehow dissapeared from the DLL.. back again.
- API - MU-Law functions removed.
- Many other miscellaneous fixes.

08/01/00 3.11
-------------
+ RIFF based MP3 files and MP3's with ID3 tags at the start now supported.

- LoadSongMemory fixed and works again
- Pentium Pro selecting wrong mixer upon autodetect now fixed.
- XM and IT bugfixes.

24/12/99 3.1
-------------

* FMUSIC_OptimizeChannels put back into fmod.h.  Im not sure why it dissapeared in the first place :)
* 'stream.exe sample' changed from WAV to a MP3 command line streamer because more people wanted that.
* LoadMemory functions now take a length (length of the buffer).  You may have to change your code 
  to support this (it is not backward compatible with 3.0.  I didnt want to add more functions to the 
  API for such a minor change.

+ Variable bitrate MP3's now supported!
+ FSOUND_SetHWND added for those who want to specify their own HWND for dsound focus purposes.
+ FSOUND_Stream_GetTime added, for smooth, non lagged, accurate synchronization with stream 
  playback.
  Use this for synchronizing MP3's to your graphics!
+ Added stability to sound output of software engine, for when harddisk accesses occur.

- 8 bit raw wav streaming bug fixed where output was noisy.
- Streamer start/stop logic bug fixed/improved. (it used to hang on exit if you did several start/stops in a row)
- Small XM bugfix on delay note.
- Fixed startup crash bug.  This was caused by BAD DRIVERS.  Creative ES1370 sound card drivers
  have a bug, and they have the cheek to set the certified bit in the caps.  It also reports 
  256 hardware 3d channels which is obviously a lie.  Thanks to Marcus Aarts, Anders Nilsson and 
  Shane Stevens for helping me find this one.
- Documentation fixes.


12/12/99 3.0
-------------

* New timing system, no more update rate, no more mixahead! a lot more stable on shit cards 
  like awe64, and at the same time, very low latency.
* FSOUND_SetPanSeperation only affects sfx now, not music.  
* If mixer is not selected, it defaults to a quality mixer now, not a low quality one like before.
* FSOUND_Geometry_AddPolygon now supplies normal as well AND opening factor. (it takes NULL also)
* FSOUND_3D_Listener_GetAttributes now consistant across all output types. (waveout missed out before)
* FSOUND_SetPaused now works on FSOUND_HW3D buffers.
* FSOUND_SetMute now works on FSOUND_HW3D buffers.
* FSOUND_MixChannel renamed to FSOUND_MixBuffers (it has nothing to do with channels really)
* FSOUND_Listener_SetAttributes does not update 3d info now, FSOUND_3D_Update does.

+ Added FSOUND_File_SetCallbacks.  Use this to make FMOD use your own file operations.
+ Compressed WAV support added
+ MP3 Support added
+ EAX Support added
+ A3D Support added (with full geometry and list support)
+ MMX quality mixer sped up 2-3 times on ppro+ machines! (p6/p2/p3)
+ FSOUND_Driver_GetCaps added.. Now query the capabilities of drivers before calling FSOUND_Init.
+ FSOUND_Stream_Create added - an easier way to stream data.
+ FMUSIC_SetPanSeperation added, for per song pan seperation control.
+ FSOUND_3D_Update added.  This is now the global 3d update/flush function, NOT FSOUND_Listener_SetAttributes.
+ FSOUND_Geometry_Material functions implemented
+ Documentation added for geometry stuff, also other documentation updated (playsound, 3d stuff)
+ Software 3D Engine updated!  Software sounds used to audibly update on 
  FSOUND_3D_Emitter_SetAttributes only, and not when the listener was updated.  
  Now they are updated on neither, they are audibly updated now in FSOUND_3D_Update.  
  This means you can now move the listener without updating the sources and all the sources will 
  update automatically!  This behaves the same as DS3D now.
+ FSOUND_GEOMETRY_OPENING & FSOUND_GEOMETRY_OPENING_REFERENCE implemented!  create doorways.
+ Geometry list functions added.  A faster way of processing geometry.
	FSOUND_Geometry_AddList(FSOUND_GEOMLIST *geomlist);
	FSOUND_Geometry_List_Create(signed char boundingvolume);
	FSOUND_Geometry_List_Free(FSOUND_GEOMLIST *geomlist);
	FSOUND_Geometry_List_Begin(FSOUND_GEOMLIST *geomlist);
	FSOUND_Geometry_List_End(FSOUND_GEOMLIST *geomlist);
	FSOUND_Geometry_List_Add(FSOUND_GEOMLIST *geomlist);
+ Added FSOUND_SetBufferSize
+ Added FSOUND_DSP_GetBufferLength

- FSOUND_Sample_Lock / FSOUND_Sample_Unlock documented properly (oops! :)
- Soak test bug caused wave out to crash after 3 hours of operation.. fixed.
- Fixed bug in FSOUND_Sample_Create 
- Some module playback improvements from fmod 2.25.
- IT mod format bug fix. (NNA caused sample vibrato to lose integrity)
- Error code is now set to FMOD_ERR_NONE on all function calls, so you dont parse an error 
  that was set 10 function calls ago for example.
- NoSound output mode improved.
- Removed FSOUND_SetMixAhead 
- Removed FSOUND_SetUpdateRate

18/10/99 2.25
-------------
* Version number now included in DLL. (right click on DLL for info)
+ IT - mods composed with IT versions older than 2.0 reenabled.  I dont have many
  of these songs and it seemed to work straight away and the songs i did have.
  They sounded ok, but if there are any problems with old IT mods then mention 
  them to me and I might try to fix them. (theyre not high on my priority list)
- FMUSIC_SetZxxCallback did not have the correct documentation and just took a 
  void * as the callback.  The actual format of the callback is 
  callback(FMUSIC_MODULE *mod, unsigned char param).  FMUSIC_SetZxxCallback now
  forces this.
- IT - Impulse tracker 2.15 compressed samples reenabled :)
- IT - FMOD was interpreting IT's stereo flag for samples, which was erroneously 
  set by older versions of IT, causing some samples to play twice as fast as they 
  should.  Stereo check removed (IT never supported stereo samples)
- MOD S3M XM IT - Sample offset bug fixed.
- XM IT - minor bugs fixed.
- Closedown stability increased.

31/08/99 2.24
-------------
* This is the last FMOD 2.* update unless there are some small niggling bugs.  I
  need to finish 3.0.
* NOSOUND - FSOUND_OUTPUT_NULL now behaves as if everything is active, therefore
  you will get all music callbacks and timers, vu meters, dsp functions and everything
  else working correctly etc as if it was playing, but you dont hear anything.
* FMOD ported to N64.
* API - this version is now declared stable.  It has been run over with memory leak
  tools and numerous memory problems have been found and fixed.
* DSP - Note that the 'length' part of the callback now fluctuates more to increase 
  output stability, and its maximum size can equal up to the updaterate + mixahead
  in milliseconds.
* TOOLS - convert.exe removed.  use soundforge or some such program if you want to 
  convert a wav to a a raw signed datastream.
  
+ API - New reference count channel index!  The index PlaySound returns now has a 
  reference count in the top 16bits.  This so you can call playsound, store the 
  return value, then if that channel gets stolen by the priority system, and you 
  blindy try and keep updating it as if it was from your original playsound, the 
  new sound wont be affected!! 
+ API - FSOUND_Stream_OpenWav added.  Now you can stream wav files with ease.  This
  version still only supports PCM wav, but FMOD 3.0 should change this situation.
+ API - FSOUND_SetSFXMasterVolume & FSOUND_GetSFXMasterVolume added.
+ API - FSOUND_SetVolumeAbsolute added.  This volume overrides master volume.  Great
  if you need to lower the volume of your game effects and make one stand out.
+ MUSIC - FMUSIC_OptimizeChannels added!  This function kicks arse if you are trying
  to lower channel usage.  You give it a 'channels mixed' value, and a 'mod volume'
  value, and it wont play sounds in a song that have a lower volume than 'mod volume',
  if 'channels mixed' is being exceeded as stated in FSOUND_GetChannelsPlaying.
  One example is a game that reduced its maxchannels from 24 to 16 because of this
  with no audible difference.  (the song had a lot of 'echos' that didnt need to be
  audible when things got noisy, so FMOD threw them away.)
+ MUSIC - FMUSIC_GetSample and FMUSIC_SetSample added!  This allows you to get control
  of samples within a mod!  Great if you need to compress samples yourself and then
  decompress them back into the mod during your game.  This was in 2.23 but i forgot
  to mention it here :)
+ STREAM - file streaming example added to the sample directory.  Command line driven
  and takes a .wav file.

- 3D - Software doppler effect rewritten, now physically accurate :).. 
  FSOUND_3D_Listener_SetDopplerFactor() now means something different to the previous
  versions.  Check the documentation for more on this.
- DRIVER - fixed problem with some peoples machines that have more than 16 
  'soundcards' that i thought would be the maximum.  (It is actually just a 
  hardware card enumerating a whole waveout device for each hardware channel.)
- INTERFACE - command line parameters fixed, and some people not seeing the interface
  appear should now be happy.
- IT - channel allocation bug fixed.

17/08/99 2.23
--------------
+ API - FSOUND_UNMANAGED flag added for sample loading/management
+ API - Added FSOUND_DSP_ClearMixBuffer.  Use this before doing a biiiiiig harddisk access so you 
  dont get looping noise/stuttering, (because the harddisk/windows basically bus masters and shuts 
  down all threads,  causing the mixer to stop as well, but the soundcard keeps playing the buffer).
- API - FSOUND_Sample_LoadWav & FSOUND_Sample_LoadWavMemory now return proper error code.
- MIXER - clicks removed from bidi looping sample in quality mixer.
- IT - fixed 2.15 compressed samples now work (oops forgot to call the right decompressor)
- IT - Memory footprint drastically reduced for pattern data (now leaves pattern data compressed and
  unpacks on the fly)
- XM - Digitracker saved XM's now work correctly (dont crash, and illegal stuff filtered out)
- XM - envelope bug fixed.
- 3D - divide by 0 bug fixed (when listener and emitter are at the same location)
* API - Sample based functions like FSOUND_Sample_LoadWav etc take an index now, so you can specify
        an absolute sample manager index, FSOUND_FREE or FSOUND_UNMANAGED

18/06/99 2.22 rev 1
------------------
- IT - really obscure crash bug fixed.

18/06/99 2.22
------------------
- MOD - accidently broke mod support, fixed
- S3M - fixed bug with bpm's smaller than 20h
- Idle optimization back in

14/06/99 2.21
------------------
* Fix included from 2.2rev1 (registry bug in fmod standalone player)
* VC5 compatible import library included. vc6 only slipped into the last release.
+ IT 'envelope carry' support added.
+ MIXER - big increase in sound stability when harddisk is being accessed!!
+ LCC-WIN32 import library added.
- IT - crash bugfix. (envelopes with loop end before loop start)
- IT - volume bug (not hearing some samples at all) fixed in IT 'sample' mode.
- MOD S3M XM IT - fixed pattern delay bug
- DLL - size of DLL reduced by 12k!

08/05/99 2.2 rev 1
------------------
- INTERFACE - fixed stupid registry bug which cause bad drivers to be initialized
  at start up.  It caused possible crashing, 000 channels mixed to be displayed
  and no sound.

16/05/99 2.2
------------
* FMOD is now a non beta release!  
* MIXER - Changing driver on the fly with FSOUND_Driver_Close and 
  FSOUND_Driver_Init does not stop music playback any more. Everything 
  continues playing as it had been.
* API - Please read the new documentation on FSOUND_SetUpdateRate and 
  FSOUND_SetMixAhead!!!!  This should remove confusion about what they do
  and the issues of cpu usage, response time/latency and sound stability!
+ MIXER - FPU 32bit interpolating high quality mixer added!
+ API - FSOUND_Sample_SetLoopMode added
+ MOD - M!K! mod format supported.
+ INTERFACE - FMOD now saves sound settings in registry.
- API - Safety checking put into FSOUND_SetOutput, FSOUND_SetDriver,
  FSOUND_SetMixer, FSOUND_SetUpdateRate and FSOUND_SetMixAhead.  These 
  functions will fail and return an error code if FMOD is active and playing 
  sounds.  You need to close FMOD down to call these functions, then 
  reinitialize it.  FSOUND_Driver_Close and FSOUND_Driver_Init will fail also 
  if FSOUND has not been initialized with FSOUND_Init.
- MIXER - Fixed rare crash bug when background disk access caused timer 
  fluctuations.
- MIXER - Fixed rare sound output instability caused by closing and opening 
  fsound's driver code very quickly in succession.
- MIXER - Fixed crash bug on bidi samples playing backwards, at volume 0, 
  on the standard blendmode mixer only. (FPU Mixer also)
- MIXER - Fixed horrible fuzzy quality bug with MU-Law compressed samples!
- MIXER - Fixed standard blend mode mixer, which wasnt doing vol0 optimization 
  on -muted- channels.
- IT - fixed crash bug with mod that reference IT instruments beyond the
  number of instruments.
- API - All 'interpolation functions' removed, if you want interpolation select
  the FPU interpolating mixer and every sound played will use full 32bit 
  interpolation.  (choosing which channels you want interpolated would end
  up being a pain. Most people just want everything interpolated or not)
- CD - various CD player bugs fixed (random play, pause logic etc)
- API - FSOUND_GetCurrentVU now reports correct values for MuLaw compressed 
  samples.

09/05/99 2.19b
--------------
* API release, this includes changes/fixes from 2.18 Update 1 (cdrom fixes)
* Documentation updated
* FMOD is now approaching a non beta state! (no bug reports are coming in)
  Beta status will most likely be removed in a few weeks (maybe version 2.20)
* API - FSOUND_SetLatency has been renamed to FSOUND_SetUpdateRate, sorry for
  the name change but it is really the incorrect name for what this function does. 
+ INTERFACE - Settings now saved in registry.  New minimal CD Player panel!
+ CPU usage reduced during idle time. FMOD shuts itself down when nothing is happening.
+ API - FSOUND_Sample_Alloc now allows specification of default priority as well.
+ API - FSOUND_Sample_SetDefaults lets you set a sample's default freq,vol,pan & priority.
+ API - FSOUND_GetCurrentVU added, by request. (useful for vu bars/beat detection?)
+ API - FMUSIC_GetTime added, by request.  Useful for exact music synchronization EVERY time.
+ API - FSOUND_GetCurrentSample added, allows you to get the currently playing sample for
  a particular channel, useful for comparisons.. ie to see if a particular sample is still 
  playing on a particular channel.
- API - FSOUND_SetAttributes removed.  It was added before due to a request but I
  feel it is just API bloat and can be achieved through a macro.

28/04/99 2.18b Update 1 (player only)
------------------------------------
* FMOD - player only being updated here, not the API.  API releases usually
  come on the weekend. (they take more time to prepare)
+ CD - Added continuous, looped and random buttons for playback method.
- CD - All bugs fixed in CD player, all created by BUGS in WIN32 API 
  functions.   (mmsystem & mci commands- some work ok on NT, fail on 95).
- Removed startup dialog box.  Defaults to primary device and dsound.  Hit config
  to change. (maybe use registry later)

25/04/99 2.18b
--------------
* API - FSOUND_GetNumChannels renamed to FSOUND_GetMaxChannels
+ CD - New CD commands and support.  FSOUND's CD system is a NON POLLING non
  intrusive system (unlike windows cd player), for smooth background performance.
  Tracks can now be looped, stopped and continued.
+ INTERFACE - new filters!  Preverb filter(!) and Noise reduction.
+ INTERFACE - CD Player added.

17/04/99 2.17b
--------------
* API - FSOUNDVC.LIB now VC5.0 compatible.
- XM - Fixed crash on sample offset.
- API - FMUSIC_SetPaused fixed.
- MIXER - Fixed MULAW mixer.  Remember MULAW only works when a song has 16bit
  samples (it converts them to mulaw), otherwise it isn't any different.  It 
  only works for the blend mode mixer as well.  The MMX mixers are fast enough
  not to need mulaw.

11/04/99 2.16b
--------------
+ API - DSP Engine implemented and added!  New functions:
  FSOUND_DSP_Create,FSOUND_DSP_Free,FSOUND_DSP_SetPriority,
  FSOUND_DSP_GetPriority,FSOUND_DSP_SetActive,
  FSOUND_DSP_GetActive,FSOUND_DSP_GetClearUnit,
  FSOUND_DSP_GetSFXUnit,FSOUND_DSP_GetMusicUnit
  FSOUND_DSP_GetClipAndCopyUnit.
  See FSOUND_DSP_Create for documentation on this new feature.
+ API - Added FSOUND_MixChannel - now you have direct access to
  FSOUND's optimized mixers!
- MOD, S3M, XM, IT - Fixed loader bug introduced in 2.15! (to do
  with load from memory system.)
- XM - Found and fixed a sample offset bug introduced a few 
  versions ago, with 16bit samples.
- API - Echo engine and functions removed - DSP engine is now to
  be used.
- API - Fixed bug in FMUSIC_SetOrder.
- API - Fixed bug in FSOUND_GetMixer, it was returning 
  FSOUND_MIXER_AUTODETECT if that was used in FSOUND_SetMixer, 
  instead of the actual mixer it was using.
- INTERFACE - loader bug fixed.

28/03/99 2.15b
--------------
+ API - Watcom now supported.  Watcom users link in the
  FSOUNDW.LIB import library.
+ API - Added FMUSIC_LoadSongMemory, now load mod/s3m/xm/it 
  files from memory handles / resources.
+ API - Added FSOUND_LoadWavMemory, now load wav files from
  memory handles / resources.
- API - Fixed bug in FSOUND_Sample_Alloc which allocated samples
  with length = 0, and hence no sound came out when played.
- SAMPLE - fixed bugs in fmod sample code.

21/03/99 2.14b
--------------
* FSOUND / FMUSIC is now a DLL.  The reason is to use a dll is 
  to make it easier to link on different compilers, and it really 
  is for aesthetic reasons only to have it as a .lib.     (ie 1 exe 
  releases) and im not interested.
* Examples cleaned up, they dont specify unused .libs any more.
- WAVEOUT - bugfixed, works on NT now, and now actually uses 
  setmixahead settings.  You will have to use large mixaheads
  (80-100 and higher on my tests) for WaveOut, or the sound will 
  break up.  There is nothing you can do about this.
- DSOUND - works on NT now (DX3).  This is the same as waveout
  (dsound3 for nt is a waveout wrapper).  You will have to use 
  large mixahead values (80-100ms and higher on my tests), or it 
  may break up.
+ API - FSOUND_SetAttributes added
+ API - FSOUND_PlaySoundAttrib added

14/03/99 2.13b
--------------
* Programmers API finally released! see
  http://www.zip.com.au/~fl for more details!
+ MIXER Stereo sample mixers added.  Old way of spawning 2 new
  channels is gone.. Under MMX a stereo channel is actually
  faster than mono!
+ S3M, XM, IT - Zxx callback now supported.  Programmers can set 
  a callback function for whenever the Z effect is issued from a 
  song, for synchronizing effects etc.  .MOD is not supported.
+ STREAMERS - Streamer API Added for playing very large files.
  Currently only supports raw, but mulaw, adpcm and mp3 streamers
  are coming.
+ MOD, S3M, XM, IT - Master volume added to API.
  This is a true scalar instead of just modifying the song's 
  global volume like before (ie the song might have adjusted the 
  global volume after you set it)
+ INTERFACE - Master volume slider added.
- MIXER - Fixed extremely rare crash bug.
- MIXER - volumes were ever so slightly out, ie a channel
  panned full right still had about 0.4% (not much) of the sound
  playing in the left channel instead of 0% as it should have.
- MISC - many small fixes.

04/02/99 2.12b
--------------
- Fixed linear freq problem introduced due to linear freq
  optimization, I just removed it now for accuracy sake.
* a little bit more stable?

02/02/99 2.11b
--------------
- Fixed BPM problem on all formats.  Now loop songs should play ok.
- Fixed sample offset on all formats (oops sorry sample offset was
  disabled on mod/s3m/xm since 2.06 accidentaly!  noone seemed to
  notice hahaha)

31/01/99 2.10b
--------------
- Minor Direct Sound bugs fixed.

30/01/99 2.09b
--------------
- IT bug fixed with instrument numbers and no note.  (most
  formats dont retrigger the note in this case, but IT does if
  the sample has finished playing, and not before.)
- S3M Bug found in loader. (popped up only due to impulse
  tracker saved s3ms).
- IT fixed porta wihout any previous note.. porta on on a
  channel that has no channel playing will trigger a new note.
- DRIVER direct sound should work more reliably on NT using
  directX.
- INTERFACE fixed song list box bug.  Delete happily now without
  problems.
- INTERFACE config box now remembers what you last set when you
  hit config, and wont change any settings if you hit 'cancel'
  (it used to select nosound before)
- DRIVER code now detects incompatible cpu's and exits with an
  error instead of crashing?
- XM/IT replay sped up.  Linear frequencies processed a lot
  faster now.

26/01/99 2.08b
--------------
+ DRIVERS added capability to switch drivers on the fly.  Use
  the 'Config' Button on the interface to change output
  devices, soundcards, mixing rates or mixing routines.
+ MIXER added Mu-Law support!  This is only for NON-MMX mixing,
  and improves the speed of 16bit sample mixing dramatically, with
  only a small loss in sample quality. (simulates 12bit accuracy)
- MIXER fixed ugly bug (crashes/noise) with 8bit BIDI looping 
  samples on standard blend mode mixer.

24/01/99 2.07b
--------------
+ IT added volume byte portamentos
+ IT added S6x - Pattern delay by ticks
+ IT added volume byte vibrato
+ IT added sample vibrato
- IT fixed effect S73, S74, S75, S76, S77, S78.  These commands 
  are meant to alter the behaviour of an instrument, except i was 
  permanently modifying the instrument instead of just altering it
  for the note currently being played!! oops.. 
- IT / XM - turn off envelopes that have less than 2 points.
  (apparently sometimes files can have this)
- IT fixed Hxy Kxy Uxy (vibrato/finevibrato).. if Hxy is followed
  by U00 then it continues to be a normal vibrato, even if it says
  fine vibrato.. same for Uxy followed by H00.. it continues with
  a fine vibrato even if it says normal vibrato..  The y part of
  the command needs to have something in it to change vibrato
  types. (dumb impulse tracker bug)
- IT fixed volume slide bug in Kxy Lxy
- IT foreground / background channel logic is more accuate now with
  NNA's and effect commands.
- MOD, S3M, XM, IT - now checks internal signatures for file verification
  as some people were trying to load mod's etc that were renamed to s3m!
  yeah yeah thanks a lot otto ;)
- IT fixed S00 - any Sxy command gets remembered and replayed if it
  is followed with S00.. (crono - not just SDx and SCx like you said)
- DSOUND fixed init/shutdown code to be cleaner.


20/01/99 2.06b
--------------
- XM fixed BPM issue.. seems FT2's timer is a bit faster than it
  really should be.. (roughly 2bpm) mega-sample-loop songs sound
  ok now.
- IT another pattern loader crash bug fixed (should be the last)
- IT fixed Gxx bug (portamento).. IT forgets it porta target 
  after it reaches it. (TheHornet again)
- IT fixed Oxy (sample Offset) bug

18/01/99 2.05b
--------------
* MIXER Using large latency again just for fmod.exe with dsound,
  to improve stability (im working on it)
- IT Fixed signed/unsigned sample detection in loader
- IT Disabled pitch envelopes for IT's using IIR filters so they 
  wont sound awful.
- XM Fixed crash bug in loader.

17/01/99 2.04b
--------------
* Mixer buffer management totally rewritten, might be a *tiny*
  bit slower (becuase of caching), but it is a lot more flexible
  and stable.  Built in preparation of the DSP plugin API.
* Halved size of both MMX mixer routines (to do with surround)
* API ready to use.  Now at beta test stage
* Thanks to TheHornet for his doc on it 'nuances' that were too
  subtle to find through normal testing. (bugs found with (***))
* New more consistant mixer thread management.
+ Volume 0 optimizations!  Average mods will now use about 30%
  less cpu time (depends on the song)
+ Standard blend mode mixer sped up for 8bit samples
+ Windows Multimedia WaveOut support added.  At the moment it
  works well but the latency is too long for game sfx.  It is
  more stable than the direct sound driver (less garbling / 
  breakups)
+ .WAV sample support added.
+ Stereo sample support added.
+ IT added linear frequencies.
+ IT added panbrello
+ IT added support for 'compatible Gxx' in IT's options
- MIXER Fixed volume 0 optimization hang bug.
- IT fixed effected E/F/G to use the same memory.
- IT fixed SDx delay note bug (SD0 == SD1)               (***)
- IT fixed SCx note cut bug (SC0 == SC1)                 (***)
- IT fixed Qxy retrig (now retrigs across multiple notes like 
  IT.. other formats ignore retrig if it is higher than the
  speed of the song)
- IT fixed Gxx / Lxy (portamento). was 2x too slow.
- IT fixed Vibrato for 'old effects'.. with old effects it is
  2x deeper and does not get updated on tick 0.
- MIXER OOPS! i had '#define ROLLED' left uncommented in my P6
  MMX mixer since version 2.0 or so!! it wasnt using unrolled
  loops. Now it is roughly 1.6 times faster! (from 5% to 3% cpu
  usage on a p2-266 for mixing 32channels at once)

14/11/98 2.03b
--------------
+ Added stability to mixer, removed 150ms crap from 2.02

07/11/98 2.02b
--------------
* ALL players use a new dynamic channel allocation system
- consider MOD, S3M & XM under beta again. (MAY have 
  broken something!)
* MIXER in an attempt for added stability, for this standalone
  player, a different approach is used.. it has a huge
  latency (150ms) and takes a bit more cpu time, but shouldnt
  break up as much .. for the game library the old method
  still stands. (150ms is way too long to wait for a sound
  effect to trigger.. so fmod uses 50ms latency for games etc)
+ IT Added NNA's
+ IT Added DCT/DCA's.
+ MIXER Added echo post effect.. hardcoded 50ms echo for now.
+ IT Added Pan Envelope
+ IT Added all volume column effects except for porta commands &
  vibrato
+ INTERFACE Added drag and drop.  Drag tunes from explorer into
  the player to load
+ INTERFACE also command line fileloading (ie associate the exe
  in explorer with mod,s3m,xm,it then just doubleclick files
  to load them)
+ IT Added most other effects
- ALL Fixed some crashing for songs that specify sample id's that 
  dont exist.
- XM & IT Fixed Envelope bug - loops were playing 1 tick too long :)
- S3M fixed arpeggio bug causing 0 frequencies (divide by 0)
- IT fixed pattern break and pattern jump .. both params are
  hex unlike all other formats.
- IT fixed arpeggio depth
- IT enabled end of song marker.. it was crashing on this b4
- INTERFACE Fixed memory leak.. it would slowly leak memory in
  realtime until windows ran out of resources and crashed! :)
- IT fixed porta bugs.. oops i was portamento'ing 2x too fast
- IT fixed instrument bug.  it was updating all nna channel's
  envelopes etc, using only the most recent nna's instrument
  definition, instead of the instrument that should have been
  associated with each individual nna channel.
- IT fixed set pan (Xxx) bug
- IT fixed invalid pattern bug with patterns defined that are 
  larger than the number of patterns specified in the file.
- IT fixed vibrato (Hxy) bug
- IT fixed big NNA bug.. i was performing NNA's based on the
  new instrument's nna flags instead of the one it was
  cutting off!
- IT fixed the past nna s7x effects.. now the number of channels
  mixed on the interface matches exactly that of impulse
  trackers!

20/10/98 2.01b
--------------
+ IT Added preliminary volume envelope support (no sustain loops)
+ IT Added channel volume slide
+ IT Added noteoff & notecut (not the effect, the note type)

19/10/98 2.00b
--------------
* First private release Version, includes MOD, S3M and XM and IT
  support.  New software mixers, win32 only.  Removed 669,FAR &
  MTM support, old interface is gone, new win32 interface..
  jeezus has it been 3 years? im getting too old for this shit:)
* IT Support is REALLY basic.. roughly 30% done.
- XM Fixed bug with envelope loopend.



/|\
 |
 |
 |
 |



30/11/95 1.06 
-------------
* Released with FMODDOC 2, including full source code
+ Totally new fast scrolling interface, some keys have changed.
+ 32channel .MOD support added. (ie dope.mod type, etc)
+ 9 octaves supported now (C-0,B-8), including 7 octaves .MOD
+ No more 64kb sample limit (4gig sample on a GUS? :)
+ MTM support added
+ 669 support added - what an awful format!
+ extended 669 support added - just as bad :)
+ 16 bit support added (err for mtm? ahh well xm will come)
+ Clipping samples at loopend points to save GUS memory
+ S3M support added
- Bugfix where all music came out in left channel on SOME cards
  (none I have heard:).  Thanks to Brad Thomas for the fix.
- 2 GUS bugs fixed (reported wrong dram size & dram corruption)
* now checks if the samples are too big for the card.
- Voices now play almost simultaneously instead of 1 after the
  other like before
+ Added Technicality-Index (tm) meter!  Truly a cool feature.
+ Knocked 52% of DRAM upload time! YES it is *2* times faster!!
  (eg when.s3m even loads *3* seconds faster than cmod does)
* - FIXED at last.  FMOD will now NOT crash (fingers crossed :)
- removed clicking from looping samples
- Vibrato fixed properly this time and is 100%.
* Calculated new volume table.  Not so noisy. Less distortion.
+ WildCard Support added!
+ S3M Stereo Control effect SAx added
+ Solo Channel feature added and many other muting features
- Fixed S3M retrig bug
+ Vibrato/Tremolo WaveControl finished properly
+ Keyboard LED flashing added!  Lights flash to channels 1-3.
- tempo bug fixed, timing system changed so BPM can drop to 24
+ FAR support added
* Sample loader redone and >64kb bug fixed, also pattern storage
  method changed.
* Panning changed, now values from 0 to 255 to suit FT2.
- Pattern Loop bug fixed, I didnt know pattern loop stored
  seperate values for each channel.
- pattern jump + pattern break bug fixed now all those weird
  backwards tunes work RIGHT.
+ Added S3M's Fast Volume Slide bug, err feature :)
++ NOW PMODE!  Load any sized tune you like now and still have
  heaps of memory left
+ NEW tracker screen.  Watch pattern data like a tracker
- Keyboard LED flashing removed, caused crashes on some 
  peoples computers.. sigh it was rather cool.
+ NEW technical info screen.  Watch a lot of meaningless info
  appear on the screen.  Good for developers to check against.
- .MOD bug fixed, now those extremely high and low octaves
  supported PROPERLY.. (unlike some cMOD players;)
- sample offset bug fixed.
+ Dynamic interface installed, now any screen can be called up
  from any other screen, instead of just from the main screen
  like before.
* Error handling changed for a lot better stability.
+ File Selector included for all those losers who wanted it :)
+ Added effect Ixy - Tremor - perfect I think unlike other
  players.. compared against Scream Tracker 3
- Fixed >64kb sample loading bug - was causing crashes
- Fixed MTM loader bug after about 6 hours of tearing out hair
* File Selector now accessable while song is still playing,
  press escape to return to the main interface.
- sample uploader recoded, fixed.  16 bit samples now load 
  a lot better (this is actually from 1.07 which isnt released
  yet and probably wont be for a while ;)
- a zillion little other bugs fixed.

13/6/95  1.05 
-------------
- GUS looping clicks removed.
- Mute bug fixed.  Wouldnt unmute unused channles.

10/6/95  1.04 
-------------
- fixed another crash bug
+ Added cool new pan cycling effect!  Hit 'c' to try it.

7/6/95  1.03 
-------------
- Fixed interface bug (was printing ^g's in sample names)
+ Added effect 8xy (Panning) 
- Fixed crash bug maybe..  I think I did, people complained of
  the interface crashing.. I've never seen it crash but I found
  I was mixing 'new' and 'malloc'.. fixed.
+ Added effect 7xy (Tremolo) - woopee ;)
+ Added mute channels
+ Added panning keys '(' and ')' to set default panning.

30/5/95  1.02 
-------------
* major internal storage changes!  
+ More memory in dos shell! around 30kb on average sized tunes.
* A lot faster.
- Pattern break fixed.  Tested on backward.mod by FireLight
- Now mixes at 44.1khz like it should instead of 30khz..oops :}
+ Added effect EEx (Pattern Delay).
+ Added effect E6x (Pattern Loop).
- Retrig fixed now 100% protracker.

5/4/95  1.01 
-------------
- fixed crash bug / increased speed by not calculating unused
  channels. (I don't think i released this version though)

6/3/95  1.00 
-------------
* FIRST PUBLIC RELEASE (In FireStorm 2 Music Disk)
- Vibrato bug fixed, now works I think :).
* Interface Completely changed looks much nicer now
+ speed of interface increased greatly

==============================================================================

