mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-27 22:36:05 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			6662 lines
		
	
	
		
			322 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			6662 lines
		
	
	
		
			322 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| ===============================================================================
 | |
|                            REVISION HISTORY : FMOD Ex
 | |
|              Copyright (c) Firelight Technologies, Pty, Ltd, 2004-2011
 | |
|                               http://www.fmod.org
 | |
| ===============================================================================
 | |
|               + Added feature or noticable improvement
 | |
|               - Bug fix or something removed
 | |
|               * Changed or Information
 | |
|               ! Important - Take note!
 | |
| ===============================================================================
 | |
| 
 | |
| 02/03/11 4.32.09 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Runtime impact of FMOD_INIT_ENABLE_PROFILE significantly reduced.
 | |
| 
 | |
| - Fix crash when sentences that change subsounds at runtime go virtual/come back.
 | |
| 
 | |
| - Windows - Fix crash if using G35 headset in Windows Vista/7.
 | |
| - Xbox 360 - Fix crackling noise in FMOD_DSP_TYPE_ECHO.
 | |
| - PS3 - Fixed crash when trying to play IT and MIDI files.
 | |
| - PS3 - Fixed crash in virtual voice system in certain cases with dsp oscillator
 | |
|         channels.
 | |
| 
 | |
| - Event API - Fix possible crash if FMOD_EVENT_EFFECTS_AFFECT_REVERB flag is
 | |
|   used.
 | |
| 
 | |
| - FSBankLib - fix ADPCM source wavs causing error during compilation.
 | |
| 
 | |
| * Ogg vorbis conflicts when linking in their own version of libogg etc resolved
 | |
|   thanks to new namespacing of custom ogg code in FMOD library.
 | |
| 
 | |
| * PS3 - Libraries renamed to more compliant libXXX.a format.
 | |
| 
 | |
| 31/01/11 4.32.08 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Xbox360 - Add xma_validator tool to examples folder.  This opens FSB data
 | |
|   and scans it for bad files.  Some rare bad sounds can be introduced with XMA
 | |
|   encoding which encounter a bug in XMA decoding hardware and hang the machine.
 | |
| 
 | |
| - Event API - Fixed events in the same group being released if getEvent fails
 | |
| - Event API - Fixed memory being allocated when events containing sound
 | |
|               definitions with Play Mode 'Shuffle' were started
 | |
| 
 | |
| * Xbox360 - FMOD is built with XDK 20353
 | |
| 
 | |
| 05/01/11 4.32.07 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + PS3 - Add Dolby Logo Usage Guidelines to PS3 getting started document.
 | |
| 
 | |
| - Fixed MPEG codec so it doesn't incorrectly identify files as valid.
 | |
| - Updated to latest Neural DTS code. Fixes some audio corruptions issues.
 | |
| 
 | |
| - iPhone - Fixed seamless looping for M4A files.
 | |
| - iPhone - Fixed audio not coming back after screen lock and when background
 | |
|            audio is interrupted with iOS 4.2. RestoreAudioSession function
 | |
|            is no longer required.
 | |
| - Win32 - (XP only) Fix certain soundcards coming out silent when using 
 | |
|            5.1/7.1
 | |
| 
 | |
| - Event API - Fix FMOD_EVENT_INFOONLY events and Event::setPropertyByIndex
 | |
|   setting all instances of the event when specifically told not to.
 | |
| 
 | |
| - FSBankLib - Fixed cache not being rebuilt when adjusting the optimized sample
 | |
|               rate percentage.
 | |
| - FSBankLib - Fixed invalid param error when compressing as MPEG when source file
 | |
|               is a certain length.
 | |
| - FSBankLib - Fixed a thread safety issue in the twolame MP2 encoder.
 | |
| 
 | |
| * Xbox360 - FMOD is built with XDK 20209.3
 | |
| 
 | |
| 1/12/10 4.32.06 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - fixed incorrect playback of sentences with Sound::setSubSoundSentence if 
 | |
|   more than one subsound fit into the front buffer of a stream.
 | |
| - fixed bug which caused profiler to send truncated packets.
 | |
| - Fixed Channel::setSpeakerLevels being wrong if using virtual voices.
 | |
| 
 | |
| - Mac/iPhone - fixed potential hang if system runs out of named semaphores.
 | |
| 
 | |
| - Event API - Made the music system pick up where it left off if it dropped
 | |
|               out due to a long delay between EventSystem::update calls
 | |
| - Event API - Made Event getProperty and setProperty functions return
 | |
|               FMOD_ERR_EVENT_NOTFOUND if the specified property isn't found
 | |
| - Event API - Fixed crash if EventProject::cancelAllLoads was called while 
 | |
|               an async load was in progress.
 | |
| 
 | |
| - FSBankLib - Fixed default quality for XMA, now 60 instead of 1.
 | |
| - FSBankLib - Fixed corrupt output if using PCM8 or PCM24 and doing downsampling.
 | |
| 
 | |
| - Profiler - Made more robust when encountering corrupted packets.
 | |
| 
 | |
| 
 | |
| 10/11/10 4.32.05 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added FMOD_MEMORY_SAMPLEDATA to memory allocation callback types.
 | |
| 
 | |
| - iPhone - Fixed output freezing when device is locked, and playing ducked
 | |
|            iPod audio.
 | |
| - win - Fixed surround output with DirectSound not working with X-Fi cards.
 | |
| - xbox360 - Fixed crash with mixed XMA FSB containing mono / stereo and
 | |
|             multichannels subsounds.
 | |
| 
 | |
| - Profiler - Fixed volume levels coming out incorrect.
 | |
| 
 | |
| * iPhone - Now built with SDK 4.2
 | |
| 
 | |
| 22/10/10 4.32.04 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| * PS3 - Now built with SDK 350.001
 | |
| 
 | |
| 5/10/10 4.32.03 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + xbox360 - Added support for xWMA file format.
 | |
| 
 | |
| - Fix Channel::getPosition with FMOD_TIMEUNIT_SENTENCE_SUBSOUND rarely returning
 | |
|   values outside the range that it is supposed to return.
 | |
| 
 | |
| - PS3 - Fixed Channel::getLoopCount sometimes returning incorrect value. This
 | |
|         was causing occasional issues whent setLoopCount was used in conjunction
 | |
|         with virtual voices.
 | |
| - iPhone - Fixed recording examples not working in the simulator.
 | |
| 
 | |
| 15/09/10 4.32.02 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added 'multi' build mode to fsbankcl
 | |
| + Allowed custom cache dir in fsbankcl
 | |
| + Allowed custom thread count in fsbankcl
 | |
| 
 | |
| + FSBankLib - Added ability to specify per subsound the percentage of the
 | |
|               optimized sample rate to use.
 | |
| 
 | |
| - Fixed wav files with malformed sync points causing a crash.
 | |
| 
 | |
| - iPhone - Fixed platform specific header so it exports symbols as C.
 | |
| - iPhone - Fixed error returned from AudioQueue codec stream with setPosition.
 | |
| - iPhone - Fixed AudioQueue codec to try software if hardware decoder is in use.
 | |
| - iPhone - Fixed crash with AudioQueue codec samples when an interruption is 
 | |
|            resolved or FMOD_IPhone_RestoreAudioSession is used.
 | |
| - iPhone - Fixed AudioQueue codec not resuming after a screen lock.
 | |
| 
 | |
| - Event API - Fixed music system shared timelines not handling pausing properly
 | |
| - Event API - Fixed music system crossfades not handling pausing properly
 | |
| 
 | |
| - FSBankLib - Fixed encoder bug causing big endian PCM FSBs to not load correctly.
 | |
| - FSBankLib - Fixed optimize sample rate flag being ignored if passed via build.
 | |
| 
 | |
| * iPhone - Now built with SDK 4.1
 | |
| 
 | |
| 24/08/10 4.32.01 - Stable branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Less memory overhead per FMOD allocation = good memory savings.
 | |
| 
 | |
| - Fixed DSP connection volume levels being 0 upon first connect when using 
 | |
|   DSP::addInput, in certain DSP connection configurations.
 | |
| - Fixed midi playback timing accuracy.
 | |
| - fix crash if using _reduced version of FMOD and Event System (psp/ps2/wii).
 | |
| - Fixed Channel::setPan/setSpeakerMix not working if using System::playDSP
 | |
| 
 | |
| - iPhone - Fixed AudioQueue codecs not restarting when an app is sent to the
 | |
|            backrgound then restarted.
 | |
| 
 | |
| - PS3 - Fixed crash when calling Sound::release() on a sound loaded with
 | |
|         FMOD_LOADSECONDARYRAM, introduced in 4.33.00 pre 2.
 | |
| 
 | |
| - Event API - Fixed mute state not being reset when getting an event instance
 | |
| 
 | |
| 5/08/10 4.32.00 - Initial stable branch release
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Unblocked setParameter for DSP Flange.
 | |
| + PS3 - Unblocked setParameter for DSP Echo.
 | |
| 
 | |
| - Fixed MIDI crash and excessive cpu usage issue introduced in 4.31.05.
 | |
| - Fixed a couple of crashes from calling functions on a non-playing channel.
 | |
| - Fixed crash when releasing a CELT .fsb in certain cases.
 | |
| - Fix FMOD_DSP_TYPE_HIGHPASS allowing cutoff frequencies below 10hz and 
 | |
|   causing crackling.
 | |
| - Fixed doppler calculation to be framerate independent and more accurate
 | |
| 
 | |
| - iPhone - Fixed error loading small MP3s with AudioQueue codec causing fallback
 | |
|            to the FMOD software MP3 decoder.
 | |
| - Linux - Fixed installer trying to install deprecated plugins lib.
 | |
| - Wii - Fixed extremely rare issue where calling Channel::setPosition will cause
 | |
|         that channel to play random noise.
 | |
| - Linux - Fixed crash on System::close depending on pthread implementation.
 | |
| 
 | |
| - FSBank - Fixed bug which caused XMA encoded FSBs (without seek tables) to crash.
 | |
| 
 | |
| * .FEV file format updated! If you build with FMOD Designer 4.33.00, you must
 | |
|   use FMOD version 4.33.00 or higher.
 | |
| * PS3 - Now built with SDK 340.001
 | |
| 
 | |
| 21/07/10 4.31.05 - Development Branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Optimized speaker level setting of DSP nodes which increases performance across 
 | |
|   the board especially with 3d calculations and custom 2d speaker level settings.
 | |
| + Add add Sound::setMusicSpeed/getMusicSpeed to change playback speed of 
 | |
|   MOD/S3M/XM/IT/MIDI
 | |
| 
 | |
| + Event API - add FMOD_EVENT_SYSTEMINFO::numloadsqueued to determine how many 
 | |
|   load requests are queued up due to FMOD_EVENT_NONBLOCKING flag.
 | |
| + Event API - add EventProject::cancelAllLoads function for faster project 
 | |
|               unloading.
 | |
| 
 | |
| + Wii - improved accuracy of getMemoryStats.
 | |
| 
 | |
| - Fixed rare hang related to new Asynchronous I/O file logic.
 | |
| - Fixed rare memory corruption issue when using FMOD_INIT_VOL0_BECOMES_VIRTUAL
 | |
|   flag and setSpeakerLevels on many channels.
 | |
| 
 | |
| - Xbox360 - Fixed rare crash when calling System::recordStart, immediately after
 | |
|             calling System::recordStop.
 | |
| - Xbox360 - Fixed very rare crash when calling System::recordStart.
 | |
| - PS3 - Fixed issue with profiler sometimes displaying too many VU bars on
 | |
|         empty channelgroups.
 | |
| - PS3 - Fixed MP3 encoded FSB with greater than stereo (ie 5.1/7.1) source
 | |
|         sometimes swapping channels if the bitrate was low.
 | |
| - iPhone - Fixed iOS 4.0 issue of losing audio when interrupted while running
 | |
|            in the background. Calling FMOD_IPhone_RestoreAudioSession from
 | |
|            applicationWillEnterForeground will ensure audio is restored.
 | |
| - iPhone - Fixed iOS 4.0 issue of MP3 / AAC / ALAC hanging after a while.
 | |
| - iPhone - Fixed iOS 4.0 issue where audio session doesn't auto resume.
 | |
| - Wii - Fixed GCADPCM fsb's being loaded as FMOD_SOFTWARE instead of FMOD_HARDWARE
 | |
|         by default if no mode is set while loading them.
 | |
| - Win - Vista/Win7 - Fixed output going silent if user changes control panel audio
 | |
|         settings, most cases will auto recover, those that don't cause a new system
 | |
|         callback to fire to signal device lost.
 | |
| 
 | |
| - Event API - Removed stall in EventGroup::freeEventData if other non related 
 | |
|               groups were being loaded using FMOD_EVENT_NONBLOCKING.
 | |
| - Event API - Fixed music system glitches when looping segments that use
 | |
|               "Load into memory" samples (bug introduced in 4.31.00 pre 3)
 | |
| 
 | |
| - FSBank - Fixed 8bit PCM files not being accepted by some encoders.
 | |
| 
 | |
| * iPhone - Now built with SDK 4.0
 | |
| 
 | |
| 1/07/10 4.31.04 - Development Branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - Added ability to specify whether AudioQueue codec sounds are decoded
 | |
|            using hardware or software via the new FMOD_CREATESOUNDEXINFO member
 | |
|            extracodecdata.
 | |
| + Wii - Added FMOD_Wii_NMIC_GetLastError.
 | |
| + Win32 - Added LADSPA plugin support (see http://www.ladspa.org/)
 | |
| 
 | |
| + Event API - Reduced memory usage and allocation count in EventSystem::load
 | |
| + Event API - add FMOD_EVENT_PROJECTINFO and EventProject::getInfo
 | |
| + Event API - Readded concept of 'systemid' which was removed from 4.31.03
 | |
| + Event API - Allow EventSystem::preloadFSB to take an FSB name without the '.fsb'
 | |
|               extension to make it easier to match with FMOD_EVENT_WAVEBANKINFO.
 | |
| 
 | |
| - Fixed reverb wetmix for a channel set to volume 0 still being heard, if both
 | |
|   System::setReverbAmbientProperties and System::setReverbProperties are called
 | |
|   after the channel has been started.
 | |
| - Fixed MP3 encoded FSB with greater than stereo (ie 5.1/7.1) source sometimes
 | |
|   swapping channels if the bitrate was low.
 | |
| - fix crash if all speaker positions are at the same position, via 
 | |
|   System::set3DSpeakerPosition
 | |
| 
 | |
| - Win - Vista/Win7 - Fix very small shutdown/restart memory leak when using 
 | |
|         FMOD_OUTPUTTYPE_WASAPI.
 | |
| - Linux - Made lib not require an executable stack.
 | |
| - iPhone - Reduced base memory usage due to threads with excessive stack size.
 | |
| - Wii - Fixed reverb instances not working correctly when used through the 
 | |
|         Event System.
 | |
| - Wii - Fixed rare crash when stereo hardware sounds finish playing.
 | |
| - PS3 - Fixed error when opening a file if using FIOS.
 | |
| 
 | |
| - Event API - Fixed incorrect crossfade curve applied to sound instances.
 | |
| - Event API - Fixed the trigger delay feature to work for sounds without 
 | |
|               needing to specify the 'Wait for previous' start mode 
 | |
| 
 | |
| - FSBank - fix loop points being incorrect when exporting >stereo xma files.
 | |
|            Result was a hang on playback on xbox360.
 | |
| - FSBank - Fixed list file handling
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.31.04 requires FMOD version
 | |
|   4.31.04, 4.30.05, 4.28.15, 4.26.25, 4.24.38 or higher
 | |
| 
 | |
| !* Windows - Removed FMOD_HARDWARE support for FMOD_OUTPUTTYPE_DSOUND.  
 | |
| !* Windows - Removed EAX support
 | |
| !* Windows - Removed OpenAL support via FMOD_OUTPUTTYPE_OPENAL.  
 | |
| !* Windows - All mixing is now done by FMOD's software mixer, as hardware 
 | |
|    support is 1. prone to buggy drivers, 2. lacking features, 3. not as fast
 | |
|    as mixing on the CPU these days, due to inneficiencies in DirectSound.
 | |
| 
 | |
| !* PS3 - FMOD no longer initialises / shuts down PS3 network subsystem.
 | |
|          You will need to call sys_net_initialize_network / 
 | |
|          sys_net_finalize_network yourself to use FMOD_INIT_ENABLE_PROFILE.
 | |
| 
 | |
| 28/05/10 4.31.03 - Development Branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Wii - Added NMIC recording support.
 | |
| + Add pan slide command support for modplug created .it files.
 | |
| + Event API - Reduced fragmentation with EventSystem::load and reduced overall 
 | |
|   memory usage per project.
 | |
| 
 | |
| - Fixed FMOD_ERR_TOOMANYCHANNELS being reported if System::createDSP was called 
 | |
|   with FMOD_DSP_DESCRIPTION::channels being larger than the number of speakers for
 | |
|   the outputmode.  Changed to error check on max input channels instead.
 | |
| - Fix 1 in a million crash if FMOD_NONBLOCKING operation happened before the main
 | |
|   thread finished issuing the command.
 | |
| - Fix Channel::setReverbProperties not repsponding without an instance flag being 
 | |
|   set.  The behaviour was supposed to be that if no flags were set, reverb instance 
 | |
|   #0 would be affected by default.
 | |
| 
 | |
| - iPhone - Fixed case if using set mixable function while interrupted would fail.
 | |
| - iPhone - Fixed AudioQueue codec not relinquishing hardware access when finished.
 | |
| 
 | |
| - Event API - Event queue - Fixed ducking jump when interrupting a delayed entry
 | |
| - Event API - Removed concept of 'systemid'.  For unique IDs use GUID functions,
 | |
|               and for iterations use getEventByIndex inside the EventProject 
 | |
|               class, looping through all loaded projects which can be done 
 | |
|               with EventSystem::getNumProjects/getProject.
 | |
| 
 | |
| * Changed FMOD_OPENSTATE_STREAMING to FMOD_OPENSTATE_PLAYING, because it now 
 | |
|   supports static samples as well as streams.  Use this state to avoid stalls 
 | |
|   in Sound::release.
 | |
| 
 | |
| 6/05/10 4.31.02 - Development Branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Wii - Added FMOD_INIT_WII_DISABLEDOLBY init flag to default to stereo even
 | |
|         if surround is selected in the Wii system menu.
 | |
| + iPhone - Added the ability to duck the iPod at runtime, see fmodiphone.h for 
 | |
|            new functionality.
 | |
| + iPhone - Added ability to force the 'mixable' state of an an audio session
 | |
|            that doesn't usually permit mixing with other audio. See fmodiphone.h
 | |
|            for new parameter and function.
 | |
| + iPhone - Added support for FMOD_ACCURATETIME with codec AudioQueue. This will
 | |
|            give accurate file lengths and fast seek times at the cost of scanning
 | |
|            the file at create time.
 | |
| 
 | |
| - Fixed ChannelGroup::getWaveData sometimes returning data when nothing is
 | |
|   playing.
 | |
| - Fixed audio corruption when setting 3DPanLevel to less than one and the
 | |
|   output mode is not 7.1.
 | |
| - Removed no longer used FMOD_INIT_XBOX_REMOVEHEADROOM flag.
 | |
| - Fix FMOD_MEMORY_FREECALLBACK not returning matching 'type' value when 
 | |
|   memory was allocated with a specific type.
 | |
| - Fixed bad offset value being passed to FMOD_FILE_ASYNCREADCALLBACK in certain 
 | |
|   cases causing inconsistent file read results.
 | |
| - Fixed long reads causing crash upon close, with new async IO changes.
 | |
| 
 | |
| - PS3 - Fixed System::recordStart returning an error when called after a single
 | |
|         mic is disconnected, and reconnected again to a different usb port.
 | |
| - Linux - Fixed detection of PulseAudio not being strict enough causing false
 | |
|           positives.
 | |
| - PS3 - Fixed crash when shutting down FMOD if FMOD_INIT_ENABLE_PROFILE was
 | |
|         specified during init.
 | |
| - PS3 - Fixed getWaveData and getSpectrum not returning any values.
 | |
| 
 | |
| - Event API - Event queue - Higher priority event will no longer cut off lower
 | |
|               priority playing event
 | |
| - Event API - Event queue - Interrupt events will now interrupt an event that is
 | |
|               delaying
 | |
| - Event API - Event queue - Fixed fadeout on duck not working correctly
 | |
| - Event API - Fixed sounds not being updated (e.g. for volume effects) if they
 | |
|               aren't touched by the control parameter
 | |
| 
 | |
| * PS3 - Now built with SDK 330.001
 | |
| * Changed Sound::getName to return unicode name if FMOD_UNICODE flag was specified.
 | |
| * System::getOutput will now resolve FMOD_OUTPUTTYPE_AUTODETECT to the actual
 | |
|   mode FMOD will use when initialized.
 | |
| 
 | |
| 22/04/10 4.31.01 - Development Branch update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - added forceMixWithOthers member to extradriverdata to force mixing
 | |
|            with the iPod when in "playandrecord" or "mediaplayback" session
 | |
|            category.
 | |
| + linux - added new PulseAudio native output mode. Output mode auto detection
 | |
|           will now pick PulseAudio if it's available, otherwise it will try ALSA,
 | |
|           otherwise it will fallback to OSS.
 | |
| 
 | |
| - Fixed PCM sample stitching crash/noise when using Sound::setSubSoundSentence
 | |
| - Fixed Quad waveforms not playing out of rear speakers when included in banks
 | |
|   containing waveforms which have more than 4 channels
 | |
| - Fixed incorrect playback of the first few milliseconds of MIDI files.
 | |
| - Fixed crash when calling setSubSoundSentence with a sound with no subsounds.
 | |
| 
 | |
| - PS3 - Fixed "ERROR - LIBAUDIO DROPOUT" being printed to TTY when shutting down
 | |
|         FMOD.
 | |
| - Mac64/Linux64 - Fixed MP3s decoding incorrectly causing garbled output.
 | |
| - Xbox 360 - Optimized mixing slowdown due to 16bit float support
 | |
| - Wii - Fixed issue where Sound::getSubSound would always return
 | |
|         FMOD_ERR_FILE_DISKEJECTED if a sound was created using FMOD_NONBLOCKING
 | |
|         and the disk was ejected before the first call to Sound::getSubSound.
 | |
| 
 | |
| - Event API - fixed click at the start of 'wait for previous' sounds when no 
 | |
|               resampling takes place
 | |
| - Event API - Fixed starting two concurrent music themes simultaneously.
 | |
| 
 | |
| * Removed support for older 'FSB3' format
 | |
| * PS3 - Now built with SDK 321.001
 | |
| * iPhone - Now built with SDK 3.2
 | |
| 
 | |
| 6/04/10 4.31.00 - Initial development branch release
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Add asynchronous I/O support.   FMOD_FILE_ASYNCREADCALLBACK now allows user
 | |
|   to defer file reads from file callbacks to a later time, rather than satisfying 
 | |
|   fmod read requests on demand.  Great for streaming world engines.
 | |
| + Add FMOD_TIMEUNIT_PCMFRACTION, for DSP accuracy purposes.
 | |
| 
 | |
| + iPhone - replaced init extra driver data parameter for checking if other audio
 | |
|            is playing with a function that can be called any time.
 | |
| + PSP - Optimised software mixer.
 | |
| + PSP - Optimised software mixer for GCC build (previous release was SNC build).
 | |
| - Xbox360 - Fixed multichannel XMA support when stream had odd # of channels.
 | |
| 
 | |
| - Fix connections going awry in rare situations if addDSP command was used.
 | |
| - Fixed issue with speaker levels being shared after a virtual voice swap.
 | |
| - Fixed FSB file corruption introduced in 4.31.00 pre 8.
 | |
| - Fixed crash when decompressing invalid data from FSB file into memory.
 | |
| - Fixed netstreams max string length of 256.
 | |
| - Fixed getLoopCount giving incorrect loop number for FMOD_CREATECOMPRESSEDSAMPLE
 | |
|   sounds.
 | |
| - Fixed IT codec not resetting instrument envelopes under certain circumstances 
 | |
|   causing some sounds to play silently.
 | |
| - Fixed crash when re-initialising FMOD when there had been an FSB that hadn't
 | |
|   been released previously.
 | |
| 
 | |
| - Xbox360 - Fixed audition client black screen on load.
 | |
| - iPhone - fixed issue with arm7 slice not identifying correctly.
 | |
| - Wii - Another fix for extremely rare issue where sometimes the Wii will 
 | |
|         just start producing distortion type noise.
 | |
| - PS3 - Fixed rare issue where static and global variables could end up being
 | |
|         rubbish
 | |
|  values in user created custom dsp units.
 | |
| - Wii - Fixed issue with some GCADPCM sounds not looping seamlessly.
 | |
| 
 | |
| - Event API - Fixed crash if getting a complex event followed by getting the 
 | |
|              same event with FMOD_EVENT_USERDSP flag then playing the 2nd event.
 | |
| - Event API - Fixed sounds with spawning and "Wait for previous" sometimes not
 | |
|               cancelling pending sounds properly when the parameter moves away
 | |
| 
 | |
| * Streams that have priority 0 now are -not- affected by 
 | |
|   FMOD_INIT_VOL0_BECOMES_VIRTUAL flag.  Saves pointless disk access.
 | |
| * setSpeakerLevels() and setSpeakerMix() now return FMOD_ERR_NEEDSSOFTWARE when
 | |
|   using DSOUND output as these functions are not supported with DSOUND.
 | |
| 
 | |
| 26/02/10 4.31.00 pre 9 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Mixers now nearly 20% faster in some cases.
 | |
| 
 | |
| + Wii - Added WiiSpeak recording support.
 | |
| + Xbox 360 - Added DTS Neural downmix support. Use FMOD_INIT_DTS_NEURALSURROUND
 | |
|              to activate.
 | |
| + iPhone - Added support for AAC, ALAC and MP3 decoded via the iPhone hardware
 | |
|            / software codecs.
 | |
| 
 | |
| + Event API - Added music system FMOD_EVENT_INIT_USER_ASSETMANAGER support
 | |
| 
 | |
| - Fixed bursts of sound being played from channels that are muted.
 | |
| 
 | |
| - iPhone - Fixed memory leak when releasing the FMOD::System object.
 | |
| - PS3 - Fixed reversed sounds getting their frequencies set to 0 if they are
 | |
|         played on a channel that was previously used to play a
 | |
|         FMOD_CREATECOMPRESSEDDSAMPLE sound.
 | |
| 
 | |
| - FSBankLibEx - Fixed c# wrapper not working properly due to sybmols not being
 | |
|                 exported in fsbanklibex.dll
 | |
| 
 | |
| 12/02/10 4.31.00 pre 8 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Added getDriverInfoW and getRecordDriverInfoW API functions to get the
 | |
|   names of devices as wide char strings. Only supported on Windows.
 | |
| + Update ogg vorbis to latest public branch. (ogg 1.1.4, vorbis 1.2.3)
 | |
| + FSBankLibEx - Added c# wrapper.
 | |
| 
 | |
| - Fix Sound::getOpenstate returning invalid handle error if calling 
 | |
|   Channel::stop after Channel::setPosition with FMOD_NONBLOCKING streams.
 | |
| - Removed geometryThreadPeriod from FMOD_ADVANCEDSETTINGS.
 | |
| * - Fix mixer slowdown from 16bit float optimization.  Now only enabled on 
 | |
|     Xbox 360 where there is no slowdown.  Issue introduced in 4.29.00 pre 10.
 | |
| - fix reverb dry mix being reset to 0db when voice was de-virtualized.
 | |
| 
 | |
| - PS3 - Fixed distorted sound when disconnecting, then reconnecting the DSP 
 | |
|         head output of a channel, when only that one channel is playing.
 | |
| - PS3 - Fixed hang when calling getWaveData or getSpectrum.
 | |
| - PS3 - Fixed getWaveData/getSpectrum returning values for empty channelgroups
 | |
|         in some cases.
 | |
| - PS3 - Fixed corruption in some cases when a channel is re-used to play a
 | |
|         different sound (introduced in 4.31.00 pre 1).
 | |
| - Win - Fixed crash when dsp buffer size is smaller than the amount WASAPI needs.
 | |
| 
 | |
| FSBankEx - Fix mp3 encoder truncating short sounds.
 | |
| FSBankEx - Fix mp3 encoder producing data with some random bytes in it, can 
 | |
|            cause errors or stalls during decode phase.
 | |
| 
 | |
| 22/01/10 4.31.00 pre 7 - Development internal update
 | |
| ---------------------------------------------------
 | |
| + Added trigger delay property for sound definition
 | |
| 
 | |
| - Fixed channel position not updating on final loop if setLoopCount is set for
 | |
|   sounds created on PS3 and also sounds created with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed device list changed callback being called from systems that have not
 | |
|   called System::setCallback.
 | |
| 
 | |
| - Win - Fixed device enumeration, device names are now encoded as multibyte.
 | |
| - Win - Fixed rare crash in WASAPI output mode if enumerating while plugging a
 | |
|         device in.
 | |
| - PS3 - Fixed oneshot reversed sounds not playing correctly.
 | |
| - PS3 - Fixed issue where pausing a channelgroup may silence all sounds.
 | |
| 
 | |
| - Event API - Fix rare error code FMOD_ERR_EVENT_MISTMATCH being returned from
 | |
|   Event::getState when the event is using a non blocking preloaded sound.
 | |
| - Event API - Fixed MusicSystem::promptCue behaviour (broken in 4.27.00)
 | |
| - Event API - Removed stall in EventSystem::load if other sound bank operations
 | |
|               were happening in the FMOD_NONBLOCKING thread.
 | |
| 
 | |
| - FSBankEx - Fix mp3 encoded FSB files producing corrupted data if cache data 
 | |
|   was used.  Alternate fix = delete .fsbcache folder and rebuild FSB.
 | |
|   Bug introduced 4.31.00 pre 5.
 | |
| 
 | |
| * PS3 - Now built with SDK 310.001
 | |
| * iPhone - setDSPBufferSize now permits buffers lower than the hardware
 | |
|            recommended size for lower latency, use with caution and check TTY
 | |
|            log output for warnings.
 | |
| * .FEV file format updated! FMOD Designer 4.31.00 pre 7 requires FMOD version
 | |
|   4.31.00 pre 7, 4.29.07, 4.28.07, 4.26.17, 4.24.30 , 4.22.39 or higher
 | |
| 
 | |
| 08/01/10 4.31.00 pre 6 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Added maxSpectrumWaveDataBuffers property to FMOD_ADVANCEDSETTINGS which will
 | |
|   cause FMOD to allocate buffers for getWaveData and getSpectrum from a memory
 | |
|   pool to prevent memory fragmentation.
 | |
| 
 | |
| + Removed static data for spectrum analysis reducing memory footprint by 160kb
 | |
| 
 | |
| - Fix crash if passing null to ptr2/len2 in Sound::lock in wraparound case.
 | |
| - Fixed issues with recording when combined with device removal, could cause a
 | |
|   crash or unexpected behavior. Unplugged microphones will now auto stop.
 | |
| - Fixed wave writer output mode producing invalid wav files when format is PCM8.
 | |
| 
 | |
| - Event API - Fix small memory leak with preloaded stream banks that were loaded 
 | |
|   with FMOD_NONBLOCKING.
 | |
| 
 | |
| - PS3 - Fixed bug where trying to record through secondary microphones actually 
 | |
|         recorded through primary microphone.
 | |
| 
 | |
| 18/12/09 4.31.00 pre 5 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| - Fixed special case with sound groups where muted channels (thanks to 
 | |
|   FMOD_SOUNDGROUP_BEHAVIOR_MUTE) were not being de-prioritized, causing equally
 | |
|   important sounds that should be audible to remain virtual when they should
 | |
|   have been audible.
 | |
| - Fixed crash when trying to play CELT format sounds on 64 bit platforms.
 | |
| - Fixed device list changed callbacks being squashed by calls to getNumDrivers.
 | |
| - Fixed MP3 encoded FSB files not seeking to block aligned boundaries correctly
 | |
|   which theoretically could cause 1 in a million crash depending on data.
 | |
|   FSB Data must be rebuilt with FSBankEx or FMOD Designer.
 | |
| 
 | |
| - Event API - Fixed incorrect FMOD_ERR_UNSUPPORTED in EventSystem::load() if a
 | |
|               project with music data is already loaded.
 | |
| 
 | |
| - iPhone - Fixed lazy load symbol crash with OS 2.2.1.
 | |
| 
 | |
| 10/12/09 4.31.00 pre 4 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| - Mono streams inside FSB files that have other higher channel count streams in
 | |
|   them are now copied into all channels rather than just channel 0. This fixes
 | |
|   a bug where mono streams would only come out of the left speaker, introduced
 | |
|   in 4.29.00 pre 6. A side effect is that mono streams can sound louder.
 | |
| 
 | |
| - PS2 - Fix rare case where left/right channels would get out of sync on stereo
 | |
|         streams.
 | |
| 
 | |
| - Event API - Cancel pending sounds when the parameter moves away so sounds
 | |
|               with spawning and "Wait for previous" don't play too many times
 | |
| 
 | |
| 03/12/09 4.31.00 pre 3 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Changed 'memoryused_array' parameter of getMemoryInfo() API into struct for better readability
 | |
| 
 | |
| + iPhone - Significantly improved performance of mixing and resampling for iPhone
 | |
|            3GS and iPod Touch 3rd Gen. Small performance improvments for other
 | |
|            iPhone and iPod models.
 | |
| 
 | |
| + FSBankLib - Mac - Added support for CELT encoding.
 | |
| 
 | |
| + Changed FMOD_EVENT_ERR_ON_DISKACCESS behaviour for streams. Now FMOD_ERR_DISK_UNWANTED will only
 | |
|   be returned if the stream instance isn't preloaded.
 | |
| 
 | |
| - Sound::release stall removed.  It will stall if you havent stopped the sound
 | |
|   before releasing it, as it has to wait for the mixer thread to finish with it.
 | |
|   FMOD_OPENSTATE_STREAMING can be used to poll for if the mixer is still using
 | |
|   it or not.
 | |
| - Fixed ChannelGroup::setPaused(false) incorrectly unpausing channels that were
 | |
|   paused via FMOD_DELAYTYPE_DSPCLOCK_PAUSE
 | |
| - Fixed crash when changing soundgroup behaviour from mute to another behaviour
 | |
|   with channels playing
 | |
| 
 | |
| - Win64 - Fixed invalid FMOD::Sound pointer being passed to SOUNDEF_CREATE event callbacks
 | |
| - Win32 - OpenAL - Fixed hang during driver enumeration if a device fails to open.
 | |
| - Mac - Fixed problem with opening released DMG installer package on OS X 10.3.9.
 | |
| - Wii - Fixed rare problem where controller speaker will still be in on state, if
 | |
|         it is repeatedly turned on and off, and the last command was to turn it off.
 | |
| - PSP - Fixed constant glitching when playing at3 streams at certain decodebuffersizes.
 | |
| - Xbox 360 - Fixed recording fucntions returning FMOD_ERR_UNSUPPORTED. Introduced in
 | |
|              4.31.00 pre 1
 | |
| 
 | |
| - FSBankLib - Fixed FSBs created on PPC Mac causing mismatch errors when loaded. 
 | |
| - FSBankLib - Fixed C header defines being all underscores on Mac.
 | |
| 
 | |
| * Sound::getOpenState now now returns FMOD_OPENSTATE_STREAMING on static samples
 | |
|   if they are playing, not just streams.
 | |
| 
 | |
| * Event API - Changed music sound priority to high (i.e. 0)
 | |
| 
 | |
| 12/11/09 4.31.00 pre 2 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Mac - added support for x86_64 architecture to the universal binary.
 | |
| 
 | |
| + Improved stereo and 3D speaker panning
 | |
| 
 | |
| - Fixed problem where if using FMOD_HARDWARE and streams smaller than the decode 
 | |
|   buffer size,looping sounds would play silence then loop the first time round.
 | |
| 
 | |
| - Fixed very rare issue where very small sounds (less than 1152 samples), encoded
 | |
|   as mp3 fsb, may hang when played with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| 
 | |
| - PS3 - Fixed rare issue with playing certain small mp3 samples where sound
 | |
|         would be garbled.
 | |
| 
 | |
| Event API - if using hardware sounds (ie PS2/PSP) fixed small streams playing a 
 | |
|             tiny bit of the sound again if the was supposed to be one shot.
 | |
| 
 | |
| 05/11/09 4.31.00 pre 1 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Added geometryMaxFadeTime property to FMOD_ADVANCEDSETTINGS for controlling
 | |
|   the amount of time it takes for a channel to fade to new new levels when the
 | |
|   amount of occlusion changes.
 | |
| + PS3 - Added support for snapshots of the peak volume for each DSP node,
 | |
| 	per channel in Profiler.
 | |
| + Added load_from_memory example to the designerapi examples
 | |
| + Added support for new CELT codec (http://www.celt-codec.org/). FSB's can be
 | |
|   built encoded in this new codec.
 | |
| 
 | |
| !- Fixed rare timing based crash on the new blocking Channel::setPosition 
 | |
|    behaviour.  Introduced 4.29.00 pre 6 (development branch).
 | |
| - Fixed short streaming sounds looping forever under certain circumstances.
 | |
| - Fixed tags for WMA files sometimes being converted to single byte when they
 | |
|   have multibyte content.
 | |
| - Fixed netstreams hanging on System::createSound.
 | |
| - Adjusted codec search priority order so MPEG takes precedence over playlist.
 | |
| 
 | |
| !- Xbox 360 - Fixed assert with XMA codecs complaining about memory address - 
 | |
|    Bug introduced in last version 4.26.10
 | |
| - Xbox 360 - Fixed linker error against XMic functions for people still using 
 | |
|   old XDKs.
 | |
| - Wii - Fixed extremely rare issue where sometimes the Wii will just start
 | |
|         producing distortion type noise.
 | |
| - Linux64 - Fixed no sound being output due to 16bit float optimization bug
 | |
|             introduced in 4.29.00 pre 10.
 | |
| 
 | |
| 21/10/09 4.29.00 - Development branch release
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added 3d reverb and music reverb demonstration program.
 | |
| 
 | |
| + PS3 - Enabled 16bit floats for internal DSP matrix storage on ps3.
 | |
| 
 | |
| + Event API - Added EventCategory::getParentCategory()
 | |
| + Event API - Added FMOD_ERR_MUSIC_NOTFOUND error code when requested music
 | |
|               system entities cannot be found.
 | |
| 
 | |
| + Profiler - Added ability to see snapshots of the peak volume for each DSP node,
 | |
|              per channel.
 | |
| 
 | |
| - Fixed wave writer non-realtime output mode producing incorrect length files.
 | |
| - Fixed hang in Sound::release if using new setSubSoundSentence feature from
 | |
|   4.29.00 pre 10.
 | |
| - Fixed readData not returning the correct number of bytes read with FSBs if the
 | |
|   last read chunk results in hitting the end-of-file. 
 | |
| - Fixed output modes not null-terminating device name strings if the passed in
 | |
|   buffer length is shorter than the actual device name length.
 | |
| - Fixed sound corruption when using neural DTS surround downmixer.
 | |
| 
 | |
| - PS3 - Fixed channels that have their reverb turned off, still being mixed into
 | |
|         reverb unit when they didn't need to be since there would be nothing to mix.
 | |
|         This was causing excessive dsp usage on the ps3.
 | |
| - Linux/Linux64/Solaris - Fixed no sound being output due to 16bit float optimization
 | |
|                           bug introduced in 4.29.00 pre 10.
 | |
| 
 | |
| - Event API - Fixed crossfades to empty themes making the next theme to play
 | |
|               go silent.
 | |
| - Event API - Fixed crash when calling EventSystem::getEventBySystemID() and
 | |
|               EventCategory::getEventByIndex() functions with invalid indices.
 | |
| - Event API - Fixed event system get functions returning invalid data when indices
 | |
|               are negative.
 | |
| 
 | |
| - Profiler - Spread out DSP input connections so any duplicates are more visible.  
 | |
| - Profiler - Fixed standalone tool not loading on some machines due to CRT
 | |
|              conflicts.
 | |
| 
 | |
| * Xbox 360 - If no memory pool or memory callback system is passed to FMOD, 
 | |
|   FMOD will now use less memory and avoid excessive calls to XPhysicalAlloc 
 | |
|   (which has larger page sizes).  It is only significant if you did not pass
 | |
|   a memory block to fmod or use the memory callback override system.
 | |
| * PS3 - Now built with SDK 300.001
 | |
| * iPhone - Now built with SDK 3.1.2
 | |
| 
 | |
| 01/10/09 4.29.00 pre 10 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Reduce overall memory usage around 100-200kb by using 16bit floats for 
 | |
|   internal DSP matrix storage (not implemented on PS3 yet).
 | |
| 
 | |
| - Fixed Sound::setSubSoundSentence causing block in System::playSound even when 
 | |
|   using FMOD_NONBLOCKING flag.
 | |
| - Remove potential millisecond stall in Sound::release
 | |
| - Remove potential millisecond stall when Channel::addDSP was used and a voice
 | |
|   swapped between virtual and real and vice versa.
 | |
| - Renamed internal ogg functions to prevent multiply defined symbol errors when
 | |
|   statically linking to FMOD and ogg libraries.
 | |
| - Stopped reverb channel properties for instances other than #0 applying to
 | |
|   3d reverbs
 | |
| 
 | |
| - PSP - Fixed dsp bufferlength being hardcoded to 256 samples causing crackles
 | |
|         when using the software mixer sometimes. It is now set to the default
 | |
|         of 1024.
 | |
| - PS3 - Fixed *extremely* rare bug where a burst of static is sometimes heard
 | |
|         when playing an mpeg stream.
 | |
| - PS2/PSP/Wii - Fix 3D Pan Level not affecting attenuation and doppler on 
 | |
|   hardware voices.
 | |
| 
 | |
| - Event API - Fixed problem with sounddef respawning after fadeout is complete
 | |
| - Event API - PS2/PSP/Wii - Fix 3d Pan Level having no effect.
 | |
| - Event API - Fixed false detection of music data when loading projects since
 | |
|               reverb and volume settings were added in 4.29.00 pre 7
 | |
| 
 | |
| 
 | |
| 11/09/09 4.29.00 pre 9 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fix memory leak with Channel::setSpeakerLevels and virtual voices.
 | |
| 
 | |
| - Xbox 360 - Fix very small intermittent click on stereo XMA data when looping.
 | |
| 
 | |
| - PSP - Fixed hang when releasing a stream while the disc is ejected.
 | |
| - PSP - Fixed setPaused not working on hardware 3D sound when its velocity is
 | |
|         updated.
 | |
| 
 | |
| * iPhone - changed route override behavior so it only affects receiver vs
 | |
|            speaker choices. 
 | |
| * iPhone - now built with SDK 3.1.
 | |
| 
 | |
| 03/09/09 4.29.00 pre 8 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed rare hang when loading certain MIDI files.
 | |
| 
 | |
| - Xbox 360 - Fix FMOD releasing XAudio2 handle if user passed in their own.
 | |
| - Xbox 360 - Fix multichannel XMA seeking slowly.
 | |
| 
 | |
| - PSP - Fixed occasional ticking when playing hardware 3d sounds.
 | |
| 
 | |
| 
 | |
| 27/08/09 4.29.00 pre 7 - Development internal update
 | |
| ----------------------------------------------------
 | |
| + Event API - added MusicSystem::setReverbProperties and getReverbProperties to
 | |
|               change the wet and dry levels relative to those set in FMOD
 | |
|               Designer.
 | |
| 
 | |
| - the 'Direct' (dry) mix in reverb channel properties is now applied to all
 | |
|   reverb instances when using setReverbProperties on events or channels to
 | |
|   prevent the dry level from changing when multiple instances are used.
 | |
| 
 | |
| - Event API - fixed Event::getReverbProperties() only returning properties of
 | |
|               reverb channel instance #0.
 | |
| 
 | |
| * Event API - MusicSystem wet and dry levels default to 0dB if these have not
 | |
|               been set in FMOD Designer.
 | |
| 
 | |
| 19/08/09 4.29.00 pre 6 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added mono sound support to '3D Speaker spread', or Channel::set3DSpeakerSpread.
 | |
|   Now a mono sound can be spread around the speakers a bit rather than pinpointing 
 | |
|   a certain speaker location.
 | |
| 
 | |
| + iPhone - Added FMOD_IPHONE_SESSIONCATEGORY_PLAYANDRECORD to extra driver data
 | |
|            allowing FMOD to be initialized ready for recording, which removes the
 | |
|            short delay when recordStart is called.
 | |
| 
 | |
| - Xbox360 - Fixed rare seektable corruption if loading the same FSB non-blocking
 | |
|             and in the main thread at once.
 | |
| 
 | |
| - Event API - Fix music system leaking memory if disk is ejected.
 | |
| 
 | |
| * Streams using FMOD_NONBLOCKING now seek/reflush in FMOD_NONBLOCKING thread
 | |
|   instead of the stream decode thread.  This has the advantage of not stalling 
 | |
|   other streams that are playing while the seeking stream flushes.  Basically
 | |
|   it improves sound stability = less stuttering while seeking.
 | |
| * Mono streams inside FSB files that have other higher channel count streams in
 | |
|   them now pan to center speaker rather than being copied into all speakers 
 | |
|   (and therefore being too loud).
 | |
| * 3D Reverb zones now interpolate correctly, before they were getting too loud
 | |
|   in crossover points.
 | |
| 
 | |
| 13/08/09 4.29.00 pre 5 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - added support for setDSPBufferSize.
 | |
| + iPhone - improved performance with 3GS.
 | |
| + Wii - Added new function FMOD_Channel_SetControllerSpeakerSubchannel to allow
 | |
|         only a particular channel of a stereo or greater sound to be played out
 | |
|         of the WiiMote.
 | |
| 
 | |
| - Fixed memory usage reporting of DSP effects
 | |
| - Fixed hang in sound release with net streams if the network was disconnected.
 | |
| 
 | |
| - Wii - Fixed rare case where starving flag is not being set when disk is ejected
 | |
|         right when a seek happens.
 | |
| - iPhone - fixed potential sound corruption problems when under heavy DSP load.
 | |
| - iPhone - removed deprecated audio sessions.
 | |
| - PSP - Fixed 3D doppler not working on hardware sounds.
 | |
| - linux/linux64 - fixed potential crash with OSS output if machine has more
 | |
|                   than 32 drivers.
 | |
| 
 | |
| - Event API - Calling freeEventData on an event from its own event callback now
 | |
|               returns an error instead of crashing.
 | |
| 
 | |
| 06/08/09 4.29.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added parameter ramping for DSP Lowpass and DSP Highpass filters to avoid
 | |
|   clicking when parameters are suddenly changed.
 | |
| 
 | |
| - fixed race condition when loading an FSB as blocking and non-blocking at the
 | |
|   same time.
 | |
| - fixed memory leak when switching output modes after enumerating the driver list.
 | |
| - S3M - Fixed global volume setting being ignored causing distortion on some files.
 | |
| - Fixed popping/clicking when cutoff for FMOD_DSP_TYPE_LOWPASS and
 | |
|   FMOD_DSP_TYPE_HIGHPASS is set past the Nyquist frequency. 
 | |
| 
 | |
| - 360 - fix FMOD memory allocation callbacks not passing FMOD_MEMORY_XBOX360_PHYSICAL
 | |
|         when it should have causing an assert in the XMA decoder.
 | |
| - Wii - Fixed paused sounds not being muted on WiiMote when "muteremotespeakerifnosound"
 | |
|         is set.
 | |
| - Wii/PS2/PSP - For non-mono sounds, added clamping to Sound::lock to avoid crashes
 | |
|                 when more than 16384 bytes is locked or locking past the end of a 
 | |
|                 sound.
 | |
| - Wii/PS2/PSP - For non-mono sounds, fixed Channel::set/getPosition setting/returning
 | |
|                 the wrong value when FMOD_TIMEUNIT_PCMBYTES is used.
 | |
| - C# - Fixed memory leak with Sound.getTag().
 | |
| - C# - Fixed compile error with fmod_memoryinfo.cs.
 | |
| 
 | |
| - Event API - Fixed music system not handling preloaded FSBs properly
 | |
| 
 | |
| * PS3 - Now built with SDK 280.001
 | |
| 
 | |
| 27/07/09 4.29.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added DLS cache for MIDI files, reduces overall memory when multiple MIDIs are
 | |
|   loaded with the same DLS file. Also improves load times by avoiding repeated
 | |
|   parsing of DLS. 
 | |
| 
 | |
| + iPhone - Now compiled as a fat library to improve performance on iPhone 3GS.
 | |
| 
 | |
| - fix oscillator + reverb support crackling when oscillator had to resample.
 | |
| - fix oscillator + Channel::stop crash.
 | |
| 
 | |
| - Win32 - Fixed issues with COM cleanup when already initialized as MTA.
 | |
| - Xbox 360 - Fix old multichannel XMA FSB detection to avoid 100% repro XMA hang.
 | |
| - Xbox 360 - Fix click in XMA loops due to new XMA decoder.
 | |
| 
 | |
| - FSBankEx - fix multichannel mp2 encode producing error.
 | |
| 
 | |
| - Event API - Fixed a rare bug where sometimes not all streams would be loaded
 | |
|               for events or groups retrieved with FMOD_EVENT_NONBLOCKING
 | |
| - Event API - Fixed parameter keyoff behaviour bug introduced in 4.27.00 pre 11
 | |
| 
 | |
| 16/07/09 4.29.00 pre 2 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed buzzing sound coming from reverb when there are no active channels introduced in 4.27.01
 | |
| - Fixed rare crash releasing samples but not streams while playing.
 | |
| - Fixed tremolo phase from reseting when controlled by an event parameter.
 | |
| - Tremolo effect no longer resets the LFO when the phase parameter is set to 
 | |
|   zero. Set the phase to one to reset the LFO to the lowest point in its
 | |
|   cycle.
 | |
| 
 | |
| FSBankEx - When encoding multichannel mp3 encoded FSB, using 'single 
 | |
|            interleaved FSB', fixed bad length calc causing channel swapping on
 | |
|            playback side when seeking.
 | |
| 
 | |
| - PS3 - Fixed distortion in DSP Delay filter if FMOD_DSP_DELAY_MAXDELAY was set
 | |
|         to a value too near FMOD_DSP_DELAY_CH*.
 | |
| - PS3 - Fixed garbled sound when playing a multichannel mp3 fsb stream that was
 | |
|         not encoded as stereo pairs.
 | |
| - PS3 - Fixed crash when playing IT files that use the IT Echo effect.
 | |
| 
 | |
| - Event API - When getting event instances, each parameter is now set to the
 | |
|               value from the INFO_ONLY event rather than the minimum value.
 | |
|               Use FMOD_EVENT_INIT_RESETPARAMSTOMINIMUM for the old behaviour.
 | |
| 
 | |
| * Memory_GetStats now has a 'blocking' parameter which allows the user to get
 | |
|   the memory usage quickly, or accurately.
 | |
| 
 | |
| 09/07/09 4.29.00 pre 1 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| - Fixed unicode paths incorrectly being identified as CD drive letters.
 | |
| - Fixed rare crashes in non-main FMOD threads after System::close is called
 | |
|   if logging is enabled
 | |
| 
 | |
| - FSBankEx - Fixed cached file being used even when 
 | |
|              FSBANK_BUILD_USEOLDOPTIMIZEDRATE was changed.
 | |
| 
 | |
| - Xbox 360 - Fixed buffering issue when applying a dsp filter which passes the
 | |
|              buffer straight through on streaming sounds.
 | |
| - iPhone - Fixed crash when using the silent switch with some firmware versions.
 | |
| - iPhone - Reduced size of reduced lib by ~400KB. 
 | |
| 
 | |
| - Fixed divide by zero when calling Channel::setSpeakerLevels on hardware sounds
 | |
|   with levels set to 0.0f.
 | |
| 
 | |
| 02/07/09 4.27.00 - Development branch release
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added ignoresetfilesystem to FMOD_CREATESOUNDEXINFO structure.  Useful for 
 | |
|   specific cases where you don't want to use your own file system but want to 
 | |
|   use fmod's file system (ie net streaming).
 | |
| + Improved performance of FMOD Delay DSP effect for all platforms except PS3.
 | |
| 
 | |
| + Win32 - More efficient semaphore implementation to reduce OS memory overhead.
 | |
| 
 | |
| + Event API - Music themes are now limited to one instance so rapid repeated
 | |
|               triggering doesn't cause them to "stack up"
 | |
| + Event API - Added FMOD_EVENT_SUPPORT_XXX defines in fmod_settings.h. Use
 | |
|               these to disable functionality and save memory.
 | |
| + Event API - Reduced size of FEV in memory.
 | |
| 
 | |
| - Fix volume 0 sounds with FMOD_INIT_VOL0_BECOMES_VIRTUAL sometimes never 
 | |
|   updating/stopping if there were no real channels left and a System::update 
 | |
|   was not called.
 | |
| - Fixed seeking with MP3 sometimes being slightly inaccurate. 
 | |
| 
 | |
| - Linux - Fixed FLAC plugin not loading.
 | |
| 
 | |
| 25/06/09 4.27.00 pre 12 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + PS3 - MP3 decoder switched to Sony mp3 decoder. This gives a performance
 | |
|         improvement as well as allowing you to use mp3 on the ps3 without the
 | |
|         need for a seperate mp3 license. MP2 is no longer supported on the ps3.
 | |
| 	Note: You will need to rebuild your mp3 banks.
 | |
| + Event API - Implemented network tweaking for event user properties (only int
 | |
|               and float)
 | |
| + Event API - Added a hash to fev/fsb files for more reliable mismatch errors 
 | |
|               reporting
 | |
| 
 | |
| - Fixed very rare stream crash when stream is ending and release is called at
 | |
|   the same time.
 | |
| 
 | |
| - Xbox 360 - Fixed seeking hang with new XMA decoder with certain combinations 
 | |
|              of files and seek positions.
 | |
| - iPhone - Fixed crash with devices running OS 2.0.
 | |
| 
 | |
| - Event API - Fixed "Wait for previous" behaviour with hardware waveforms
 | |
| 
 | |
| * getMemoryInfo functions now report ogg vorbis memory usage correctly.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.25.12 requires FMOD version
 | |
|   4.25.12, 4.24.12, 4.22.21, 4.20.28, 4.18.36 or higher
 | |
| 
 | |
| 19/06/09 4.27.00 pre 11 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + iPhone - Added recordtodisk example.
 | |
| + iPhone - Added new output member to extra driver data that specifies whether
 | |
|            iPod (external) audio is playing or not.
 | |
| 
 | |
| + Event API - Added FMOD_EVENTPROPERTY_WILL_TERMINATE.
 | |
| + Event API - Added sound definition pitch randomisation modes for
 | |
|               recalculating pitch either every spawn (default), when triggered
 | |
|               by a parameter or only once when an event is started.
 | |
|  
 | |
| - Fixed VSTs using the 2.4 spec not loading.
 | |
| - Fixed unicode support for C# createSound / createStream.
 | |
| 
 | |
| - iPhone - Fixed issues regarding the removal of input devices while recording,
 | |
|            now recording will pause until the device is replaced.
 | |
| - iPhone - Fixed potential crash after System::release or when using multiple
 | |
|            system objects.
 | |
| - Xbox 360 - Fix .xma files with short lengths not looping properly.  Note .fsb
 | |
|              does not have this issue.
 | |
| - Xbox 360 - update to previous version fix for multichannel XMA playing static,
 | |
|              there was the occasional rare pop still.
 | |
| - Xbox 360 - fix old FSB basicheader XMA encoded files crashing runtime. Issue 
 | |
|              introduced 4.27.00 pre 7.
 | |
| - Mac - Fixed directory based bundles not working as plugins.
 | |
| - Mac - Fixed FMOD_SPEAKERMODE_RAW not outputting in channel order.
 | |
| - Wii - Fixed syncpoints in GCADPCM FSB files with both stereo and mono sounds.
 | |
| 
 | |
| * FSB codec.  If FMOD_CREATESOUNDEXINFO::inclusionlist and 
 | |
|   FMOD_CREATESOUNDEXINFO::numsubsounds are used together, this will trigger a 
 | |
|   special mode where subsounds are shuffled down to save memory.  There will be 
 | |
|   no gaps, ie no null subsounds.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.25.11 requires FMOD version
 | |
|   4.25.11, 4.24.11, 4.22.20, 4.20.27, 4.18.35 or higher
 | |
| 
 | |
| 12/06/09 4.27.00 pre 10 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Add FMOD_MEMORY_STREAM_DECODE flag for memory alloc callback.
 | |
| + FSB codec memory usage reduced if using loading the same FSB multiple times.
 | |
| 
 | |
| - Fixed crash/inconsistency in System::createSound when using FMOD_NONBLOCKING
 | |
|   in conjunction with FMOD_CREATESOUNDEXINFO members inclusionlist, dlsname or
 | |
|   encryptionkey.
 | |
| 
 | |
| - Xbox 360 - Fix 5.1 .xma files swapping channels randomly if they were 
 | |
|   encoded with non 32kb block sizes.
 | |
| - Xbox 360 - Fix multichannel XMA (either .xma or .fsb) playing static 
 | |
|   sometimes.  Bug introduced 4.27.00 pre 6.
 | |
| - iPhone - Fixed recordStart incorrectly reporting hardware is not available if
 | |
|            the only method of audio input is via a dock accessory. 
 | |
| 
 | |
| - Event API - Fixed EventProject::loadSampleData sometimes leaving eventgroups
 | |
|               in an error state until the load succeeds. loadSampleData now
 | |
|               resets eventgroups' state at the start of the load operation.
 | |
| - Event API - Fixed EventParameter::keyOff() being ignored between two
 | |
|               EventSystem::update() calls when no time has elapsed. 
 | |
| - Event API - Fixed sound instances with loop count > -1 causing other sounds
 | |
|               that use the same streaming wavebank to finish early
 | |
| - Event API - Fixed a music system memory leak when empty segments are present
 | |
| 
 | |
| - Profiler - Fixed profiler not disconnecting when Xbox360 reboots.
 | |
| 
 | |
| * Changed FMOD_MEMORY_STREAMBUFFER to FMOD_MEMORY_STREAM_FILE
 | |
| 
 | |
| * iPhone - now built with SDK 3.0.
 | |
| 
 | |
| * Event API - It is now forbidden to have the same FEV loaded more than once
 | |
|               at the same time. If you try to load a project that's already
 | |
|               loaded you will now receive FMOD_ERR_EVENT_ALREADY_LOADED.
 | |
| 
 | |
| 04/06/09 4.27.00 pre 9 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added tutorial to documentation. "Compression quality, multichannel and 
 | |
|   looping with lossy audio formats"
 | |
| 
 | |
| - Fix Memory leak if FMOD_ERR_MEMORY_CANTPOINT is returned from createSound.
 | |
| 
 | |
| - FSBankEx - Fixed samplerate optimisation over-estimating samplerates for
 | |
|              short sounds.
 | |
| - FSBankEx - Dissalow samplerate optimisation + 'small headers' mode.
 | |
| - FSBankEx - Allow cancel button to cancel during initial scan stage.
 | |
| 
 | |
| - PSP - Fixed inaccuracy in Channel::getPosition for vag sounds causing
 | |
|         stutters/distortion and eventual droupouts when streaming vag data.
 | |
| 
 | |
| - Event API - Fixed rare hang when FMOD_EVENT_NONBLOCKING is used
 | |
| - Event API - Fixed events sometimes reporting FMOD_EVENT_STATE_LOADING forever
 | |
|               when using EventProject::loadSampleData
 | |
| - Event API - Fixed memory leak when using EventProject::loadSampleData
 | |
| 
 | |
| 29/05/09 4.27.00 pre 8 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fix crash if calling Channel::stop from a Channel end callback.
 | |
| 
 | |
| - Xbox 360 - Fix init/close cycle leaking XMA contexts.
 | |
| 
 | |
| - Event API - Fixed getEvent always reporting FMOD_ERR_FILE_DISKEJECTED when
 | |
|               trying to reload a non-streaming event (which has already been
 | |
|               properly cleaned up after the disk eject).
 | |
| 
 | |
| 
 | |
| 21/05/09 4.27.00 pre 7 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Event API - Added EventSystem::getMusicCategory()
 | |
| 
 | |
| - Fix hang in vorbis code, trying to open ogg video files.
 | |
| 
 | |
| - Xbox 360 - fix XMA FSB support crashing when files were built with 'basicheaders'.
 | |
| !- PS3 - SPU Mixer partial rewrite to make it more like the other cross platform
 | |
|          mixer should eliminate ps3 only mixer issues.
 | |
| 
 | |
| - Event API - Fixed rare case of streamed hardware wavebanks referenced by both
 | |
|               2D and 3D events sometimes not loading.
 | |
| 
 | |
| * Win32/64 - add ability to disable EAX driver calls, just by setting 
 | |
|   setMinMaxHardwareChannels max3d parameter 0.  This avoids bad drivers corrupting
 | |
|   memory or simple crashing which has been experienced (ie realtek)
 | |
| 
 | |
| 15/05/09 4.27.00 pre 6 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| !+ Xbox 360 - XMA support now goes through new XMA HAL decoder, which should 
 | |
|               remove XMA timeouts and hangs introduced in recent XDK revisions.
 | |
| 
 | |
| - Fix System::playDSP returning FMOD_ERR_INVALID_PARAM.
 | |
| - Fixed System::createSound() with FMOD_NONBLOCKING to use the stream buffer
 | |
|   size that was set at the time the call was made.
 | |
| 
 | |
| - Event API - Fixed events with fadein playing at full volume until the next
 | |
|               eventsystem update if they were started paused and then unpaused.
 | |
| - Event API - Made Event::setPropertyByIndex return FMOD_ERR_UNSUPPORTED for
 | |
|               attempts to set fadein or fadeout when an event is playing.
 | |
| - Event API - Fixed a hang in ChannelGroup::addGroup if the child group has
 | |
|               no DSP and contains more than one channel.
 | |
| - Event API - Fixed music system sometimes returning FMOD_ERR_INVALID_PARAM
 | |
|               from EventSystem::update.
 | |
| - Event API - Fixed rare deadlock when FMOD_EVENT_NONBLOCKING is used
 | |
| - Event API - Event::getChannelGroup no longer fails with FMOD_ERR_DSP_NOTFOUND
 | |
|               if the event's channelgroup has no DSP unit.
 | |
| - Event API - Fixed spurious FMOD_ERR_CHANNEL_STOLEN from EventSystem::update
 | |
| - Event API - Fixed network tweaking notification
 | |
| 
 | |
| !- PS3 - SPU Mixer partial rewrite to make it more like the other cross platform
 | |
|          mixer should eliminate ps3 only mixer issues.
 | |
| - PS3 - Fixed reverse playback not working properly.
 | |
| - PS3 - Fixed rare case where volume doubles up in certain dsp tree
 | |
|         configurations (introduced in 4.27.00 pre 1)
 | |
| - PS3 - Fixed rare case where sometimes certain dsp nodes are inaudible.
 | |
|         (introduced in 4.27.00 pre 1)
 | |
| 
 | |
| - FSBankEx - Fixed cache not rebuilding when rate optimisation changes.
 | |
| 
 | |
| * Channel::setPosition now returns FMOD_ERR_INVALID_POSITION rather than
 | |
|   FMOD_ERR_INVALID_PARAM if the position is invalid 
 | |
| 
 | |
| * Win32 - Remove Realtek HD 'hardware' support, driver bugs in realtek 
 | |
|   drivers caused corruption.
 | |
| * Xbox 360 - XMA1 support removed.  Data has to be XMA2 format now.
 | |
| 
 | |
| 
 | |
| 
 | |
| 4/05/09 4.27.00 pre 5 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added FMOD_DSP_TYPE_TREMOLO effect which produces tremolo, chopper and
 | |
|   auto-pan effects.
 | |
| 
 | |
| !- Fixed sounds suddenly looping when they shouldn't be.  Bug introduced 4.27.00 pre 3.
 | |
| - Fixed Channel::getPosition with FMOD_TIMEUNIT_PCMBYTES returning the wrong value
 | |
|   when used on a sound created with FMOD_CREATECOMRESSEDSAMPLE (or any sound on PS3).
 | |
| 
 | |
| * FMOD_EVENTPROPERTY_WII_CONTROLLERSPEAKER changed to
 | |
|   FMOD_EVENTPROPERTY_WII_CONTROLLERSPEAKERS. You now pass in an 
 | |
|   FMOD_WII_CONTROLLER_* flag (or combination) to setPropertyByIndex rather than
 | |
|   just the WiiMote index.
 | |
| 
 | |
| * PS3 - Now built with SDK 270.001
 | |
| * Sound::setLoopCount no longer changes the loop mode.  Use Sound::setMode to do this.
 | |
| 
 | |
| 30/04/09 4.27.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - Added offlinedecoding example.
 | |
| + Win32/Win64 - added manual decoding example.
 | |
| 
 | |
| + Event API - Added FMOD_EVENT_INIT_LOWERCASE_FILENAMES 
 | |
| + Event API - Added support for early link transitions on bars or beats
 | |
| 
 | |
| + Event Net API - Added C wrapper. C users use fmod_event_net.h, C++ users use
 | |
|   fmod_event_net.hpp and fmod_event_net.h.
 | |
| 
 | |
| - Fix new streams that play causing other, already playing streams to stutter.
 | |
| !- Fix hang in Sound::release if sound didnt play, introduced in 4.25.03.
 | |
| - Fixed function signatures for C interface in docs
 | |
| 
 | |
| - iPhone - Fixed crash when recording on 1st Gen iPhone.
 | |
| 
 | |
| - Event API - Clarified Event::setPaused and Event::setMute documentation
 | |
| - Event API - c# - "value" argument in getProperty/getPropertyByIndex change
 | |
|                    from type "ref IntPtr" to correct "IntPtr" type.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.25.04 requires FMOD version 4.25.04,
 | |
|   4.24.04, 4.22.13, 4.20.20, 4.18.28 or higher
 | |
| 
 | |
| * Sound::readData is now not-threadsafe.  This was done on purpose to avoid the
 | |
|   skipping/stutter problem fixed in the above revision entry.  To avoid a crash
 | |
|   in readData if the same sound pointer is being released, use a criticalsection
 | |
|   around both function calls, or make sure the readData is finished before
 | |
|   releasing the sound.
 | |
| * User file callbacks can now return FMOD_ERR_FILE_COULDNOTSEEK to tell codecs
 | |
|   to use non seeking mode (ie mp3 or ogg vorbis).  Good for net streaming.
 | |
| 
 | |
| *** Event Net API - C++ users should now use fmod_event_net.hpp!
 | |
| 
 | |
| 23/04/09 4.27.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| !+ FSBankEx - Improved optimised rate seeking and decimation quality. This will
 | |
|               affect all sounds for which optimised rates are used. Added
 | |
|               flag FSBANK_BUILD_USEOLDOPTIMIZEDRATE to process sound files
 | |
|               using previous method and preserve their existing sound.
 | |
| 
 | |
| - Fixed some instruments not playing in some MIDI files due to leaking channels.
 | |
| - Fix Channel::setLoopCount -1 being ignored sometimes.
 | |
| 
 | |
| !- PS3 - Fix rare chirp/high pitch glitch noise.
 | |
| - Xbox 360 - Fix .XMA file support with files that have non 2k xma block sizes.
 | |
| - Wii - Fix hardware lowpass and biquad filter not working on streams.
 | |
| - Wii - Fix FMOD_Channel_GetControllerSpeaker not working on streams.
 | |
| - Wii - Fixed GCADPCM streams not looping properly (issue introduced in previous
 | |
|         release).
 | |
| - Linux - Fixed ALSA output mode potentially reporting the incorrect default
 | |
|           output device when there are multiple soundcards installed.
 | |
| 
 | |
| * Event API - Music category/channelgroup is now created in EventSystem::init
 | |
|               not EventSystem::load
 | |
| 
 | |
| 17/04/09 4.27.00 pre 2 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Optimized small streams not to read disk again after being fully buffered.
 | |
|   Big reduction in disk access means less stuttering/smaller buffersizes.
 | |
|   FMOD_SOFTWARE only.
 | |
| + Add FMOD_MEMORY_STREAMBUFFER/FMOD_MEMORY_ALL flags to FMOD_MEMORY_TYPE.
 | |
| 
 | |
| + PS3 - Added automatic muting/pausing of sounds in "music" channelgroup if
 | |
|         PS3 System BGM music is playing.
 | |
| + PSP - Increased performance of SNC library to be closer to that of GCC
 | |
|         library.
 | |
| + Event API - Added reverbocclusion parameter to event occlusion callback.
 | |
| 
 | |
| !+ Event API - Reverb levels from effects and Event::setReverbProperties are
 | |
|                now scaled by event Reverb Dry Level and Reverb Wet Level values
 | |
|                instead of overriding them. If the old overriding behaviour is
 | |
|                desired, set event reverb levels to 0 so they have no effect.
 | |
| 
 | |
| !- Fixed rare crash when releasing an FSB stream.
 | |
| !- Fixed rare crash releasing a FMOD_CREATECOMPRESSED sound before it was 
 | |
|    truly finished from being used within the mixer.
 | |
| - Fixed FMOD_DSP_TYPE_LOWPASS filter producing silence if the cutoff parameter
 | |
|   is set to higher than half the system sampling rate.
 | |
| - Fixed codec_xm crashing on load when using ogg compressed samples.
 | |
| - Fixed OpenAL output mode stopping hardware sounds right away.
 | |
| - Fixed FMOD_ERR_UNITIALIZED being returned bye System::setReverbProperties
 | |
|   when FMOD has been initialised with the FMOD_INIT_DISABLE_SOFTWARE flag.
 | |
| - Fixed CD loading to allow driver letters specified using Unicode.
 | |
| 
 | |
| - PS3 - Fixed RoomLF and LFReference SFX Reverb parameters being ignored.
 | |
| - PSP/PS2 - Fixed System::setReverbParameters returning FMOD_ERR_PLUGIN_MISSING
 | |
|             when using non-reduced version of the libraries.
 | |
| - PS3 - Fixed noise when pausing a channel that has it's dsphead routed to a
 | |
|         mixer unit, and that mixer unit has two output connections leading to
 | |
|         the same unit, with one of the connections going through another dsp unit.
 | |
| - Xbox360 - Fixed crash with multichannel XMA streams, greater than 8 channels.
 | |
| 
 | |
| - Event API - Fixed unloadFSB not releasing soundbank references properly if
 | |
|               just the FSB's base file name is specified
 | |
| - Event API - Fixed crashes after calling unloadFSB if oneshot sounds from
 | |
|               that FSB were playing
 | |
| - Event API - Fixed FMOD_EVENTPROPERTY_WII_CONTROLLERSPEAKER not being reset
 | |
|               by getEvent
 | |
| 
 | |
| - FSBankEx - Fix crashing with sounds above 48khz when encoding to MP2/MP3.
 | |
| 
 | |
| * Changed FMOD_INIT_NEURALTHX_DOWNMIX to FMOD_INIT_DTS_NEURALSURROUND.
 | |
| * Changed FMOD_INIT_360_MUSICMUTENOTPAUSE to FMOD_INIT_SYSTEM_MUSICMUTENOTPAUSE.
 | |
| 
 | |
| * Event API - Changed Event::getChannelGroup to return FMOD_ERR_DSP_NOTFOUND if 
 | |
|   it is an event with no channelgroup (ie it has been optimized out internally).
 | |
|   Use FMOD_EVENT_USERDSP to add a channelgroup back into the event.
 | |
| 
 | |
| 31/03/09 4.27.00 pre 1 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added parameter 'geometry' to System::getCPUUsage for geometry thread
 | |
| + Added profiling of geometry thread to Profiler, this means new versions of
 | |
|   the API cannot connect to older versions of profiler!
 | |
| 
 | |
| + iPhone - Improved performance for busy DSP trees.
 | |
| + Xbox 360 - Added microphone recording support.
 | |
| 
 | |
| - Fix bad loading code in FSB codec, when using a number of syncpoints 
 | |
|   that exceed 64kb total, feature added 4.25.00 pre release (#7)
 | |
| - Fixed FMOD_SYSTEM_CALLBACKTYPE_DEVICELISTCHANGED callback not always being
 | |
|   triggered if System::isRecording is called constantly.
 | |
| - Fixed software VAG decoding producing noise on big endian machines.
 | |
| - Fixed issue with XM codec causing some notes that use a portamento effect not 
 | |
|   to play.
 | |
| - Fixed codec IT not respecting the maxpolyphony setting in 
 | |
|   FMOD_CREATESOUNDEXINFO and potentially causing a crash if set over 64.
 | |
| - Fixed memory leak in threaded geometry.
 | |
| 
 | |
| - PS3 - Fixed Channel::setLoopCount not working correctly.
 | |
| - Xbox360 - Fixed incorrect thread assignments, bug introduced in 4.25.00 pre 6.
 | |
| - Xbox360 - Fixed occasional crash when calling System::setReverbProperties with
 | |
|             FMOD_PRESET_OFF.
 | |
| - Xbox360 - Fixed certain .xma files returning FMOD_ERR_FORMAT
 | |
| - PS3 - Fixed rare bug where only one DSP will be active at a time if there
 | |
|         are two DSP's connected to a DSPMixer unit in a custom DSP tree.
 | |
| 
 | |
| - Event API - Fixed bad playback when multiple themes are triggered between
 | |
|               EventSystem::update calls
 | |
| - Event API - Fixed Event::setReverbProperties failing with FMOD_ERR_NOTREADY
 | |
|               if the event has programmer sounds that are still loading
 | |
| - Event API - Fixed reverb still being audible when event wet level is -60 dB
 | |
| - Event API - Fixed concurrent themes not syncing to beats/bars if no
 | |
|               sequenced theme is playing
 | |
| 
 | |
| 18/03/09 4.25.00 - Development branch release
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added FMOD_INIT_GEOMETRY_USECLOSEST flag.  With the geometry engine, 
 | |
|   only process the closest polygon rather than accumulating all polygons 
 | |
|   the sound to listener line intersects. 
 | |
| + Added DSP Delay effect.
 | |
| + Moved geometry processing into a background thread.
 | |
| + Event API - Added FMOD_EVENTPROPERTY_3D_IGNORE_GEOMETRY event property.
 | |
| 
 | |
| - Fixed MIDI codec to ignore notes with bad data.
 | |
| - Fixed channel FMOD_3D_IGNOREGEOMETRY flag not updating occlusion values
 | |
|   properly.
 | |
| 
 | |
| - PS2 - Fix FMOD_Command_Send error with multichannel VAG streams that 
 | |
|   called Channel::setPosition whilst paused and were opened with FMOD_NONBLOCKING
 | |
| !- Xbox 360 - Fixed XMA codecs allocating twice as much memory as they should be.
 | |
|               Bug introduced 4.23 prerelease (v6)
 | |
| 
 | |
| - Event API - Fixed glitches when music theme crossfade duration is too short
 | |
|               (the fade-in part of all crossfades now happens 50ms sooner)
 | |
| - Event API - Fixed a crash when using streaming nonblocking programmer sounds
 | |
| - Event API - Fixed event occlusion not being reset when re-using an instance
 | |
| - Event API - Fixed music system failing to load encrypted streaming FSBs
 | |
| 
 | |
| 12/03/09 4.25.00 pre 8 - Development internal update
 | |
| ----------------------------------------------------
 | |
| + Event API - Added the FMOD_EVENT_INIT_DETAILED_SOUNDDEF_INFO init flag.
 | |
|               This causes an FMOD_EVENT_SOUNDDEFINFO struct to be passed to
 | |
|               the FMOD_EVENT_CALLBACKTYPE_SOUNDDEF_SELECTINDEX event callback
 | |
|               so it can choose an index based on waveform names.
 | |
| 
 | |
| - Fixed streams with a single subsound never clearing the
 | |
|   FMOD_OPENSTATE_STREAMING bit, even when they have been stopped
 | |
| - Fixed codec MIDI still creating "Text (Time MS)" tags at runtime.
 | |
| - IT format. Fix sample vibrato not working in files that were in 'sample mode'
 | |
| - Fixed VST/Winamp plugins not loading (incorrectly returning FMOD_ERR_FORMAT).
 | |
| 
 | |
| - PS2 - Fix multichannel vag streams (ie 6ch and above) hanging / causing noise.
 | |
| 
 | |
| - Event API - Fixed music system stopping themes prematurely if they use
 | |
|               streaming wave banks that contain a single sound
 | |
| 
 | |
| * Event API - Changed FMOD_EVENT_INIT_NO_GUIDTABLE to FMOD_EVENT_INIT_USE_GUIDS
 | |
| 
 | |
| 5/03/09 4.25.00 pre 7 - Development internal update
 | |
| ----------------------------------------
 | |
| 
 | |
| + Added ability to specify netstream URLs with wide chars using the unicode flag.
 | |
| + Added FMOD_MEMTYPE_SOUND_SECONDARYRAM / FMOD_MEMBITS_SOUND_SECONDARYRAM to
 | |
|   allow tracking of sounds in secondary RAM (such as RSX on PS3).
 | |
| + Added new "Text (Time Ms)" tag to MIDI files so it can be used in conjunction
 | |
|   with the "Text" tag that conains lyrics. This supports the ".kar" file format.
 | |
| + Added FMOD_DEBUG_DISPLAY_THREAD to let the user log what threads FMOD calls are
 | |
|   being made from (to track down multithread bugs).
 | |
| 
 | |
| + Wii - FMOD now automatically sets the correct speakermode depending on what 
 | |
|         was set in the Wii control panel.
 | |
| 
 | |
| - Fixed software channel 3D panning for multichannel sounds
 | |
| - Fixed getSpectrum not freeing memory on a channel until System::release.
 | |
| - Fixed sfxreverb not reporting a memory allocation failure in one case.
 | |
| - Removed FSB support for frequency/volume/pan 'variations'.
 | |
| 
 | |
| - FSBankEx - Fixed 64kb limit in FSB because of too many syncpoints.
 | |
| 
 | |
| - Mac - Fixed CoreAudio output mode to respect the requested dsp buffer size.
 | |
| - Mac/Linux/Solaris/iPhone - Fixed time sync issues with the event system.
 | |
| 
 | |
| - Wii - Fixed Channel::setVolume overriding Channel::setSpeakerMix for
 | |
|         multichannel hardware sounds.
 | |
| 
 | |
| - Event API - Fixed crashes when changing effect envelopes via network tweaking
 | |
| - Event API - Fixed corrupted category parents after loading multiple FEVs
 | |
| - Event API - Fixed crashes in EventSystem::update when playing events with
 | |
|               velocity or seek parameters after loading multiple FEVs
 | |
| - Event API - Fixed EventSystem::load not cleaning up properly when failing
 | |
|               with FMOD_ERR_EVENT_GUIDCONFLICT
 | |
| 
 | |
| 26/02/09 4.25.00 pre 6 - Development internal update
 | |
| ----------------------------------------
 | |
| 
 | |
| + 360 - Added ability to pass in pre-created XAudio2 instance to FMOD 
 | |
|   via FMOD_360_EXTRADRIVERDATA.  Stops fmod from initializing XAudio2 itself.
 | |
| + Wii - Added 'audiolibsinitialized' member to FMOD_WII_INFO to stop FMOD
 | |
|         from initializing AI,AX and MIX.
 | |
| + PS3 - Added and 'cell_audio_initialized' and 'cell_audio_port' members to
 | |
|         FMOD_PS3_EXTRADRIVERDATA so that the cell audio port number can be 
 | |
|         passed in if you have initialized libAudio yourself. FMOD will not do
 | |
|         any audio initialization if 'cell_audio_initialized' is set.
 | |
| + Wii - Added 'FMOD_Wii_GetDriveStatus' function to fmodwii.h. Returns the
 | |
|         drive status that was reported to the FMOD file system.
 | |
| 
 | |
| - Linux - Fixed OSS recording not starting.
 | |
| - Wii - Improved accuracy of hardward Channel::setSpeakerLevels.
 | |
| 
 | |
| - Event API - Fixed streaming events not reporting FMOD_EVENT_STATE_LOADING
 | |
|               unless they have been started
 | |
| 
 | |
| * 360 - Changed FMOD_THREAD_PROCESSOR_ASSIGNMENTS to FMOD_360_EXTRADRIVERDATA
 | |
| 
 | |
| 20/02/09 4.25.00 pre 5 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Wii - Added support for stereo hardware 3D sounds.
 | |
| + Mac - Improved general performance slighly with specific improvements to
 | |
|         the performance of recording.
 | |
| + PS3 - Added support for FMOD_DSP_TYPE_ITECHO dsp filter.
 | |
| 
 | |
| - Fixed filename truncation in System::createSound when FMOD_NONBLOCKING and
 | |
|   FMOD_UNICODE are specified
 | |
| - Fix syncpoint hang when using hardware voices on stereo and above sounds.
 | |
| - Fix 1 frame mpeg files returning FMOD_ERR_FILE_FORMAT
 | |
| - PS3 - Fixed crash when using oscillators and virtual voices.
 | |
| 
 | |
| - Event API - Reset parameters to minimum values when getting event instances
 | |
| - Event API - Pause parameters when their event or category is paused
 | |
| 
 | |
| * Event API - Changed reverb connection logic.  Effects in an event will not
 | |
|   be processed by reverb unless FMOD_EVENTPROPERTY_EFFECTS_AFFECT_REVERB has
 | |
|   been specified.
 | |
| 
 | |
| 12/02/09 4.25.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed crash when reinitializing FMOD, i.e. System::close() then
 | |
|   System::init(). Bug introduced in 4.25.00 pre 2.
 | |
| 
 | |
| - FSBank - Fixed error building some multi-channel MP2 banks
 | |
| 
 | |
| - Wii - Make Channel::setSpeakerMix and Channel::setSpeakerLevels more functional
 | |
|         on hardware channels.
 | |
| 
 | |
| 6/02/09 4.25.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed rare case where some FLAC files don't load by updating FLAC to v1.2.1.
 | |
| 
 | |
| - Linux64 - Fixed recording examples not compiling due to record API changes.
 | |
| - Linux/Solaris - Fixed oggvorbis codec not working when used as a plugin.
 | |
| - PS3 - Fixed initialization failure introduced in 4.25.00 pre 1
 | |
| 
 | |
| - Event API - Clarified MusicSystem::prepareCue and MusicPrompt::release docs
 | |
| - Event API - Fixed simple events sometimes ending abruptly on first play
 | |
| 
 | |
| * iPhone - now built with SDK 2.2.1.
 | |
| 
 | |
| 30/01/09 4.25.00 pre 2 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - added support for wave writer output mode. NOTE! you must pass in a
 | |
|   file path and name via extra driver data as the app bundle is read only.
 | |
| 
 | |
| + Event API - Made sound instance "Wait for previous" start mode
 | |
|               sample-accurate so sounds are stitched together seamlessly.
 | |
|               This allows for granular synthesis with spawning oneshot sounds,
 | |
|               seamless stitching of looping sounds and other effects.
 | |
| 
 | |
| - Fixed tags not appearing for some shoutcast net streams. Bug was introduced
 | |
|   in 4.23.00.
 | |
| - Stop crash in System::close/release when user didn't call System::update and
 | |
|   was using hardware sounds.
 | |
| 
 | |
| - PS3/360/Wii/PSP/PS2 - Fix bug in .wav file syncpoint support where names 
 | |
|   came out blank.
 | |
| - iPhone - Fixed System::init() failure when re-initializing FMOD.
 | |
| - iPhone - Fixed dsp_custom example, added the missing content.
 | |
| - PSP - Fix horrible XM playback when using FMOD_HARDWARE.
 | |
| - PSP/PS2 - Fix bpm support for XM playback when using FMOD_HARDWARE.
 | |
| - Linux - Fixed ALSA output crashing when a second system object is initialised
 | |
|           on machines that are running Pulse Audio.
 | |
| 
 | |
| - Event API - Fixed event instance pool stealing.
 | |
| 
 | |
| 22/01/09 4.25.00 pre 1 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + iPhone - added the ability to force output through the main speaker when
 | |
|            recording and playing at the same time.
 | |
| 
 | |
| ! - Fixed corruption/crash when using FMOD_NONBLOCKING or FMOD_EVENT_NONBLOCKING
 | |
|     Introduced in 4.18.02/4.19.02
 | |
| 
 | |
| - Fixed ChannelGroup::getWaveData/getSpectrum crash on channelgroups retrieved 
 | |
|   from events that do not use dsp effects.  Now returns FMOD_ERR_DSP_NOTFOUND
 | |
|   instead.  Remember use FMOD_EVENT_USERDSP if you want the error to go away.
 | |
| - Fix FMOD_ADVANCEDSETTINGS::debugLogFilename storing user pointer and writing 
 | |
|   to it internally.
 | |
| - Fixed inaccurate cone angle calculation for 3D channels.
 | |
| - Fixed reverb parameters not applying when using the plugins version with
 | |
|   certain output modes.
 | |
| - Fix getSubSound on a stream in certain cases playing the wrong bits of an FSB.
 | |
| 
 | |
| - iPhone - made initialization a little bit more informative and robust
 | |
|            concerning backwards compatibility of older iPhone SDKs.
 | |
| - Mac - Fixed missing plugins (compressor, lowpass_simple, sfxreverb). 
 | |
| 
 | |
| * System::createSound/createStream no longer creates a sentence for the parent 
 | |
|   sound, saving disk accesses and memory.  Use System::setSubSoundSentence 
 | |
|   instead.
 | |
|   
 | |
| 16/01/09 4.23.00 - Development branch release
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Optimised mixer to give significant speedup in certain cases when mixing an
 | |
|    8x8 or 6x6 matrix.
 | |
| 
 | |
| + Event API - Added EventSystem::getEventByGUID
 | |
| + Event API - Added EventSystem::getEventByGUIDString
 | |
| + Event API - Added the FMOD_EVENT_INIT_NO_GUIDTABLE init flag
 | |
| + Event API - Added EventProject::loadSampleData. Allows you to load sample data
 | |
|               for multiple events/eventgroups with one call. Optimized to be
 | |
|               faster than using multiple calls to loadEventData.
 | |
| 
 | |
| + PS3 - Added "spurs_taskset_priorities" member to FMOD_PS3_EXTRADRIVERDATA to
 | |
|         allow passing of custom priorities to cellSpursCreateTaskset internally.
 | |
| + PSP - Enabled rudimentary support for hardware accelerated XM playback
 | |
|         previously enabled on PS2.
 | |
| 
 | |
| - Fix rare distortion in output if using reverb.
 | |
| - Fixed connecting to certain Shoutcast servers when attempting net streaming.
 | |
| 
 | |
| - Win32 - When using FMOD_HARDWARE (directsound), fixed setPaused(true) rarely 
 | |
|           causing streams to stop.
 | |
| - Xbox 360 - Fix crash with multichannel XMA sounds.  Introduced in 4.23.00 pre 6.
 | |
| - PS3 - Fixed error re-initialising FMOD if FMOD_INIT_ENABLE_PROFILE was set.
 | |
| - PSP - Fixed hang during initialisation if System::getDriverCaps was called.
 | |
| 
 | |
| - Event API - Put events with no category in the master category when loading 
 | |
|               from FEV
 | |
| - Event API - Fix freeEventData incorrectly freeing sample banks that were
 | |
|               loaded with preloadFSB
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_ONESHOT, 1)
 | |
|               not working properly.
 | |
| 
 | |
| - Music player - Fixed crash when loaded project has no music data.
 | |
| 
 | |
| - FSBankEx - remove glitch from mp2 encoded fsb files.
 | |
| 
 | |
| * Channel::setMute will now make a voice go virtual if 
 | |
|   FMOD_INIT_VOL0_BECOMES_VIRTUAL is used.
 | |
| * .FEV file format updated! FMOD Designer 4.23.00 requires FMOD version 4.23.00,
 | |
|   4.22.00, 4.20.07, 4.18.16, 4.16.26 or higher
 | |
| * Updated startup example for Windows to handle no soundcard.
 | |
| 
 | |
| 18/12/08 4.23.00 pre 6 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Unblocked DSPEcho::setParameter. (updating FMOD_DSP_ECHO_DELAY and 
 | |
|   FMOD_DSP_ECHO_MAXCHANNELS will still block on PS3)
 | |
| 
 | |
| - Fixed some rare MIDI playback issues due to incorrect note volumes.
 | |
| 
 | |
| - Xbox360 - Fixed seeking hang when using an XMA compressed FSB that contains a
 | |
|             mix of mono/stereo and multichannel sounds.
 | |
| - Xbox360 - Fixed multichannel XMA files crashing on load.
 | |
| - Wii - Fixed WiiMote staying mute when "muteremotespeakerifnosound" is set if
 | |
|         the WiiMote speaker is turned off then on.
 | |
| - Mac - Fixed memory leak when creating a sound.
 | |
| 
 | |
| - Event API - Fixed Occlusion effects on layers with no DSP effects wrongly
 | |
|               overwriting occlusion values for the whole event
 | |
| - Event API - Fixed crash when calling EventSystem::getMemoryInfo when linking
 | |
|               with reduced libs
 | |
| - Event API - Fixed event member functions sometimes returning
 | |
|               FMOD_ERR_EVENT_INFOONLY or FMOD_ERR_INVALID_HANDLE unexpectedly
 | |
|               after many calls to getEventXXX
 | |
| 
 | |
| * Channel::set3DOcclusion and get3DOcclusion now work on user occlusion values
 | |
|   that scale geometry occlusion rather than working on geometry occlusion
 | |
|   values directly. This means code that uses these functions to query or
 | |
|   overwrite geometry occlusion values will no longer function as expected.
 | |
| 
 | |
| 11/12/08 4.23.00 pre 5 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Win/Mac/Linux/Solaris - Added FMOD_INIT_NEURALTHX to enable use of Neural THX
 | |
|                           downmixer from 7.1 if speakermode is set to 
 | |
|                           FMOD_SPEAKERMODE_STEREO or FMOD_SPEAKERMODE_5POINT1\
 | |
| + Wii - Added FMOD_WII_CONTROLLER_AND_SPEAKERS define to fmodwii.h. Or this
 | |
|         flag with FMOD_WII_CONTROLLER_* to play a sound out of the specified
 | |
|         controller as well as the normal speakers.
 | |
| 
 | |
| - Fixed small pop at end of software mixed sounds in rare cases.
 | |
| - Fixed FSB MP3 on low bitrates with some types of sound causing glitch.
 | |
| - Removed stall in Sound::release if stream hadnt been played yet.
 | |
| 
 | |
| - iPhone - Fixed stereo sound corruption when resampling.
 | |
| - PS3 - Fixed crash when virtual voice swapping streams or raw pcm voices.
 | |
| - PS3 - Stop SPU from resetting the decrementer.
 | |
| - Wii - Fixed rare case where a stream will not restart if it has previously
 | |
|         been stopped.
 | |
| - Xbox 360 - Fix rare crash if using mp3 on xbox 360 (alignment issue).
 | |
| 
 | |
| - Event API - Fixed reverb not being audible when a dsp effect is added to an 
 | |
|               event and Event::setReverbProperties is called.
 | |
| - Event API - Override master category volume and pitch in EventSystem::load if
 | |
|               FMOD_EVENT_LOADINFO.override_category_vals is true
 | |
| - Event API - Fixed category volume and pitch overriding from FEV to set
 | |
|               internal channelgroup values properly
 | |
| 
 | |
| * XMA encoder updated from XDK, hopefully to address rare XMA encode based hangs.
 | |
| * .FEV file format updated! FMOD Designer 4.21.05 requires FMOD version 4.21.05,
 | |
|   4.20.05, 4.18.14, 4.16.24 or higher
 | |
| 
 | |
| 28/11/08 4.23.00 pre 4 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Added System::getGeometryOcclusion
 | |
| 
 | |
| + iPhone - Added ability to set audio session category via extradriverdata in
 | |
|            System::init().
 | |
| 
 | |
| - iPhone - Implemented checks to prevent recording if there is no recording
 | |
|            hardware available, i.e. 1st Gen iPod touch.
 | |
| - iPhone - Fixed crackling issue with some sounds.
 | |
| - iPhone - Fixed crash with some MIDI files.
 | |
| - Linux/Solaris - Fixed STDIN being inadvertantly closed if pre init function,
 | |
|                   System->setOutput() with FMOD_OUTPUTTYPE_OSS is explicitly
 | |
|                   called.
 | |
| 
 | |
| - Event API - Fixed System::setPropertyByIndex with event fadein/out property
 | |
|               not resetting to event default when finished with
 | |
| - Event API - Fixed preloadFSB and unloadFSB not handling streams properly
 | |
| - Event API - Fixed a crash if a nonblocking stream load fails
 | |
| - Event API - Fixed a linker error with 'reduced' versions of the libraries
 | |
| 
 | |
| * iPhone - The default system samplerate has been reduced to 24KHz to improve
 | |
|            performance. This can be overridden via System::setSoftwareFormat().
 | |
| 
 | |
| * Event API - Event::release now returns FMOD_ERR_EVENT_NEEDSSIMPLE if called
 | |
|               on a complex event
 | |
| 
 | |
| 20/11/08 4.23.00 pre 3 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + PS3 - Added recording support, with support for recording from multiple mics.
 | |
| + iPhone - Ported FMODEx to the iPhone platform, includes support for both the
 | |
|            device and the simulator.
 | |
| + Xbox360 - Updated output mode to use XAudio2 instead of XAudio1 due to XAudio1
 | |
|             being deprecated soon.
 | |
| + Event API - Include geometry occlusion in "Just fail if quietest" audibility
 | |
|               calculation.
 | |
| + Event API - Added FMOD_EVENTPROPERTY_EVENTTYPE. Find out if an event is
 | |
|               simple or complex at runtime.
 | |
| + Event API - Added event property "Steal priority". Events with a lower "Steal
 | |
|               priority" will never steal events with a higher "Steal priority".
 | |
|               This is only relevant for simple events when the programmer
 | |
|               specifies a >0 value for
 | |
|               FMOD_EVENT_LOADINFO.sizeof_instancepool_simple.
 | |
| + Event API - Added Event::release(). Use this in conjunction with
 | |
|               FMOD_EVENT_LOADINFO.sizeof_instancepool_simple.
 | |
| 
 | |
| - Fixed end of streams being cut off in some cases if FMOD_NONBLOCKING was used.
 | |
| - Fixed FMOD_SOUNDGROUP_BEHAVIOR_MUTE not working if previous sounds were paused.
 | |
| - Fixed Sound::setMusicChannelVolume/getMusicChannelVolume with MIDI files.
 | |
| - Fixed crash/corrutpion in System::release.
 | |
| 
 | |
| - Event API - Fixed "Just fail if quietest" max playbacks behaviour to use the
 | |
|               same audibility calculation for all events. This solves some bad
 | |
|               interactions with geometry, sounddef volume and event fadein that
 | |
|               could cause oscillations.
 | |
| - Event API - Fixed "Steal quietest" max playbacks behaviour to use the same
 | |
|               audibility calculation as "Just fail if quietest". This solves an
 | |
|               issue with event fadein where the wrong event could be stolen.
 | |
| - Event API - Sounddef's with the same name, but in different folder are now
 | |
|               handled correctly.
 | |
| - Event API - Fixed reverb not being audible when a dsp effect is added to an 
 | |
|               event.
 | |
| 
 | |
| - PS3 - Fixed Channel::setLoopCount sometimes being ignored.
 | |
| - PS3 - Fixed Channel::setPosition sometimes being ignored.
 | |
| - Wii - Fixed crash when initialising with FMOD_SPEAKERMODE_MONO.
 | |
| 
 | |
| * Removed System::setRecordDriver and System::getRecordDriver functions.
 | |
| * Extra argument "id" added to System::getRecordPosition/recordStart/recordStop/
 | |
|   isRecording functions.
 | |
| * Symlinks removed from Linux/Linux64/Solaris install makefile, you should
 | |
|   link directly with the desired version to prevent runtime linker problems
 | |
|   when new APIs are installed.
 | |
| * Event API - Events with "programmer" sounds won't be made into "simple" events
 | |
| * Event API - Event callbacks involving sounddef's now return the full path name
 | |
|               as seen in designer tool. This fix is required to handle sounddef's
 | |
|               in different folders with the same name.
 | |
| * Event API - .FEV file format updated! FMOD Designer 4.22.00 pre 3 requires FMOD
 | |
|               version 4.22.00 pre 3, 4.21.03 or higher to use all supported
 | |
|               features.
 | |
| 
 | |
| 14/11/08 4.23.00 pre 2 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Event API - Added user properties to programmer report.
 | |
| 
 | |
| - Fixed possible 24 byte overwrite in the data segment.
 | |
| - MOD/S3M/XM/IT Fixed first few samples missing from sounds.  Bug introduced 
 | |
|   4.21.00 pre 5
 | |
| - Fix rare System::close/release crash.  Bug Introduced 4.21.00 pre 5.
 | |
| - Fix rare possible corruption/crash when using reverb.
 | |
| - Fix support for ogg netstreams.
 | |
| - Fixed FMOD_ERR_UNSUPPORTED being returned when trying to initialise
 | |
|   reduced builds.
 | |
| - fix 3dpan level effect morphing to default speakermap rather than specified 
 | |
|   speakermap (ie allmono/allstereo)
 | |
| 
 | |
| - Mac - Fixed crash when releasing the system object on OSX 10.4.
 | |
| - Linux/Linux64 - Fixed device enumeration list looking different between
 | |
|                   two different system objects. (ALSA output mode).
 | |
| - PS3 - Fixed reverse playback not working properly when the sample is loaded
 | |
|         from an mp3 encoded .fsb file.
 | |
| 
 | |
| - Event API - Fixed loading FEV files from memory being passed to file user 
 | |
|               callbacks.
 | |
| - Event API - Clamp invalid doppler factors to [0, 5] range when loading FEVs
 | |
| - Event API - Fixed FMOD_EVENT_WAVEBANKINFO.streammemory and 
 | |
|               FMOD_EVENT_WAVEBANKINFO.samplememory
 | |
| - Event API - Fixed possible crash when EventGroup::freeEventData called for
 | |
|               an event which is not in the specified group
 | |
| 
 | |
| - FSBankEx - Fixed sample rate reduction below 10% not having any effect
 | |
| 
 | |
| 
 | |
| 07/11/08 4.23.00 pre 1 - Development internal update.
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + PS3 - Added support for FIOS.
 | |
| + PS3 - Added "fios_scheduler" member to FMOD_PS3_EXTRADRIVERDATA.
 | |
| + Event API - Added simple event instance pools.
 | |
|               Use FMOD_EVENT_LOADINFO.sizeof_instancepool_simple to specify the
 | |
|               number of instances to create in a pool that all simple events
 | |
|               will use. Saves memory over the old "Max playbacks" method.
 | |
| 
 | |
| - Event API - Fix spawn timer not working on simple events.
 | |
| - Event API - Fix FMOD_ERR_REVERB_INSTANCE being returned sometimes.
 | |
| 
 | |
| - PSP - Fixed error when loading a .mp3 file.
 | |
| 
 | |
| * Linux / Linux64 / Solaris - Changed the way library versions are represented
 | |
|                               in the filename. 
 | |
| 
 | |
| * PS3 - Now built with SDK 250.001
 | |
| 
 | |
| 30/10/08 4.21.00 - Initial Development branch release.
 | |
| ------------------------------------------------------
 | |
| 
 | |
| + PS2 - Added rudimentary support for hardware accelerated XM playback.
 | |
| + PS3 - Added FMOD_PS3_SPURSMODE_TWOTASKS to set 2 SPURS Tasks / SPU Threads
 | |
|         to be used instead of just 1 (ie same as previous behaviour).
 | |
| + PS3 - Re-added 'spu_thread_priority_streamer' member to FMOD_PS3_EXTRADRIVERDATA
 | |
| 	to specify spu thread priority of stream decoder.
 | |
| 
 | |
| - Fix ParamEQ filter thread safety issue which could theoretically cause 
 | |
|   unxepected results from the filter.
 | |
| - Fix setInputChannelMix from ignoring reverb path.
 | |
| 
 | |
| - PS3 - Fixed SPURS Task not being swappable when created with context.
 | |
| 
 | |
| - Event API - Fixed EventGroup error state not propagating to parent groups
 | |
| - Event API - Events only report FMOD_EVENT_STATE_READY if they aren't playing
 | |
| - Event API - Fixed reverb settings being ignored when event instance was reused.
 | |
|               Bug introduced 4.21.00 pre 8.
 | |
| 
 | |
| 27/10/08 4.21.00 pre 9 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fix reverb settings being ignored.  Bug introduced in 4.21.00 pre 8.
 | |
| - Fixed oscillator producing incorrect tone when switching to triangle tone.
 | |
| 
 | |
| 23/10/08 4.21.00 pre 8 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Wii - SIMD optimised software mixer. resulting in ~15% performance improvement.
 | |
| + PS3 - Added 'spursmode' member to FMOD_PS3_EXTRADRIVERDATA. This can be set
 | |
|         to the appropriate FMOD_PS3_SPURSMODE enum to allocate the SPURS task
 | |
|         with context memory.
 | |
| 
 | |
| - Fixed an occasional crash in System::update when nonblocking loads are in
 | |
|   progress and FMOD_INIT_ENABLE_PROFILE is on
 | |
| 
 | |
| - Mac / Linux / Solaris - Fixed thread memory not be released when a thread exits.
 | |
| - Fixed mono waveforms in MPEG streaming FSBs not being copied to all speakers
 | |
| 
 | |
| - Event API - Fixed bad reverb behaviour with wet/dry mix cutting in/out 
 | |
|               depending on the type of event it was playing on.
 | |
| - Event API - Fixed FEV loads overwriting master category volume and pitch
 | |
| - Event API - Fixed events not reporting FMOD_EVENT_STATE_LOADING when loading
 | |
|               data from non-streaming banks with FMOD_EVENT_NONBLOCKING
 | |
| - Event API - Set simple events' oneshot property to match their sound's loop
 | |
|               mode at load time
 | |
| 
 | |
| * FMOD_REVERB_CHANNELFLAGS_INSTANCE0-3 flags can now be combined to set 
 | |
|   properties for all instances at once if required.
 | |
| * Event API - Event::setReverbProperties Room/Direct now scales the event 
 | |
|   property setting from fmod designer rather than overwriting it.
 | |
| 
 | |
| 16/10/08 4.21.00 pre 7 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added getMemoryInfo function to all public classes, both low-level and event
 | |
|   system. Use this function to get detailed information on the memory usage of
 | |
|   any FMOD object.
 | |
| + Added new public interface file fmod_memoryinfo.h
 | |
| + Added FMOD_CHANNEL_CALLBACKTYPE_OCCLUSION.  When fmod calculates an occlusion 
 | |
|   value based on geometry, this callback will be triggered to that the user has
 | |
|   a chance to modify it.
 | |
| + PS3 - Add backwards playback support for PCM data.
 | |
| + Event API - Added FMOD_EVENTPROPERTY_TYPE enum
 | |
| + Event API - Added "type" parameter to Event::getPropertyInfo
 | |
| + Event API - Added FMOD_EVENT_CALLBACKTYPE_OCCLUSION.  This wraps the channel 
 | |
|   version of the callback for events. 
 | |
| + Event API - Added FMOD_EVENTPROPERTY_TYPE enum
 | |
| + Event API - Added "type" parameter to Event::getPropertyInfo
 | |
| 
 | |
| - Fixed noise when playing certain .xm files on big endian platforms.
 | |
| 
 | |
| - PS2 - fix hang when opening sound after ejecting dvd, or getOpenState staying 
 | |
|         'loading' until the disk was reinserted.
 | |
| 
 | |
| - Event API - Fixed incorrect ranges on info-only event parameters
 | |
| - Event API - Fixed division by zero when calling setValue on parameters with
 | |
|               maximum range equal to minimum range
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_REVERBWETLEVEL)
 | |
|               only affecting reverb instance 0 (now it affects all instances)
 | |
| 
 | |
| * FMOD_CHANNEL_CALLBACK parameters changed from unsigned int to void * to allow 
 | |
|   better 64bit compatibility.
 | |
| * Channel::setCallback changed to remove 'command' parameter and per callback 
 | |
|   type callback capability.  This isn't needed and will save memory.
 | |
| * Event API - FMOD_EVENT_INFO.memoryused is now deprecated. Use
 | |
|               Event::getMemoryInfo instead
 | |
| * Event API - FMOD_EVENT_SYSTEMINFO.eventmemory, instancememory, dspmemory are
 | |
|               now deprecated. Use getMemoryInfo functions instead.
 | |
| 
 | |
| 9/10/08 4.21.00 pre 6 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + Event API - Added FMOD_EVENT_USERDSP flag to tell FMOD that you plan to add
 | |
|               your own DSP units to an event at runtime.
 | |
| 
 | |
| - Fixed floating point divide by zero error when loading certain midi files.
 | |
| - Fixed broken embedded loop points in sounds with more than one subsound
 | |
| 
 | |
| - PS3 - Fixed possible memory leak when too many dsp units are allocated.
 | |
| 
 | |
| 
 | |
| 2/10/08 4.21.00 pre 5 - Development internal update
 | |
| ---------------------------------------------------
 | |
| 
 | |
| + PS3 - FMOD now only uses 1 SPURS Task / SPU Thread for both mixing and mpeg
 | |
|         stream decoding.
 | |
| + PS3 - 512k memory saving when using SPURS mode due to context memory no longer
 | |
|         being needed.
 | |
| + Mixer optimizations.  
 | |
|   - Removed dsp node management logic, ps3 now has no code to do with mixer 
 | |
|     executed on PPU.
 | |
|   - Memory optimizations.  Significant memory reductions.
 | |
| 
 | |
| + Event API - Large memory optimization.  Event instances now shed over 500 bytes
 | |
|   per instance, saving possibly hundreds of kilobytes in a normal game project.
 | |
| 
 | |
| + Wii - Enable streaming sounds to be played through the WiiMote speaker.
 | |
| + Win - Vista (WASAPI) now supports output as mono or stereo when control panel
 | |
|         is set with a higher number of channels, i.e. quad, 5 point 1, etc.
 | |
| 
 | |
| + Profiler - Added support for graphing channel and codec usage.
 | |
| 
 | |
| - Fixed rare hang when playing midi/mod/s3m/xm/it files with frequent DSP network
 | |
|   manipulation.
 | |
| - Fixed potential sound corruption with midi/mod/s3m/xm/it files under certain DSP
 | |
|   network arrangements.
 | |
| - Fix small memory leak in System::release if user channelgroups not released 
 | |
|   manually.
 | |
| 
 | |
| - PS2 / Wii / PSP - Fix Channel::setSpeakerMix causing audible glitch on stereo
 | |
|   and above sounds, when volume was supposed to be 0.  
 | |
| - Fixed distortion/buzzing coming from FMOD_DSP_ITLOWPASS's last two channels
 | |
|   when it is processing in 8 channel mode. (ie side left/side right when in
 | |
|   FMOD_SPEAKERMODE_7POINT1).
 | |
| - Fixed FMOD_DEBUG_LEVEL_WARNING and FMOD_DEBUG_LEVEL_ERROR messages not being
 | |
|   logged in logging versions of libs by default.
 | |
| 
 | |
| - Event API - PS2 / Wii / PSP - Fix loadEventData / getEvent sometimes returning 
 | |
|   FMOD_ERR_MISMATCH.
 | |
| - Event API - Fixed a crash on some platforms when loading FEVs with music data
 | |
| - Event API - Fixed a crash caused by incorrect soundbank reference counting in
 | |
|               loadEventData/freeEventData on events that use multiple soundbanks
 | |
| - Event API - Fixed loadEventData failing to load soundbanks that were
 | |
|               previously loaded with preloadFSB, then unloaded with unloadFSB
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_3D_MAXDISTANCE)
 | |
|               not working correctly for "this_instance" = true
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_3D_MAXDISTANCE)
 | |
|               setting bad distance parameter ranges in custom rolloff events
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_3D_MAXDISTANCE)
 | |
|               not updating distance parameter effects
 | |
| - Event API - Fixed Event::setPropertyByIndex(FMOD_EVENTPROPERTY_3D_MAXDISTANCE)
 | |
|               wrongly changing distance parameters on non custom rolloff events
 | |
| 
 | |
| - FSBankEx - Fix crackling when exporting 6 channel files.
 | |
| 
 | |
| * PS3 - Removed 'spu_priority_streamer' and 'spu_priority_at3' members from 
 | |
|         FMOD_PS3_EXTRADRIVERDATA struct.
 | |
| * PS3 - 'spu_priority_mixer' renamed to 'spu_thread_priority' in
 | |
|         FMOD_PS3_EXTRADRIVERDATA struct.
 | |
| 
 | |
| 22/09/08 4.21.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed hang when releasing an FSB stream which contains sync points.
 | |
| - Fixed distortion/buzzing coming from FMOD_DSP_LOWPASS_SIMPLE's last two channels
 | |
|   when it is processing in 8 channel mode. (ie side left/side right when in
 | |
|   FMOD_SPEAKERMODE_7POINT1).
 | |
| - Fixed virtual channels not resetting their reverb properties when stoped, this can
 | |
|   cause a crash under certain circumstances.
 | |
| 
 | |
| - Win - WASAPI - Fixed crash when output has more than 2 channels at certain
 | |
|                  sample rates.
 | |
| - Mac - fixed getDSPBufferSize, it now reports the correct value (which is
 | |
|         determined by the CoreAudio output mode).
 | |
| - PS3/Xbox360/Mac/Linux - Fixed garbled sound when calling Channel::setSpeakerLevels
 | |
|                           introduced in last release.
 | |
| - PS3/Xbox360/Mac/Linux - Fixed memory overwrite crash when using multichannel 3d
 | |
|                           sounds introduced in last release.
 | |
| - PSP - Fixed Channel::setVolume having no effect after Channel::setPan is called
 | |
|         on a channel that has had is volume set to 0. This also caused volume issues
 | |
|         with channelgroups.
 | |
| - PS2 - fix mistake in ps2 semaphore overflow fix from 4.19.00
 | |
| 
 | |
| - Event API - Fix automatic "(distance)" parameter not working when more than 
 | |
|   one event was playing.
 | |
| - Event API - Clarified Event::getPropertyInfo documentation
 | |
| 
 | |
| * Event API - Events with no sounds now return 0 for FMOD_EVENT_INFO.lengthms
 | |
| 
 | |
| 11/09/08 4.21.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Add FMOD_DELAYTYPE_DSPCLOCK_PAUSE to allow clock accurate pausing of voices.
 | |
| + Event API - Added "Shuffle Global" play mode for sound definitions
 | |
| + Win - WASAPI - Improved performance when control panel sample rate
 | |
|                  is set to a high value, e.g. 192KHz.
 | |
| + Event API - Added Event::getPropteryInfo.
 | |
| + Memory savings.  With 1024 channels, PS3/360 save about 200kb, other platforms
 | |
|   about 80kb.
 | |
| 
 | |
| - Sound::deleteSyncPoint will now work from the syncpoint callback and not 
 | |
|   crash.
 | |
| - Fix FMOD_Resampler_Linear crash, related to last FMOD_Resampler_Linear 
 | |
|   crash fix, this actually was introduced then, and is caused by 
 | |
|   Channel::setPosition followed immediately by Channel::stop then another 
 | |
|   playsound with a smaller sound.
 | |
| - Fix hang when fatal disk errors occur (ie disk eject) with streamed sentences.
 | |
| - Fix Channel::getPosition innacuracy with streams and pcm samples.  Bug introduced
 | |
|   4.19.00 pre 9
 | |
| 
 | |
| - Wii - Fix rare problem with Channel::isPlaying causing incorrect voices to
 | |
|         play when using FMOD_INIT_VOL0_BECOMES_VIRTUAL.
 | |
| - PS2 - Fix start of streams being cut off when looping.
 | |
| 
 | |
| - Event API - Fix music system ignoring FMOD_EVENT_INIT_DONTUSENAMES if other
 | |
|               init flags are specified
 | |
| - Event API - Fix crash on some platforms when loading fev with interactive 
 | |
|               music in them.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.19.03 requires FMOD version 4.19.03,
 | |
|   4.18.03, 4.16.14 or higher
 | |
| * User created parent sounds that end up being sentences now respect 
 | |
|   FMOD_CREATESOUNDEXINFO::length, so that the length wont keep updating every 
 | |
|   time Sound::setSubSound is called.  If exinfo.length is 0, it will behave 
 | |
|   as it used to. (length changes when setSubSound is called)
 | |
| * Event API - FMOD_EVENT_CALLBACKTYPE_STOLEN is now *always* called whether or
 | |
|               not the stolen event was playing. Previously, it used to be called
 | |
|               *only* when the stolen event was playing.
 | |
| 
 | |
| 4/09/08 4.21.00 pre 2 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + PS3 - Added 'libaudio_latency' member to FMOD_PS3_EXTRADRIVERDATA to control
 | |
|         mixing latency.
 | |
| 
 | |
| - Stop Sound::deleteSyncPoint from allowing deletion of syncpoints from 
 | |
|   sounds that did not own the syncpoint.
 | |
| - Fix hang when When seeking a nonblocking stream, stopping it, then calling 
 | |
|   release on it very quickly.
 | |
| 
 | |
| - Event API - fix rare crash when loading non blocking sound banks.
 | |
| - Event API - EventSystem::preloadFSB/unloadFSB causing a crash in 
 | |
|               loadEventData/getEvent if 1 event pointed to 2 sound banks.
 | |
| - Event API - fix crash when calling 
 | |
|               Event::setPropertyByIndex(FMOD_EVENTPROPERTY_FADEIN/OUT)
 | |
| - Event API - stop reverb taking up excessive amounts of cpu time.
 | |
| 
 | |
| - Wii - Fixed extremely rare bug introduced in last release where a stream will
 | |
|         start and then stop straight away.
 | |
| 
 | |
| * PS3 - System::setDSPBufferSize not supported on PS3 anymore. Use
 | |
|         'libaudio_latency' member in FMOD_PS3_EXTRADRIVERDATA to control
 | |
|         latency.
 | |
| 
 | |
| 29/08/08 4.21.00 pre 1 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + PS3 - Added support for IT/XM/MOD/S3M/MIDI formats.
 | |
| 
 | |
| + FSBank - Added Mac support for MP2 and MP3 compression.
 | |
| 
 | |
| - Fix Sound::getOpenState from falsely reporting ready when in fact the stream
 | |
|   was still accessing the file, which would then in turn cause a block/stall in 
 | |
|   Sound::release.
 | |
| - Fix crash when playing a .it file which utilises echo and lowpass effects.
 | |
| - Fix rare timing-related crash in stream thread when releasing a stream
 | |
| - Fix small delay in audio when calling Channel::setPosition on a non blocking 
 | |
|   stream.
 | |
| - Delphi interface removed.
 | |
| - Fix switching 2D/3D mode not working on Wii hardware channels when using
 | |
|   Channel::setMode.
 | |
|  
 | |
| - Event API - fix crash related to EventSystem::preloadFSB/unloadFSB.
 | |
| - Event API - Fix some music system crashes that should return FMOD_ERR_MEMORY
 | |
| - Event API - Fix crash when playing an empty sound definition
 | |
| - Event API - Fix possible FMOD_ERR_INTERNAL when playing music themes with
 | |
|               empty segments
 | |
| 
 | |
| - PS3 - Fixed RSX memory being added to stats returned by FMOD::Memory_GetStats
 | |
|         when allocated using FMOD_MEMORY_SECONDARY memory callbacks.
 | |
| 
 | |
| 25/08/08 4.19.00 - Development branch release
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Event API - Added FMOD_MUSIC_CALLBACKTYPE_BEAT
 | |
| + Event API - Add preLoadFSB/unLoadFSB.
 | |
|   This replaces registerMemoryFSB/unregisterMemoryFSB.  Instead of passing 
 | |
|   just a memory block, you now pass an FMOD::Sound pointer.  This still allows 
 | |
|   you to use preloaded memory blocks, you just have to first create a sound 
 | |
|   with FMOD_OPENMEMORY_POINT.  New functionality - preload FSBs from disk, 
 | |
|   and preload FSBs into secondary ram such as SPU2 memory on Playstation 2.
 | |
| + Add priority parameter to System::createCodec and System::loadPlugin
 | |
| 
 | |
| + PS2 - Significant speed improvement streaming vag FSB files.
 | |
| + PS2 - Enable FMOD_SOUND_FORMAT_VAG support for user created sounds.
 | |
| 
 | |
| - Fix rare stream hang when stopping and starting same stream.
 | |
| - Reverb - fix crash when freeing events or channelgroups that had reverb
 | |
|            pointing to it.
 | |
| - Fix Sound::getMusicNumChannels returning incorrect count for MIDI.
 | |
| - Fix Sound::getOpenState not returning FMOD_OPENSTATE_SEEKING after calling 
 | |
|       Channel::setPosition on a non blocking stream.
 | |
| 
 | |
| - PS2 - Re-Fix 'semaphore count overflow' hang.
 | |
| - PS3 - RSX delay now happens when using RSX allocation callbacks or
 | |
|         FMOD_OPENMEMORY_POINT to RSX memory, not just when an RSX pool is
 | |
|         passed in through extradriverdata.
 | |
| - PS2 - Fix small memory leak on System::release.
 | |
| - Wii - Fix silence or corrupt sound in software pitch shift effect when 
 | |
|         FMOD_DSP_PITCHSHIFT_FFTSIZE is set to a value greater than 1024.
 | |
| 
 | |
| - Event API - Remove registerMemoryFSB/unregisterMemoryFSB.
 | |
| - Event API - Fix crash in EventParameter::setValue.
 | |
| - Event api - fix Event::setPaused not pausing time parameters.
 | |
| - Event API - Fix Event::getNumProperties giving bad value for simple events
 | |
| - Event API - Fix FMOD_EVENT_ERROR_ON_DISKACCESS not failing properly when
 | |
|               loading samples with FMOD_EVENT_NONBLOCKING
 | |
| - Event API - Fix events not loading with FMOD_EVENT_NONBLOCKING
 | |
|               after an FMOD_ERR_FILE_UNWANTED is encountered
 | |
| - Event API - Fix music system blocking when releasing streams
 | |
| 
 | |
| * Change Plugin API to use handles instead of indicies and priority has been added.
 | |
|     The following functions have had parameter changes or name changes.
 | |
|         System::loadPlugin          (now takes handle not index, also has priority parameter)
 | |
|         System::unloadPlugin        (now takes handle not index)
 | |
|         System::getPluginHandle     (new, use old index to get new handle)
 | |
|         System::getPluginInfo       (now takes handle not index, returns plugin type)
 | |
|         System::setOutputByPlugin   (now takes handle not index)
 | |
|         System::getOutputByPlugin   (now takes handle not index)
 | |
|         System::createDSPByPlugin   (used to be System::createDSPByIndex)
 | |
|         System::createCodec         (now has extra 'priority' parameter)
 | |
| 
 | |
| 12/08/08 4.19.00 pre 10 - Development internal update
 | |
| -----------------------------------------------------
 | |
| 
 | |
| + Add support for FMOD_SPEAKERMAPTYPE_51_PROTOOLS (L C R Ls Rs LFE mapping)
 | |
| + Add ability to specify lowpass filter gain per channel.
 | |
| + PS3 - System::getSoundRAM now works if RSX is allocated using
 | |
|         FMOD_MEMORY_SECONDARY memory callbacks.
 | |
| 
 | |
| - PS3 - Fixed possible rare hang/stall when playing sounds loaded into RSX.
 | |
| - PS3 - Fixed non-blocking streams having a bit of noise at the start of them when
 | |
|         a stream is started, stopped, and then another stream is played that re-uses
 | |
|         the same channel.
 | |
| - PS2 - Fix/change disk eject code to only do endless retry on disk eject error 
 | |
|         code rather than any file read error code.  Stops possible hang in game for
 | |
|         wrong reason.
 | |
| - PS2 - Fix possible alignment error messages in debug output.
 | |
| - Xbox 360 - Fix echo filter possibly crashing when calling DSP::setParameter.
 | |
| 
 | |
| - Event API - Fix EventSystem::unregisterMemoryFSB from leaving references in 
 | |
|               the event system, meaning it could crash if you tried to play one 
 | |
|               of these events and you had freed the memory for the FSB.
 | |
| 
 | |
| * PS3 - FMOD_MEMORY_TYPE_SECONDARY memory callbacks do not happen if an RSX pool
 | |
|         is specified in extradriverdata. ie RSX pool now overrides
 | |
|         FMOD_MEMORY_TYPE_SECONDARY rather than the other way around.
 | |
| 
 | |
| 6/08/08 4.19.00 pre 9 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Event API - Fix combination of distance parameter, and sound definitions 
 | |
|   playing inside a complex event causing small bursts of sound where the 
 | |
|   new sound definitions didnt have their volume updated on time.
 | |
| 
 | |
| 
 | |
| 6/08/08 4.19.00 pre 9 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Further/final fix for FMOD_Resampler_Linear rare crash, this time when 
 | |
|   combined with Channel::setPosition (or virtual voices) last noted in 
 | |
|   FMOD Ex 4.17.00 pre 5.
 | |
| 
 | |
| - Win - Changed default output mode detection method for better compatibility.
 | |
| - PS2 - Fix disk eject handling.  Sound::getOpenState now works properly.
 | |
| - PS2 - Fix 'semaphore count overflow' hang, issue was in SIFMD lib and had to 
 | |
|         be worked around.
 | |
| - PS2/PSP - Fix Channel::setReverbProperties Room parameter not working as 
 | |
|         documented.
 | |
| - PS3 - Fixed problem introduced in 4.19.00 pre 7 where sound could still crackle
 | |
|         and a channel with reverb was still audible even though it was paused.
 | |
| 
 | |
| 29/07/08 4.19.00 pre 8 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Profiler - Added support for per DSP CPU usage.
 | |
| 
 | |
| !- Fix various alignment issue bugs that could have caused static or 
 | |
|    random crashes.
 | |
| - Fix geometry not immediately occluding sounds when they play.
 | |
| 
 | |
| - PS3 - Fixed reverb setParameter sometimes not having any effect.
 | |
| - PS3 - Fixed setDelay with DSPCLOCK_END not being accurate, and sometimes 
 | |
|         being ignored altogether
 | |
| - PSP - Fixed 3D sound not attenuating.
 | |
| 
 | |
| - FSBankEx - Stop command line mode stealing focus from other applications.
 | |
| 
 | |
| 
 | |
| 25/07/08 4.19.00 pre 7 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Event API - Added 'type' to FMOD_EVENT_WAVEBANKINFO to determine if it is load 
 | |
|   into memory, stream, decompress into memory.
 | |
| 
 | |
| - Fix user FMOD_2D sound mode being ignored in favour of mode stored in the FSB.
 | |
| - Fix support for multichannel FSB files causing static / crash if 
 | |
|   System::setSoftwareChannels wasn't called with a high enough input channel 
 | |
|   count.
 | |
| - Fixed small performance issue when seeking within MPEG encoded FSB file.
 | |
|   Should avoid dma thrashing on ps3.
 | |
| - Fixed stall when calling System/Channel::getSpectrum.
 | |
| 
 | |
| - Xbox 360 - Fixed seek tables getting corrupted when opening the same FSB more
 | |
|   than once.  This could lead to seek times being very high, incorrect and 'buzzing' 
 | |
|   noises due to the mixer being stalled.
 | |
| - PS3 - Fixed rare case where volume will double up for a while when a sound
 | |
|         is played and others go virtual.
 | |
| - PS3 - Fixed paused sounds taking up excessive DSP time.
 | |
| - PS3 - Fixed Channel::setDelay() with FMOD_DELAYTYPE_DSPCLOCK_END not working.
 | |
| - PS3 - Added small stalls around RSX DMA transfers to fix the issue of audio
 | |
|         crackling and dropouts in PS3 SDK 240.
 | |
| - PS3 - Fixed buzzing sound when stopping a single channel introduced in previous
 | |
|         release.
 | |
| 
 | |
| - Event API - Stop one shot sounds wrongly retriggering automatically when 
 | |
|               finished.
 | |
| 
 | |
| 18/07/08 4.19.00 pre 6 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Event API - Added the MusicSystem::getInfo function (currently only starving
 | |
|               state is reported)
 | |
| + Event API - Added the EventProject::stopAllEvents function
 | |
| + Event API - Enabled memory usage reporting via EventSystem::getInfo and
 | |
|               Event::getInfo in logging/debug builds only.
 | |
|  
 | |
| - Fix FSB encryption showing key in encrypted file.
 | |
| - Fix mp2 files with emphasis/error correction bit turned on returning 
 | |
|   FMOD_ERR_FORMAT, issue introduced in 4.19.00 pre 2.
 | |
| 
 | |
| - Event API - Fixed freeEventData sometimes always returning FMOD_ERR_NOTREADY
 | |
| 
 | |
| - PS3 - Fixed stream stutter when a non-blocking stream is started in some
 | |
|         circumstances.
 | |
| - Wii - Fixed FMOD_File_SetDiskBusy(1) never returning while the disk is
 | |
|         ejected when a stream is playing.
 | |
| 
 | |
| 11/07/08 4.19.00 pre 5 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fixed crash when releasing a ChannelGroup that had a DSP unit attached to it.
 | |
| - Fixed sounds with tag data ending early when loaded from memory.
 | |
| - Fixed possible rare hang when playing mpeg data.
 | |
| 
 | |
| - Event API - Fixed FMOD_ERR_FILE_BAD when loading events with disabled effects
 | |
| - Event API - Fixed various problems with simple events
 | |
| - Event API - Fixed registerMemoryFSB to work with streamed wavebanks
 | |
| 
 | |
| - Linux - Fixed init error due to ALSA device enumeration and made ALSA device
 | |
|           arguments more robust.
 | |
| - Linux64 - Added missing fmodlinux.h file to release.
 | |
| - PS3 - Fixed rare buzzing sound when there are a lot of virtual voices
 | |
|         swapping in and out in.
 | |
| 
 | |
| * PS3 - Now built with SDK 240.001
 | |
| 
 | |
| 4/07/08 4.19.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + PS3 - Added new member 'rsx_pool_manager_in_mram' in FMOD_PS3_EXTRADRIVERDATA
 | |
|         to allow the overhead for the FMOD RSX pool memory manager to be in
 | |
|         MRAM.
 | |
| + Linux - Added the ability to specify arguments to ALSA record drivers via
 | |
|           a new extradriverdata struture for Linux, FMOD_LINUX_EXTRADRIVERDATA.
 | |
| + Optimized syncpoint memory usage. Faster load times when loading banks with
 | |
|   lots of syncpoints.
 | |
| + Event API - Added MusicSystem loadSoundData and freeSoundData functions
 | |
| + Update FMOD memory system. Using a memory pool is now much faster and less
 | |
|   prone to fragmentation.
 | |
| 
 | |
| + FSBankEx - added -z option to make message logging dissapear.
 | |
| 
 | |
| - Fix multichannel MP2/MP3 FSB (ie 4 channels and above) from swapping channels 
 | |
|   around when calling Channel::setPosition
 | |
| - Fixed certain output modes (OSS, ALSA, ESD and SoundManager) reporting no
 | |
|   drivers if devices are enumerated before System::init().
 | |
| - Fixed floating point exception in 3D calculations on some platforms.
 | |
| - Fixed potential crash on system release when using channel end callbacks to
 | |
|   play sounds.
 | |
| - Fixed channels not starting paused when played from a channel end callback.
 | |
| 
 | |
| - Event API - Fixed spurious FMOD_ERR_CHANNEL_STOLEN return from some functions
 | |
| - Event API - Made the music system respect soundbank type
 | |
| - Event API - Fixed crash when using FMOD_EVENT_INFOONLY events
 | |
| - Event API - Improved ordering of FSB search paths
 | |
| 
 | |
| - Linux - fixed potential segmentation fault when calling System::close() 
 | |
|           when using the ESD output mode.
 | |
| - Linux - tweaked the enumeration of devices for ALSA, it should now properly
 | |
|           show standard devices for all detected sound cards.
 | |
| - PS3 - Fixed slow allocation times when using a fixed memory pool passed in
 | |
|         through FMOD::Memory_Initialize. This was causing long load times on
 | |
| 	certain .fev files and banks.
 | |
| - PS3 - Fixed rare bug where Channel::setMode will have no effect.
 | |
| - Mac - Altered CoreAudio output mode to allow multichannel remapping when
 | |
|         set with the "Audio MIDI Setup" tool.
 | |
| - PS3 - Fixed possible SPU exception when too many FMOD DSP connections are
 | |
|         created.
 | |
| - Wii - Fixed software reverb not working properly.
 | |
| 
 | |
| - FSBankEx - fixed command line version not returning 1 to the shell when 
 | |
|   there was an error.
 | |
| 
 | |
| * Linux - the extradriverdata parameter for ALSA output mode has changed to a
 | |
|           structure pointer (FMOD_LINUX_EXTRADRIVERDATA). Use this structure
 | |
|           to supply arguments for output and record drivers. You must include
 | |
|           the new fmodlinux.h header for this new structure.
 | |
| * FSBankEx - Changed XMA encoder to use newer XMA2 encoder for mono/stereo sounds
 | |
|   to hopefully avoid bad data the older encoder version was producing rarely.
 | |
| 
 | |
| 24/06/08 4.19.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| - Fix Geometry::release not resetting occlusion values if it was the last 
 | |
|   object to be released.
 | |
| - Fix heavy stall in Channel::setPosition or FMOD_EVENTPROPERTY_TIMEOFFSET 
 | |
|   introduced in 4.19.00 pre 2 due to change in mp2/mp3 chirp/crash fix.
 | |
| 
 | |
| - Windows - fix crash on init if ASIO output was selected.  
 | |
|   Introduced in 4.19.00 pre 1.
 | |
| 
 | |
| 20/06/08 4.19.00 pre 2 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + PSP - Added FMOD_PSP_ChangeOutputMode function to fmodpsp.h to allow switching
 | |
|         of output mode from Simple Audio to libWave and vice versa on the fly.
 | |
| 
 | |
| - Fixed a memory corruption when loading an FSB with named syncpoints.
 | |
| - MP2/Mp3 - Fixed extremely rare crash or 'chirp' based on combination of 
 | |
|   source data, and seeking, which made the mpeg decoder think a frame was
 | |
|   mp2 when it was actually mp3, purely by chance on a random section of bits.
 | |
| - Fixed Channel::setSpeakerMix with FMOD_SPEAKERMODE_PROLOGIC, not positioning 
 | |
|   stereo sounds loaded in the rear speakers properly.
 | |
| - Fixed loop points point ignored in FSB streams.
 | |
| 
 | |
| - Event API - Fixed freeEventData sometimes always returning FMOD_ERR_NOTREADY
 | |
| - Event API - Fixed streams sometimes not playing in simple events
 | |
| - Event API - Fixed various issues with simple events
 | |
| 
 | |
| - FSBankEx - fix FSBANK_BUILD_DONTLOOPMEG buildflag not being allowed to be 
 | |
|   specified as a per waveform option.
 | |
| 
 | |
| - Win - WASAPI - Changed the way the Vista output mode interacts with the
 | |
|                  hardware to reduce stuttering.
 | |
| - Xbox360 - Fix file read error seeking in old multichannel XMA files.
 | |
| - PS3 - Fix audio stuttering when number of dsp buffers is set to a non-default
 | |
|         value that doesn't divide into 8.
 | |
| 
 | |
| 12/06/08 4.19.00 pre 1 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Add 'ConnectionPoint' Parameter to FMOD_REVERB_CHANNELPROPERTIES structure.
 | |
|   By default the dsp network connection for a channel and its reverb is between 
 | |
|   the 'SFX Reverb' unit, and the channel's wavetable/resampler/dspcodec/oscillator 
 | |
|   unit (the unit below the channel DSP head).   This parameter allows the user to 
 | |
|   connect the SFX reverb to somewhere else internally, for example the channel DSP 
 | |
|   head, or a related channelgroup.   Advanced users only.
 | |
| 
 | |
| - Fixed rare stall in System::playSound command.
 | |
| - Fix 2d sounds getting muffled by HRTF sometimes.
 | |
| - Fixed midi/mod/s3m/xm/it file playback crash introduced in previous release.
 | |
| - System::init() will now report FMOD_ERR_INITIALIZED if you try to initialize it
 | |
|   a second time. This holds true if the event system initializes the low level
 | |
|   system object for you, then you try to initialize it.
 | |
| 
 | |
| ! FSBankEx - Fixed bad FSB files being written out, introduced in previous release.
 | |
| - FSBankEx - Fixed MP2 looping sometimes not working
 | |
| - FSBankEx - Fixed command line version not parsing encrypt key if platform was
 | |
|              ps2/wii/gc/xbox360.
 | |
| 
 | |
| 
 | |
| - Event API - Fixed concurrent themes stopping prematurely
 | |
| - Event API - Fixed MusicSystem::setPaused sometimes stopping segment playback
 | |
| 
 | |
| 5/06/08 4.17.00 - Development branch release
 | |
| --------------------------------------------
 | |
| 
 | |
| + Event API - Added optimised codepath for "simple" events.
 | |
| + Added FMOD_INIT_SOFTWARE_REVERB_ON_FX flag so reverbs will connect to the
 | |
|   channel DSP head instead of the sound source, so reverb will apply after
 | |
|   all other connected effects.
 | |
| + Wii - Improve loading time of sound banks by 200% (may need to rebuild fsbs).
 | |
| 
 | |
| - Fix calling setMute on master channelgroup not muting newly played channels.
 | |
| - Removed a stall on a nonblocking stream when setting a subsound sentence.
 | |
| 
 | |
| - FSBankEx - Fix -s (disable seektables), add -t (dont interleave), make gui 
 | |
|   remember quality setting.
 | |
| - FSBankEx - PCM data is now written out as big-endian format if platform selected
 | |
| 	   is PS3. The allows FMOD_OPENMEMORY_POINT to be used properly.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 4.17.00 requires FMOD version 4.17.00
 | |
|   or higher in order to fully support all features
 | |
| * Older branches will load "simple" events but 4.17.00 or higher is required to
 | |
|   realize their full resource saving benefits.
 | |
| 
 | |
| 30/05/08 4.17.00 pre 7 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Add FMOD_SYSTEM_CALLBACKTYPE_BADDSPCONNECTION.  This now triggers if 
 | |
|   System::setCallback is used and the user has created a circular DSP connection.
 | |
|   This error check is now moved from DSP::addInput into the thread, to avoid a 
 | |
|   stall in the main thread.
 | |
| + Added "FMOD Event System - Best Practices For Programmers" document
 | |
| + Event API - Added member to FMOD_EVENT_LOADINFO to override category properties
 | |
| + PS2 - Add ability to call FMOD_File_SetDiskBusy from IOP.  User IOP modules must 
 | |
|         link with fmodiop.ilb
 | |
| 
 | |
| - Fix unnecessary file seek when mpeg decoder encounters a tag at the end of an mpeg.
 | |
| - Fix crash when looping certain mp3s created with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed stall in DSP::addInput by moving circular connection error check into mixer 
 | |
|   thread.  See new FMOD_SYSTEM_CALLBACKTYPE_BADDSPCONNECTION callback.
 | |
| 
 | |
| - PS2 - Fix FMOD_INIT_PS2_SWAPDMACHANNELS from making software mixed output silent.
 | |
| 
 | |
| - Event API - Fixed oneshot sounds not unpausing, therefore sounding like they 
 | |
|               never start.
 | |
| - Event API - Fixed problem with event property "3D Position Randomization"
 | |
| 
 | |
| - FSBankEx - Fix seamless looping encoder for stereo/multichannel/low samplerate 
 | |
|              mp3 encoded FSB files
 | |
| 
 | |
| * Changed System::setCallback to remove type parameter.  This isnt needed, just 
 | |
|   switch on all types of callback from the callback itself, and filter out ones
 | |
|   you don't care about.
 | |
| 
 | |
| * PS3 - Now built with SDK 230.001
 | |
| 
 | |
| 22/05/08 4.17.00 pre 6 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + FMOD_NONBLOCKING now applies to Channel::setPosition, and virtual voice 
 | |
|   swapping of streams, so that there is no main thread stall slowing the game 
 | |
|   down.
 | |
| 
 | |
| - Fixed memory leaks when loading it/mod/s3m/xm files.
 | |
| - Fixed error returned when trying to perform DSP additions on a hardware 
 | |
|   channel, now it reports FMOD_ERR_NEEDSSOFTWARE.
 | |
| - Fixed crash with FMOD Echo DSP caused by setting echo parameters as the unit
 | |
|   is being connected to a channel.
 | |
| - Fixed Channel::setDelay starting sounds earlier than it should.
 | |
| - Fixed FMOD_DELAYTYPE_DSPCLOCK_END time not being reset when a sound finishes
 | |
|   playing.
 | |
| - Fixed rare click heard when playing one sound then starting a second.
 | |
| - Fixed reverb wet mix being heard when starting a sound as paused, with reverb
 | |
|   enabled.
 | |
| 
 | |
| - FSBankEx - Stop cache files being generated if compression caching flag is 
 | |
|   not enabled.
 | |
| - FSBankEx - Stop mp3 encoder chopping end of sound off if disable loop encoding 
 | |
|   was specified.
 | |
| 
 | |
| - PS3 - Fixed further noise when connecting an effect to a DSP unit as an extra
 | |
|         output introduced in last release.
 | |
| - Wii - Fixed unaligned address crash when loading FSB.
 | |
| 
 | |
| 16/05/08 4.17.00 pre 5 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Optimized loading speed of FSB/WAV/MP2/MP3 files with markers/syncpoints.
 | |
|   An example file with a thousand markers is now 400ms to load rather than
 | |
|   12 seconds.
 | |
| 
 | |
| + PS3 - PS3 can now play up to 16 channel streams.
 | |
| + Wii - Added support for hardware Biquad filter.
 | |
| 
 | |
| - Fixed incorrect sound cone direction when using FMOD_INIT_3D_RIGHTHANDED.
 | |
| - Fixed extremely rare crash in mixer that is usually observed in the 
 | |
|   callstack in FMOD_Resampler_Linear.
 | |
| - Fixed hang in mp2/mp3 decoder introduced in previous version thanks to new 
 | |
|   multichannel support. 
 | |
| 
 | |
| - Win - Fixed memory leak when loading WMA files.
 | |
| - Win - Fixed geometry attributes not updating when both listener and channel
 | |
|         are stationary.
 | |
| - Wii - Now returns and FMOD_ERR_FORMAT instead of crashing when loading
 | |
|         invalid format with FMOD_OPENRAW.
 | |
| - PS3 - Fix opencallback from attachFileSystem not being called on PS3 only.
 | |
| - PS3 - Fixed noise when connecting an effect to a DSP unit as an extra output.
 | |
| 
 | |
| - Event API - Fixed crash when autopitch enabled but no parameters created
 | |
| - Event API - Fixed incorrect sound definition spawn behaviour when
 | |
|               "Maximum spawned sounds" has been reached
 | |
| 
 | |
| 2/05/08 4.17.00 pre 4 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Added FMOD_MEMORY_SECONDARY FMOD_MEMORY_TYPE flag to indicate that memory
 | |
|   should be allocated in secondary memory of the system (for example RSX on the
 | |
|   PS3).
 | |
| + Added new argument, 'memtypeflags' to FMOD::Memory_Initialize function to
 | |
|   specify which FMOD_MEMORY_TYPE flags will come through the memory callbacks.
 | |
| 
 | |
| + FSBank - Added -e [encryptionkey] to commandline.
 | |
| + FSBank - Added joint stereo encoding to multichannel mp2/mp3 files.  
 | |
|            Multichannel sounds now 40% to 50% smaller!
 | |
| + FSBank - Added loop declicking support to IMA ADPCM encoding.
 | |
| 
 | |
| - Fixed stream going mute if user set loop points that were behind the current 
 | |
|   stream playposition.
 | |
| - Fixed crash when attempting to play a parent stream when no subsound sentence
 | |
|   has been specified.
 | |
| - Fixed potential crash when using setSubSoundSentence to change the sentence of
 | |
|   a playing sound stream.
 | |
| - Fixed potential exception when calling release on multiple subsounds removed 
 | |
|   from one FSB.
 | |
| - Fix streams not heeding soundgroup volumes.
 | |
| 
 | |
| - Xbox 360 - Fixed hang when calling Sound::setSubSoundSentence on certain sized
 | |
|              XMA subsounds.
 | |
| - Win - Fixed WMA stream seeking to near the end of the file causing a hang.
 | |
| - Win - Fixed memory leak when loading WMA files.
 | |
| 
 | |
| - Event API - PSP - Fixed parameters with velocity not working properly.
 | |
| 
 | |
| - FSBank - Fixed ps2 reverb cores not being remembered on close.
 | |
| - FSBank - Fixed C headers being generated even though c headers was turned off.
 | |
| 
 | |
| * FMOD_MEMORY_PERSISTENT will no longer come through the memory callbacks unless
 | |
|   it is explicitly specified in 'memtypeflags' of FMOD::Memory_Initialize.
 | |
|   FMOD_MEMORY_XBOX360_PHYSICAL will continue to come through regardless of setting.
 | |
| * PS3 - RSX memory pool specified in FMOD_PS3_EXTRADRIVERDATA will be ignored if
 | |
|         FMOD_MEMORY_SECONDARY is specified in 'memtypeflags' of
 | |
|         FMOD::Memory_Initialize.
 | |
| 
 | |
| 24/04/08 4.17.00 pre 3 - Development internal update
 | |
| ----------------------------------------------------
 | |
| 
 | |
| + Xbox 360 / PS3 - Improved performance of DSP Echo when used with DSP::setSpeakerActive.
 | |
| + FSBank Added new 'low memory' mode for syncpoints with no names.
 | |
| 
 | |
| - Prevent crash when attempting to detach a shared subsound from its parent 
 | |
|   stream, now an appropriate error is returned.
 | |
| - Fixed a rare freeze in playback of MIDI files.
 | |
| - Removed limit from sending large DSP networks to fmod_profiler.
 | |
| - Fixed parent sound playback with no sentence returning FMOD_ERR_INVALID_PARAM
 | |
|   instead of FMOD_ERR_SUBSOUNDS.
 | |
| - Fix FMOD_SOUNDGROUP_BEHAVIOR_MUTE and fading not working with hardware voices.
 | |
| - Fixed tags so 16bit Unicode strings will have a proper 2 byte null terminator.
 | |
| 
 | |
| - Wii - Fixed crash when shutting down.
 | |
| - PS3 - Fixed crash when using DSP Echo.
 | |
| 
 | |
| * FSbank - Update FSBankLib documentation.
 | |
| * If using single subsound FSB streams you can now detach the subsound them from the
 | |
|   parent stream and add it to a user created sound stream for sentencing.
 | |
| 
 | |
| 18/04/08 4.17.00 pre 2 - Development internal update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added DSP::set/getSpeakerActive. Allows the user to turn off processing for a
 | |
|   DSP effect on a channel by channel basis to reduce CPU overhead.
 | |
| + Reduced memory used by DSP Flange.
 | |
| 
 | |
| - Fixed HRTF not fading properly when pitching up-side-down.
 | |
| - Fixed uninitialized channelgroup DSP members causing crash on calling some
 | |
|   DSP functions.
 | |
| - Fixed sample sentence crashing when mixing samples and streams or when trying
 | |
|   to use a sentence of samples with FMOD_HARDWARE.
 | |
| - Fixed mod/s3m/xm/it/midi crash introduced in last version.
 | |
| - Fixed FMOD_SOUNDGROUP_BEHAVIOR_MUTE behavior.
 | |
| - Fixed FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST not invalidating/reference counting
 | |
|   the old channel handle.
 | |
| 
 | |
| - PS3 - Fixed extremely rare bug where a channelgroup will go silent.
 | |
| 
 | |
| - Profiler - made screen capture feature more obvious and fixed a problem where
 | |
|              the produced image was at the current zoom level, it should save
 | |
|              at the default zoom level for readability.
 | |
| 
 | |
| - Event API - Fixed leaking streams
 | |
| - Event API - Minor improvement to stream pool utilisation
 | |
| 
 | |
| 11/04/08 4.17.00 pre 1 - Development internal update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Optimized playsound to not recalculate 3d position multiple times.
 | |
| 
 | |
| + PS3 - Remove stall when setting sfx reverb parameters.
 | |
| 
 | |
| - Fixed crash when releasing system object after a profiler initialization error.
 | |
| - Fixed setInputChannelMix not taking effect until the next System::update with 
 | |
|   3d sounds.  (2d worked ok).
 | |
| 
 | |
| - Wii - Fixed instance 0 system reverb properties being overwritten when setting
 | |
|         instance 1 properties.
 | |
| - Linux - Tweaked ALSA output mode to better support requested DSP buffer
 | |
|           sizes.
 | |
| 
 | |
| - Event API - Fixed network tweaking crash between Windows and Mac.
 | |
| - Event API - Fixed oneshot events with sounds with loop counts not stopping
 | |
| - Event API - Fixed 3D Pan effect to be relative to the Event 3D Pan level
 | |
| 
 | |
| * PS3 - Now built with SDK 220.002
 | |
| 
 | |
| 4/04/08 4.15.00 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added 'debugLogFilename' to FMOD_ADVANCEDSETTINGS to allow user to specify 
 | |
|   log path / name.
 | |
| + Added 'FMOD Profiler' application to Win32 and Mac to replace existing DSPNet
 | |
|   Listener tool. The new tool provides existing functionality along with a real
 | |
|   time CPU usage graph.
 | |
| + Add Sound::getMusicNumChannels, Sound::setMusicChannelVolume, 
 | |
|   Sound::getMusicChannelVolume, to allow mod/s3m/xm/it/midi volume manipulation
 | |
|   of music channels.
 | |
| + Add multichannel support for FSB MP2 encoding.
 | |
| + Added a system callback for when a thread is created, this callback will
 | |
|   report the name and the ID of the thread.
 | |
| + Added ability to specify which port FMOD listens on for connections from
 | |
|   FMOD Profiler. This is exposed through FMOD_ADVANCEDSETTINGS.
 | |
| + Added support for FMOD Profiler to connect to applications on Mac, Linux,
 | |
|   Linux64 and Solaris.
 | |
| + Added FMOD_DELAYTYPE_DSPCLOCK_END to Channel::setDelay/getDelay
 | |
| + PS3 - Enabled DTS support.
 | |
| + Optimize DSP disconnection code, huge speed improvement.
 | |
| + PS3 - Added FMOD_INIT_PS3_PREFERDTS init flag to prefer DTS over Dolby Digital
 | |
|         if both are supported.
 | |
| + PS3 - Added FMOD_INIT_PS3_FORCE2CHLPCM init flag to force output to stereo LPCM.
 | |
| + PS3 - Enable System::setDSPBufferSize for numbuffers only.
 | |
| + PS3 - SPU performance improvements due to new GCC Toolchain.
 | |
| + Reduce memory usage of DSP Echo filter.
 | |
| + Xbox 360 / PS3 - Speed optimized DSP Echo filter.
 | |
| + PS3 - Enable AIFF support.
 | |
| 
 | |
| + Event API - Improved memory usage
 | |
| + Event API - Added "RoughSequence" event to example project
 | |
| + Event API - Added support for sound instance "Autopitch parameter" property
 | |
| 
 | |
| - Reduce System::update / EventSystem::update overhead.
 | |
| - Fixed FMOD_OPENSTATE_STREAMING not being set for FSB subsounds.
 | |
| - Fix FMOD_REVERB_CHANNELPROPERTIES with a non existent reverb instance 
 | |
|   causing crash.  Now returns FMOD_ERR_REVERB_INSTANCE.
 | |
| - Fixed stack overflow when playing 8ch mpeg FSB files.
 | |
| - Fixed config screen not updating on certain VST plugins.
 | |
| - Fix System::setReverbProperties sometimes returning an error.
 | |
| - Fix mp3 decoder seeking back to 0 if the seek or loop position was less
 | |
|   than an mpeg frame size.
 | |
| - Fixed 64-bit pointer corruption
 | |
| - Fixed Unicode check on http/https urls being passed to System::createSound/Stream
 | |
| - Fixed crash when using plugins version of FMODEx with certain output modes.
 | |
| - Fixed certain codec plugins crashing on load.
 | |
| - Fixed hardware virtual voices not becoming real again.
 | |
| - Fixed occasional crash when playing multichannel mp3 fsbs.
 | |
| - Fixed threading issue with SoundGroups
 | |
| - Fixed memory corruption in DSPChorus when the number of input channels is
 | |
|   greater than the number of channels being output by the system.
 | |
| - Fixed voices gradually going virtual over time.
 | |
| - Fixed unimportant virtual voices not ending at the right time and then 
 | |
|   starting later when they should in fact have stopped long before that time.
 | |
| - Fixed DSPConnection::getLevels from causing a bad memory write.
 | |
| - Fixed accuracy of Channel::getPosition with stream playback.
 | |
| - Fixed crackling when using System::playDSP and reverb.
 | |
| - Fix calling addDSP twice in a row with the same object/parameter causing
 | |
|   infinite loop.
 | |
| - Fix Channel::getAudibility not taking SoundGroup mute volume into account.
 | |
| - Fix crash in second System::init call if first System::init call returned
 | |
|   FMOD_ERR_OUTPUT_CREATEBUFFER.
 | |
| - Fixed SoundGroup with FMOD_SOUNDGROUP_BEHAVIOR_MUTE behaviour, and 
 | |
|   FMOD_INIT_VOL0_BECOMES_VIRTUAL used, not going virtual immediately, but only
 | |
|   after moving the 3d source or listener.
 | |
| - Fixed MIDI notes sometimes getting suck on (sustain forever).
 | |
| - Fixed crash when using FMOD_INIT_ENABLE_PROFILE with large DSP networks.
 | |
| - Fixed System::setAmbientReverbProperties not enabling reverb before a 
 | |
|   createReverb call.
 | |
| 
 | |
| - Win32 - Fixed memory error being returned when enumerating a system with
 | |
|           more input devices than output devices.
 | |
| - Mac - fixed useplugins example Makefile to correctly link with plugins dylib.
 | |
| - Mac - Fixed issues with applications using event loops.
 | |
| - Mac - Fixed init failure on certain recording devices such as the 
 | |
|         iSight camera.
 | |
| - PS2 - Fixed garbled noise when mixing mono and stereo sounds in an FSB vag stream.
 | |
| - PS3 - Fixed problems with distortion effect for high values of FMOD_DSP_DISTORTION_LEVEL.
 | |
| - PS3 - Fixed very rare pops when playing sounds.
 | |
| - PS3 - Fixed crash when inserting a DSP effect in a certain DSP tree configuration.
 | |
| - PS3 - Fixed occasional popping coming from mixer with a busy DSP tree.
 | |
| - PS3 - FIxed distortion when rapidly updating DSP SFX Reverb parameters.
 | |
| - PS3 - fix chirp noise when sound ends.
 | |
| - PS3 - Fixed occasional crackling in DSP Echo filter.
 | |
| - GC/Wii - Fixed file access alignment issue if user file callbacks were used.
 | |
| - PS3 - Fixed echo not working on 8 channels.
 | |
| 
 | |
| - FSBankEx - Fixed caching sometimes not working
 | |
| - FSBankEx - fix .fsbcache directory from not working on unix style environments 
 | |
|              by changing '\' to '/'.
 | |
| - FSBankEx - Fixed FSBs built from cache being slightly different to original
 | |
| - FSBankEx - Fixed crash when using MP2/MP3 compression with small files
 | |
| 
 | |
| - Event API - incorrect mute behaviour with getEvent and category mute fixed.
 | |
| - Event API - stopped releasing an event from a stop callback of the 
 | |
|               same event causing a recursive loop and crashing.
 | |
| - Event API - Fix memory corruption from logging system when releasing
 | |
|               an event (fmodexL only).
 | |
| - Event API - Fixed MusicPrompt::begin to support theme start segments with
 | |
|               cue conditions
 | |
| - Event API - Fixed EventProject::release to reset the music system before
 | |
|               freeing music data (prevents crashes)
 | |
| - Event API - If the transition timer is running and the main theme ends,
 | |
|               start the target theme immediately (don't wait for the timer)
 | |
| - Event API - Fixed event "Steal quietest" max playbacks behaviour sometimes
 | |
|               erroneously falling back to "Steal oldest"
 | |
| - Event API - Fixed endian issues in music data loading which broke music
 | |
|               playback on big-endian platforms
 | |
| - Event API - Fixed MusicSystem::setPaused logic to handle beat syncing
 | |
|               correctly
 | |
| - Event API - Fixed music system applying tempo changes too early
 | |
| - Event API - Fixed memory leaks in music system
 | |
| - Event API - Fixed memory error due to sound definitions with no entries
 | |
| - Event API - Fixed music system crashing after restarting the event system
 | |
| - Event API - Fixed typos in FMOD_EVENT_PROPERTY speaker enumeration docs
 | |
| - Event API - Fixed music system handling of empty segments
 | |
| - Event API - Fixed network tweaking of category volume/pitch
 | |
| - Event API - Fixed rare silent sounds when primary parameter moved very quickly
 | |
| - Event API - Fixed network auditioning with FMOD_EVENT_INIT_DONTUSENAMES
 | |
| - Event API - Fixed 64-bit EventSystem::load failing with FMOD_ERR_MEMORY
 | |
| 
 | |
| * FMOD_INIT_ENABLE_DSPNET has been replaced with FMOD_INIT_ENABLE_PROFILE for
 | |
|   use with the new profiler tool.
 | |
| * When using FMOD_CREATESOUNDEXINFO, specifying a suggestedsoundtype of
 | |
|   FMOD_SOUND_TYPE_MPEG will now load any tag data which will also
 | |
|   allow loading of MPEG files with more than 4k of tags at the file start.
 | |
| * Event API - "Sequential" sound definitions are now continuous across 
 | |
|               freeEventData calls
 | |
| * .FEV file format updated! FMOD Designer 4.13.05 requires FMOD version 4.13.05,
 | |
|   4.12.05 or higher.
 | |
| * .FEV file format updated! FMOD Designer 4.13.06 requires FMOD version 4.13.06,
 | |
|   4.12.06 or higher.
 | |
| * On Mac when using the device list changed callback, the user must process the
 | |
|   application event queue to allow FMOD to detect device list changes.
 | |
| * System::setCallback now uses void* for commanddata1 and commanddata2
 | |
|   parameters instead of unsigned int for 64bit compatibility.
 | |
| * FMOD_DELAYTYPE_DSPCLOCK_PCM has been renamed to FMOD_DELAYTYPE_DSPCLOCK_START
 | |
|   to complement FMOD_DELAYTYPE_DSPCLOCK_END.
 | |
| * PS3 - Now built with GCC Toolchain 4.1.1.
 | |
| * PS3 - Name SPURS taskset to "FMOD".
 | |
| 
 | |
| 01/02/08 4.13.00 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added support for static samples to Sound::setSubSoundSentence.
 | |
| + Optimized DSP engine graph connection code.
 | |
| + Added "defaultDecodeBufferSize" for streams to FMOD_ADVANCEDSETTINGS.
 | |
| + Added new FMOD_MEMORY_TYPE, FMOD_MEMORY_PERSISTENT to indicate persistent
 | |
|   memory allocations which are freed when System::release() is called.
 | |
| + Added System::getDSPClock
 | |
| + Added a new system callback for memory allocation failures.
 | |
| + Added DSPConnection class.  New functions are
 | |
|         DSPConnection::getInput
 | |
|         DSPConnection::getOutput
 | |
|         DSPConnection::setMix
 | |
|         DSPConnection::getMix
 | |
|         DSPConnection::setLevels
 | |
|         DSPConnection::getLevels
 | |
| + Added parameters to Channel::setDelay/getDelay and added
 | |
|         FMOD_DELAYTYPE_END_MS
 | |
|         FMOD_DELAYTYPE_DSPCLOCK_PCM
 | |
|   as the delay types.  Sounds can now be started on a global DSP timeline
 | |
|   with sample accurate precision!  Great for interactive music.
 | |
| + Added System::getDSPClock, can use this value with the above 
 | |
|   Channel::setDelay command.
 | |
| + Added support for multiple software based reverbs.
 | |
|   EventSystem::setReverbProperties, System::setReverbProperties, 
 | |
|   can be used to specify the 'Instance' of reverb you want to use.
 | |
|   Channel::setReverbProperties can also be used to change wet/dry mix for
 | |
|   a channel for different reverb instances.
 | |
| + Added FMOD_OPENSTATE_STREAMING to replace FMOD_OPENSTATE_READY while
 | |
|   the streamer has a lock on a sound.  This way you can test for 
 | |
|   FMOD_OPENSTATE_READY to make sure it is safe to release a sound without 
 | |
|   it blocking the main thread.
 | |
| 
 | |
| + PS3 - Added support for custom DSP units.
 | |
| + Win64 - Added support for WASAPI and OpenAL output modes.
 | |
| + Xbox 360 - Sped up mp2/mp3 decoding by about 1.5-1.6x.
 | |
| + PS3 - Enabled getSpectrum support.
 | |
| + PS3 - Added support for FMOD_DSP_OSCILLATOR.
 | |
| 
 | |
| + Event API - All channels used by the event system now have their userdata
 | |
|               field set to the event instance handle that spawned them.
 | |
| + Event API - Sound::setUserData can now be used with "programmer" sounds
 | |
| 
 | |
| - Fixed Channel::stop rare crash if using System::playDSP (oscillators etc).
 | |
| - Fixed setting the volume of a channel to 0 then back to something non 0 while 
 | |
|   it was being played 'paused', causing start of sound to be chopped off, but
 | |
|   only when using FMOD_INIT_VOL0_BECOMES_VIRTUAL
 | |
| - Fixed Channel::getPosition on a stream getting confused to whether it was 
 | |
|   looping or not if Sound::setMode was called after System::playSound.
 | |
| - Fixed 3d reverb not updating environment when a Reverb3D::release was called.
 | |
| - Fixed FSB subsound streams not ending when being played.
 | |
| - Fixed a memory leak in MIDI codec.
 | |
| - Fixed crash when using DSound output mode with FMOD_CREATECOMPRESSEDSAMPLE
 | |
|   and FMOD_NONBLOCKING without specifing either FMOD_HARDWARE or FMOD_SOFTWARE.
 | |
| - Fixed MIDI playback timing calculation so it doesn't drift when a file has
 | |
|   tempo changes.
 | |
| - Stop user being able to release a sound that was already in the middle of 
 | |
|   being released from a channel callback (Sound::release calls channel callback)
 | |
| - Fixed FMOD_REVERB_CHANNELPROPERTIES::Room being ignored if 
 | |
|   System::setReverbProperties was called -after- Channel::setReverbProperties.
 | |
| - Fixed a memory leak when recording.
 | |
| - Fixed uninstaller leaving files behind.
 | |
| - Fixed various issues with example programs.
 | |
| - Removed memory fragmentation every time a stream was opened and removed 
 | |
|   call to realloc.
 | |
| - Fixed syncpoints in streamed FSBs calling no matter what subsound was playing,
 | |
|   as well as Sound::getNumSyncPoints/getSyncPoint returning incorrect values.
 | |
| - Fixed sounds with 1 syncpoint, or a syncpoint on position 0 only triggering 
 | |
|   once, or a looping sound with a syncpoint right at the end not triggering.
 | |
| - Removed the following functions in favour of the DSPConnection class.
 | |
|   DSPConnection handles are faster as they don't rely on indicies which need
 | |
|   to serialize and block the main thread against the mixer thread to be correct.
 | |
|         DSP::setInputMix    
 | |
|         DSP::getInputMix    
 | |
|         DSP::setInputLevels 
 | |
|         DSP::getInputLevels 
 | |
|         DSP::setOutputMix   
 | |
|         DSP::getOutputMix   
 | |
|         DSP::setOutputLevels
 | |
|         DSP::getOutputLevels
 | |
| - Fix behaviour when ChannelGroup::addDSP is used and virtual voices.
 | |
| - Fix software voices leaking in rare timing cases causing sound to drop out.
 | |
| - Reduced memory overhead for memory blocks in the memory manager.
 | |
| 
 | |
| - Linux - Fixed stuttering in ALSA recording.
 | |
| - Linux64 - Fixed example makefile errors.
 | |
| - Win32 - (Vista) Potentially reduced stuttering.
 | |
| - Win32 - (OpenAL) Disabled EAX-RAM feature for Creative XFI cards to improve
 | |
|           streaming performance.
 | |
| - Mac - Fixed crash when enumerating available devices quickly after a device 
 | |
|         removal, via the device list changed callback. 
 | |
| - Mac - Fixed potential problems with GUIDs from devices using unicode.
 | |
| - PS2 - Fix hang thanks to recursive criticalsections not being implemented.
 | |
| - PS3 - Fixed noise being played when an orphan dsp node is connected to FMOD
 | |
|         SoundCard Unit.
 | |
| - PS3 - fixed buzzing if a channel that has been split and re-combined in the 
 | |
|         dsp tree is paused.
 | |
| - PS3 - Fixed rare case where sounds on dsp the network that have more that 1
 | |
|         output, where the extra output is fed into a mixer unit, are not being
 | |
|         mixed in that mixer unit.
 | |
| - PS3 - Optimized DSP tree traversal speed to allow more voices to be played
 | |
|         when reverb is enabled.
 | |
| - PS3 - Fixed possible rare SPU crash.
 | |
| - PS3 - Fixed distortion/sound corruption when dsp effects are added to certain
 | |
|         dsp tree combinations.
 | |
| - Wii - Fixed problems with loading short, non-interleaved multichannel fsb
 | |
|         samples.
 | |
| 
 | |
| - Event API - Fixed envelope cache flags colliding with Channel Mix effect
 | |
|               flags (this could cause Channel Mix effects to work incorrectly).
 | |
| - Event API - Removed spurious use of new operator.
 | |
| - Event API - Resolved inconsistencies surrounding EventSystem::setMediaPath.
 | |
|               NOTE: Media path now requires a trailing slash/backslash as
 | |
|                     appropriate!
 | |
| - Event API - Improved FMOD_EVENT_INFO.positionms accuracy when events are 
 | |
|               paused and unpaused
 | |
| - Event API - Fixed envelope cache flags being incorrectly read from FEV files
 | |
| - Event API - Fixed channel mix effect not working on streamed sounds
 | |
| - Event API - Made EventSystem::init initialise the random number generator.
 | |
|               This fixes broken sound definition shuffling.
 | |
| - Event API - Various programmer report fixes.
 | |
| - Event API - Fixed events unexpectedly starting paused.
 | |
| - Event API - Fixed FMOD_ERR_EVENT_MISMATCH error on Wii.
 | |
| - Fixed incorrect path issue when using -b with fmod_designercl.
 | |
| - PS3 - Fixed all sounds dropping out for a small moment when a virtual voice
 | |
|         is swapped in.
 | |
| - Fixed rare crash when playing it/mod/s3m/xm files.
 | |
| 
 | |
| * When using FMOD_NONBLOCKING, if neither FMOD_HARDWARE nor FMOD_SOFTWARE is
 | |
|   specified, then FMOD will default to FMOD_HARDWARE which may cause an error
 | |
|   if hardware is not available.
 | |
| * Changed FMOD_DSP_SFXREVERB_DRYLEVEL to have default level of 0db instead of 
 | |
|   -10,000, to match what the docs were saying. (caused some confusion of stuff 
 | |
|   going silent if it was added with the default values).
 | |
| * Changed virtual voice behaviour.  Now the first time a sound plays, if it 
 | |
|   immediately steals a voice, the start of the sound will never be cut off, 
 | |
|   it will just delay the start of playback until the other voice has stopped.
 | |
|   FMOD_VIRTUAL_PLAYFROMSTART only affects sounds that swap in later because
 | |
|   their audibility/priority changed at a later date in relation to other voices.
 | |
| * Changed System::addDSP, Channel::addDSP, ChannelGroup::addDSP, DSP::addInput,
 | |
|   DSP::getInput, DSP::getOutput to now also return a DSPConnection handle. 
 | |
|   Optional, can be 0.
 | |
| * Changed EventSystem::getReverbProperties, System::getReverbProperties, 
 | |
|   Channel::getReverbProperties to require the instance you are talking about to
 | |
|   be set!  Otherwise you will get incorrect values or FMOD_ERR_REVERB_INSTANCE.
 | |
| * Renamed FMOD_REVERB_CHANNELFLAGS_ENVIRONMENT0
 | |
|           FMOD_REVERB_CHANNELFLAGS_ENVIRONMENT1
 | |
|           FMOD_REVERB_CHANNELFLAGS_ENVIRONMENT2
 | |
|           FMOD_REVERB_CHANNELFLAGS_ENVIRONMENT3
 | |
|   to
 | |
|           FMOD_REVERB_CHANNELFLAGS_INSTANCE0
 | |
|           FMOD_REVERB_CHANNELFLAGS_INSTANCE1
 | |
|           FMOD_REVERB_CHANNELFLAGS_INSTANCE2
 | |
|           FMOD_REVERB_CHANNELFLAGS_INSTANCE3
 | |
|   to make it align better with FMOD_REVERB_PROPERTIES::Instance member.
 | |
| 
 | |
| * FSBankEx - Change optimize samplerate from 'Further reduce rate by' to 
 | |
|   'Percentage of optimized rate' so 10 would now become 90 for example.
 | |
| * FSBankEx - Change samplerate optimization to allow scaling up to 1000%
 | |
|   instead of 100% (in case it scales too low for some wavs).
 | |
| 
 | |
| !* PS3 - SPU elfs are now embedded into the FMOD library. You no longer need to
 | |
|          load the elfs yourself. Use fmodex.a for SPU Threads and fmodex_SPURS.a
 | |
|          for SPURS.
 | |
| !* PS3 - spu_mixer_elfname_or_spursdata, spu_streamer_elfname_or_spursdata, 
 | |
|          spu_load_from_memory, force5point1 and attenuateDDLFE members removed
 | |
|          from FMOD_PS3_EXTRADRIVERDATA.
 | |
| 
 | |
| * Event API - EventSystem::setMediaPath has been changed to expect a path that
 | |
|               contains a trailing slash/backslash as appropriate. Failure to 
 | |
|               include this trailing seperator char will result in numerous
 | |
|               FMOD_ERR_FILE_NOTFOUND errors!
 | |
| * PS3 - Now built with SDK 210.001
 | |
| 
 | |
| 6/11/07 4.11.00 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added ability to change output driver at runtime.
 | |
| + Event API - Added a "Pitch randomization units" Event property in Designer.
 | |
|               If this property is set to a unit other than Octaves, the pitch
 | |
|               variation is snapped to exact multiples of that unit.
 | |
| + Event API - Added FMOD_EVENT_INIT_SEARCH_PLUGINS init flag.
 | |
| + Event API - Added ability to load .fev files from memory.
 | |
| + Event API - Added a "units" parameter to Event::setPitch/getPitch and
 | |
|               EventCategory::setPitch/getPitch, allowing the pitch to be set
 | |
|               and retrieved in the desired units
 | |
| + Event API - Added FMOD_EVENTPROPERTY_PITCH_OCTAVES/SEMITONES/TONES and
 | |
|               FMOD_EVENTPROPERTY_PITCHRANDOMIZATION_OCTAVES etc, allowing pitch
 | |
|               properties to be set and retrieved in the desired units
 | |
| + Event API - Added a "Spawn intensity randomization" Event property. The event
 | |
|               spawn intensity is randomized based on this value when
 | |
|               Event::start is called. Access via Event::setPropertyByIndex
 | |
|               with FMOD_EVENTPROPERTY_SPAWNINTENSITY_RANDOMIZATION
 | |
|  
 | |
|               
 | |
| + Added System::getDriverInfo and System::getRecordDriverInfo functions to
 | |
|   replace System::getDriverName and System::getRecordDriverName. They provide
 | |
|   the same functionality but now optionally provide GUIDs to uniquely identify
 | |
|   a driver. GUIDs are available from DSound, WASAPI and CoreAudio output modes.
 | |
| + fsbankex - Added ability to build multichannel Wii/GC/PSP/PS2 hardware banks
 | |
|              as non-interleaved so that they can be used with FMOD_MEMORY_POINT.
 | |
| + Added support for loading multichannel hardware banks built as non-interleaved
 | |
|   on supported platforms.
 | |
| + PS3 / Xbox 360 - Optimized SFX reverb.
 | |
| + Added version and build date to API docs
 | |
| 
 | |
| - Fix System::setDriver not allowing a switch to a driver with the same index.
 | |
| - Fix System::setDriver in driver-list-changed callback causing infinte loop if
 | |
|   desired driver is unsupported.
 | |
| - Fix Channel::setPosition with stream sentences that are not CD or FSB (ie 
 | |
|   user created sounds with user added subsounds.
 | |
| - Fix Channel::setSpeakerMix settings being overriden when virtual voices were 
 | |
|   swapping, which caused audible panning glitches.
 | |
| - Fix 4, 6 or 8 channel WAV/FSB not downmixing to stereo as it should be if a 
 | |
|   lower speakermode was selected (ie stereo).
 | |
| - Fix high priority sounds not being audible when played amongst a load of 
 | |
|   lower priority voices.
 | |
| - Fix Sound::getSubSound not seeking to the right sound if the sound was a stream.
 | |
| - Fix loop points on Sound::setSubSoundSentence.
 | |
| - Fix crash if Channel::stop was called from SyncPoint callback.
 | |
| - Fix Sound::getLength on FSB or CDDA sentences.
 | |
| - Fix 8ch+ sounds with DSP filters added causing corruption or NaN values being 
 | |
|   fed into the mixer.  Specifically when using compressor, highpass, lowpass, 
 | |
|   lowpass simple, itlowpass or parameq.
 | |
| - Fix FMOD_ERR_INVALID_PARAM return code if values > 8 were passed to 
 | |
|   Channel::set/getSpeakerLevels.
 | |
| - Fix FMOD filesystem and netstream support due to issue introduced in 
 | |
|   4.08.08.
 | |
| - Fixed bug introduced in 4.09.07 to do with stream crackling and bad behaviour
 | |
|   when seeking.
 | |
| - Fixed software stereo sounds coming out as mono when FMOD_SPEAKERMODE_PROLOGIC
 | |
|   is used.
 | |
| - Fixed rare case of streams giving bad data which could cause crash on XMA 
 | |
|   hardware or corrupted sound?
 | |
| - Fixed crash when loading MIDI files.
 | |
| - Stopped Sound::lock returning a large length if the length passed in was 
 | |
|   larger than the sound.  Now returns error.
 | |
| - Fixed problem with FMOD Highpass effect
 | |
| - Linux - Fixed crash due to incorrectly freeing memory.
 | |
| - Linux - Fixed freeze when recording with ALSA.
 | |
| - PS2 - Fixed FMOD_ERR_INVALID_PARAM being returned from System::createSound
 | |
|   and other file loading Event based functions.
 | |
| - Mac - Removed last bits of MP library to improve performance.
 | |
| - Mac - Added missing fmod_event_net.dylib to release.
 | |
| - Mac - Modified device list changed callback to trigger when the default input
 | |
|         or output device has changed.
 | |
| - PS3 - Fixed dsp effects having no affect if added directly to a System object,
 | |
|   or to a master channel group derived from System::getMasterChannelGroup.
 | |
| - PS3 - Fixed crash when loading .wav files.
 | |
| - Win32 - WASAPI, fixed overriding FMOD_SPEAKERMODE_RAW when doing System::init.
 | |
| - Xbox 360. Fixed seeking with XMAs with no seek table hanging machine if seek 
 | |
|   position was near end of sound.
 | |
| - Wii - Fixed not being able to re-play a stream after disk has been ejected
 | |
|   and re-inserted.
 | |
| - FSBankEx - Fixed FSB GUID always being regenerated when using encryption.
 | |
| - FSBankEx - upgrade allowed input channel count for wave files from 8 to 16.
 | |
| - Event API - Fix 'programmer sounds' using the parent FSB as the sound pointer
 | |
|               (instead of a subsound), crashing on a null pointer.  This is
 | |
|               typically if a sentence was attempted to be used as a programmer
 | |
|               sound.
 | |
| - Event API - Fixed automatic parameters (3d distance, listener angle, event
 | |
|               angle) to be read-only.
 | |
| - Event API - Fixed memory leak when using oneshot sounds.
 | |
| - Event API - Fixed issue with stolen / leaking channels.
 | |
| - Event API - Fixed FMOD_EVENT_ERROR_ON_DISKACCESS not working properly with
 | |
|               EventSystem::registerMemoryFSB.
 | |
| - PS3 - Fixed dry mix not being heard when using system reverb.
 | |
| 
 | |
| 
 | |
| * System::setDriver will no longer restore the original driver if the desired
 | |
|   driver is not supported. User must call System::setDriver with the index of
 | |
|   the original driver.
 | |
| * System::getDriverName and System::getRecordDriverName have been replaced with
 | |
|   System::getDriverInfo and System::getRecordDriverInfo as they now also provide
 | |
|   unique device GUIDs.
 | |
| * PS3 - Now built with Sony SDK200.002
 | |
| * Event API - Changed FMOD_EVENT_INFO struct numplayingstances/playinginstances
 | |
|               to numinstances/instances. Now all instances are returned, not 
 | |
|               just instances that are playing.
 | |
| * Event API - Event envelope value calculations are now cached for efficiency
 | |
| * .FEV file format updated! FMOD Designer 4.11.00 requires FMOD version 4.11.00,
 | |
|   4.10.00, 4.08.10 or higher.
 | |
| * FSBank now writes out FSB files with GUID so that multiple load instances of
 | |
|   the same FSB can be cached at runtime to save memory.
 | |
| * PS3 - DSP effects code is now streamed onto the SPU as it is needed. 
 | |
| 
 | |
| 1/11/07 4.09.07 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added FMOD_INIT_ENABLE_DSPNET and DSPNet Listener.exe application!  Now
 | |
|   you can visually view what is happening inside FMOD Ex's DSP network while
 | |
|   your application runs, over TCP/IP.
 | |
| + Added ChannelGroup::set3DOcclusion and ChannelGroup::get3DOcclusion. Final
 | |
|   Channel occlusion values are scaled by ChannelGroup values as for setVolume,
 | |
|   and so will be affected by both ChannelGroup occlusion and geometry (if any).
 | |
| + Added System::getRecordDriverCaps to WASAPI output mode.
 | |
| + Event API - Added the ability to prevent an event from being stolen by
 | |
|               returning FMOD_ERR_EVENT_FAILED from the
 | |
|               FMOD_EVENT_CALLBACKTYPE_STOLEN callback.
 | |
| + Event API - Added FMOD_EVENT_INFO.numplayinginstances and
 | |
|               FMOD_EVENT_INFO.playinginstances. Use these to get a list of
 | |
|               playing instances for a specific event. NOTE: You must initialise
 | |
|               these members before calling Event::getInfo!
 | |
| + Event API - Added maxdistance scaling for events with custom rolloff. See
 | |
|               Event::setPropertyByIndex and FMOD_EVENTPROPERTY_3D_MAXDISTANCE
 | |
| 
 | |
| - Fixed logic with SoundGroups if System::setSoundGroup was called after a 
 | |
|   sound was played.
 | |
| - Fixed a bunch of broken links and outdated names in the API documentation.
 | |
| - Fixed FMOD_DSP_LOWPASS_SIMPLE swapping lfe and rear left speaker around.
 | |
| - Replaced recording resampler to add support for upsampling.
 | |
| - Fixed doppler calculation to give more correct results when the channel is
 | |
|   moving away from the listener
 | |
| - Win32 Dsound - Fixed limited number of streams being able to be created using 
 | |
|   FMOD_HARDWARE | FMOD_3D.
 | |
| - Win32 - Fixed memory leak in OpenAL output mode.
 | |
| - Mac - added workaround for Digidesign drivers.
 | |
| - Mac - improved recording with Bluetooth devices.
 | |
| - PS2 - Fix multichannel FSB streams with more than 8 channels in them causing
 | |
|   streamer to crash.
 | |
| - PS2/WII/PSP/GC/Xbox1 - Fix Channel::setInputChannelMix not working on 
 | |
|   multichannel streams using FMOD_HARDWARE.
 | |
| - Event API - Fix FMOD_EVENT_INFO::positionms drifting over time.
 | |
| - Event API - FMOD_EVENT_INFO::positionms now takes note of Event::setPitch.
 | |
| - Event API - Fixed wavebank file close callback being needlessly deferred.
 | |
| - Event API - Improved memory fragmentation/wastage.
 | |
| 
 | |
| * Memory System - Changed mimumum malloc block size to 16 bytes instead of 64 
 | |
|                   bytes to lower rounding overhead on smaller mallocs.
 | |
| * ChannelGroup::addDSP - Changed behaviour of DSP connections so that dsp 
 | |
|   effects are below the channelgroup DSP head, instead of above it.  If you 
 | |
|   are doing manual DSP connections please take note of this.  See new graph
 | |
|   in documentation.
 | |
| * Event API - Changed Event::set3DOcclusion to use ChannelGroup::set3DOcclusion
 | |
|               rather than Channel::set3DOcclusion. This now interacts with 
 | |
|               geometry occlusion as described above.
 | |
| * Event API - Input members have been added to FMOD_EVENT_INFO! You must
 | |
|               initialise these members before calling Event::getInfo!
 | |
| 
 | |
| 18/10/07 4.09.06 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added System::setCallback, currently there is one available callback, to
 | |
|   be notified when the number of attached audio devices changes. (Windows
 | |
|   and Mac only for now).
 | |
| + Added the ability to query the number and names of input and output drivers
 | |
|   at runtime, with accurate results. (Windows and Mac only for now).
 | |
| + Added System::getRecordDriverCaps which provides similar information to
 | |
|   System::getDriverCaps but for input devices. (CoreAudio only for now).
 | |
| + Optimized FMOD_DSP_LOWPASS_SIMPLE and FMOD_DSP_ITLOWPASS effects.
 | |
| 
 | |
| - Fixed Xbox 360 music TRC for nested channelgroups
 | |
| - Fixed FMOD_DSP_ITLOWPASS from making a pop noise followed by silence 
 | |
|   in the whole mixer.
 | |
| - Fixed FMOD_DSP_TYPE_HIGHPASS from popping when large cutoff frequency 
 | |
|   changes were made, and also filter instability with high cutoff frequencies.
 | |
| 
 | |
| * PS3 - Now built with Sony SDK192.001
 | |
| * Mac - Improved performance by adding POSIX style semaphores. 
 | |
| * FMOD_DSP_HIGHPASS_CUTOFF has had minimum cutoff changed from 10hz to 1hz.
 | |
| 
 | |
| 12/10/07 4.09.05 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Enabled MIDI playback from DLS files without articulation information.
 | |
| + Added FMOD_TIMEUNIT_SENTENCE_SUBSOUND support to Channel::SetPosition.
 | |
| + Event API - Added FMOD_EVENT_INIT_UPPERCASE_FILENAMES init flag
 | |
| + Event API - Added parameter property "Keyoff on silence". Use this with oneshot
 | |
|               events to make a parameter keyoff when previously it would have 
 | |
|               ended. Put a sustain point in each sound and give your parameter a
 | |
|               very large velocity and you can effectively sequence oneshot sounds
 | |
|               together. Great for random dialog!
 | |
| 
 | |
| - Fixed MIDI playback chirping when using a DLS file that has shared wave sample
 | |
|   chunks.
 | |
| - Fixed incorrect number of channels tag for format 1 MIDI files.
 | |
| - Fixed Channel::getSpeakerLevels returning incorrect values.
 | |
| 
 | |
| - Sound::setSubSoundSentence 
 | |
| 	- Fix subsound 0 always being played instead of first entry in sentence.
 | |
| 	- Fix parent sound playback playing sentence incorrectly (subsounds were 
 | |
| 	  cutting  off early, seeking was incorrect)
 | |
| 
 | |
| - Fixed error when oneshot event finished before loading
 | |
| - PS3 - Fixed certain combinations of dsp units causing volume to double up 
 | |
| 	sometimes.
 | |
| - Event API - Fixed excessive memory usage bug
 | |
| - Event API - Fixed event refcnt problem
 | |
| - Event API - Fixed Event::getState() not returning FMOD_EVENT_STATE_LOADING when
 | |
|               stream seeking is in progress
 | |
| - Event API - Fixed leaking stream instances under very slow loading conditions
 | |
| - FSBank - Fixed error when building MP2/MP3 with waveform quality < 10
 | |
| 
 | |
| * Updated cdplayer example.
 | |
| * Added float checks to DSP::setParameter calls (for logging version).
 | |
| * Mac - Improved performance by implementing pthreads.
 | |
| 
 | |
| 05/10/07 4.09.04 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| + Added "initialseekposition" and "initialseekpostype" to FMOD_CREATESOUNDEXINFO,
 | |
|   these can be used to flush a stream to a specific position when it is created.
 | |
| 
 | |
| - Win32 - WASAPI / OpenAL - Fixed rare crash when closing FMOD.
 | |
| - Fixed incorrect MIDI playback in moments of silence.
 | |
| - Fixed MIDI file ending early when more than one tempo change was used.
 | |
| - Wii - Fix crash when shutting down FMOD if software mixer is enabled.
 | |
| - Fixed setparam threading issues in IIR filters
 | |
| - Event API - Optimized EventGroup::loadEventData so it doesn't flood async queue
 | |
| - Event API - Fixed crash when using "text" user properties
 | |
| 
 | |
| 01/10/07 4.09.03 - Development release update
 | |
| ---------------------------------------------
 | |
| 
 | |
| * Win32 - Changed FMOD_CAPS_HARDWARE_EMULATED to report only if user sets the 
 | |
|   hardware acceleration slider in XP to 'off' instead of just if the sound 
 | |
|   device doesn't support hardware mixing.  That can be checked with 
 | |
|   System::getHardwareChannels.
 | |
| 
 | |
| 29/09/07 4.09.02 - Development release update
 | |
| ----------------------------------------------
 | |
| 
 | |
| + Added "recommended startup sequence" for Windows apps.  Added to 3d example,
 | |
|   geometry example, and Windows platform specific issues tutorial in fmodex.chm.
 | |
| + Event API - Added FMOD_EVENT_CALLBACKTYPE_SOUNDDEF_SELECTINDEX callback. Use
 | |
|               this to programatically choose sound definition entries at runtime.
 | |
| 
 | |
| - Fixed FMOD_SPEAKERMODE_SURROUND not being configured as 5.0, and 
 | |
|   initialization failure if this mode was selected?
 | |
| - Fix FMOD_PRESET_OFF not clearing out reverb buffers meaning you were able to 
 | |
|   hear some left over reverb from the old setting when it was switched back on.
 | |
| - Fix memory leak if errors occured in random places during System::createSound
 | |
|   such as memory allocation failure or disk ejection.
 | |
| - Win32 - WASAPI - Fixed time sensitive crash when stopping a record. 
 | |
| - Event API - Fixed EventGroup::loadEventData always returning
 | |
|               FMOD_ERR_FILE_DISKEJECTED for a non-blocking load if it is called
 | |
|               again after the error. You can now call EventGroup::loadEventData
 | |
|               after the disk error has recovered to resume loading.
 | |
| - Event API - Fixed setting user properties when using "this_instance" = true
 | |
| - Fixed rare memory corruption issue when not using pre-alloced memory pool.
 | |
| - Event API - Fixed Event::getState only setting FMOD_EVENT_STATE_STARVING flag
 | |
|               if stream is looping.
 | |
| - Fixed c# wrapper compile error.
 | |
| - Wii - Fixed crash when loading a sound as FMOD_HARDWARE and FMOD_NONBLOCKING.
 | |
| 
 | |
| * PS3 - 7.1 to 2ch downmixing is now done using Sony's downmixer, not FMOD's.
 | |
|         This means that "2ch LPCM, Downmix from 7.1 LPCM" should be checked
 | |
|         rather than just "2ch LPCM" in PS3 Master Disc Specifications Form.
 | |
|         (Please refer to FMOD docs for more information).
 | |
| 
 | |
| 21/09/07 4.09.01 - Development release update
 | |
| -----------------------------------------------
 | |
| 
 | |
| + Slight speed up in fmod's default lowpass filter when it is set to 22khz 
 | |
|   cutoff.
 | |
| 
 | |
| - Fix hang in Sound::release if FMOD_INIT_STREAM_FROM_UPDATE was used.
 | |
| - Fix crash when loading MOD files.
 | |
| - Fix geometry system not updating occlusion properly if there was no delay
 | |
|   between calls to System::update.
 | |
| - Wii - Fix sounds being played out of both the WiiMote and main speakers if a
 | |
|         channel that was previously set to play out of the WiiMote is re-used
 | |
|         to play a sound out of the main speakers.
 | |
| - Linux - Fix ALSA playback sometimes playing no sound, but with the sound
 | |
|           position moving very fast.
 | |
| - Xbox360 - Fixed crash when loading an XMA format .fsb file compiled with
 | |
|             "small sample headers".
 | |
| 
 | |
| * Event API - FMOD_EVENT_INFO.positionms now takes into account
 | |
|               FMOD_EVENTPROPERTY_TIMEOFFSET
 | |
| * Event API - EventGroup::loadEventData now only loads waveforms referenced by
 | |
|               events in the EventGroup, not the whole .fsb
 | |
| 
 | |
| 17/09/07 4.08.00 - Official stable branch release
 | |
| -------------------------------------------------
 | |
| 
 | |
| + Added FMOD_VIRTUAL_PLAYFROMSTART.  Instead of a virtual voice swapping from 
 | |
|   virtual to real and playing at the correct offset according to time, this flag 
 | |
|   makes the sound play from the start.
 | |
| + Event API - Added a "Spawn Intensity" property to events; this is a
 | |
|               multiplier for the spawn frequency of all sounds in the event
 | |
| 
 | |
| - Fixed Memory_GetStats, it was reporting incorrect maximum usage values.
 | |
| - Removed FMOD_DONTRESTOREVIRTUAL.  If a user wants a sound to not come back 
 | |
|   from being virtual, they can call Channel::isVirtual and Channel::stop.
 | |
| - Recording - Fixed wasapi/mac clicking issues with recording.
 | |
| - Win32 - OpenAL - fixed potential stuttering issues with Windows Vista.
 | |
| - Win32 - OpenAL - fixed random crash when playing sounds.
 | |
| - Win32 - OpenAL - fixed incorrect capabilities being reported by some OpenAL
 | |
|                    software drivers.
 | |
| - PS2 - Fix support for incorrectly written .vag files which could cause a 
 | |
|   click noise at end.
 | |
| - Event API - Fix EventGroup::getState returning it was ready before loading had
 | |
|   actually finished.
 | |
| - Event API - Fix FMOD_File_SetDiskBusy / FMOD_File_GetDiskBusy when being used
 | |
|   in event api.
 | |
| - Event API - On machines with limited timers, the 'time' parameter could 
 | |
|   sometimes jump ahead to the end of the range all of a sudden, this has been 
 | |
|   fixed.
 | |
| - Event API - Fixed Event::getState not setting FMOD_EVENT_STATE_STARVING flag.
 | |
| - Event API - Fixed invalid handle error when network auditioning.
 | |
| - Event API - Fixed Event/EventCategory pause and mute logic so you can 
 | |
|   pause/unpause the master category or any parent categories without it screwing 
 | |
|   up the pause/mute state of the individual events.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 1.07.26 requires FMOD version 4.06.28,
 | |
|   4.07.26 or higher.
 | |
| 
 | |
| 7/09/07 4.07.25 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| - Fix 2d/3d pan morphing from not working properly with stereo and above sounds.
 | |
| - Fix sound cutting out using certain DSP network configurations 
 | |
|   (event categories/effects) with reverb enabled.
 | |
| - Wii - Fix FMOD_ERR_FILE_DISKEJECTED not being returned from FMOD_NONBLOCKING 
 | |
|   loads via Sound::getState.
 | |
| - Fix reverb having absense of 'diffusion'.  Switching diffusion from 100 to 99
 | |
|   then back to 100 would have also fixed it.
 | |
| - Event API - Fix EventProject::release not releasing reverb presets from memory.
 | |
| - Event API - Fix getState not returning errors from nonblocking loads.
 | |
| 
 | |
| 4/09/07 4.07.24 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Event API - Added an "(event angle)" parameter; any parameter with the name
 | |
|               "(event angle)" is automatically updated with the angle to the
 | |
|               listener from the event's forward vector (0 to 180 degrees).
 | |
| 
 | |
| - Fix channels not actually pausing properly if reverb was enabled.  
 | |
|   Introduced in 4.07.23.
 | |
| - Event API - Fixed 'just fail if quietest' when FMOD_EVENT_NONBLOCKING was 
 | |
|               used on events that weren't ready yet.
 | |
| 
 | |
| * Event API - Changed the name of the "(heading)" automatic parameter to
 | |
|               "(listener angle)" for greater clarity.
 | |
| 
 | |
| 3/09/07 4.07.23 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added initialsoundgroup to FMOD_CREATESOUNDEXINFO which is accessible via
 | |
|   the soundgroup even while asynchronously loading.
 | |
| + Added FMOD_DONTRESTOREVIRTUAL to flag sounds/voices that you don't want
 | |
|   to become real again after turning virtual.  (ie just let them be swapped
 | |
|   out but not back in to avoid sounds coming in and out and sounding weird)
 | |
| + Event API - Added a "(heading)" parameter; any parameter with the name
 | |
|               "(heading)" is automatically updated with the angle to the
 | |
|               event about the listener's up vector (-180 to 180 degrees).
 | |
| + Event API - Added a "3D Position randomization" property to sound
 | |
|               definitions; sound definition instances are offset from their
 | |
|               parent event by a random vector based on this value, recalculated
 | |
|               each time the sound is triggered
 | |
| + Event API - Win64 build now supports network auditioning.
 | |
| + PS3 - Added extra member, "maxPCMcodecs" to the FMOD_ADVANCEDSETTINGS. This
 | |
|         allows the user to set the maximum number of PCM voices (including streams)
 | |
|         that can be played at once.
 | |
|         This was previously set to the total number of software channels.
 | |
| + Event API - Added extra parameter, 'loadintorsx' to the
 | |
|               EventSystem::registerMemoryFSB function. When it is set to true,
 | |
|               the whole fsbdata will be copied into the RSX memory pool.
 | |
| 
 | |
| - Fixed performance issue with FMOD_PRESET_OFF not reducing cpu usage.
 | |
| - fixed MIDI playback issue where notes would play late causing several notes to
 | |
|   sound bunched together or out of place.
 | |
| - Channel::set3DOcclusion.  Fixed if directocclusion was set to 1.0, but 
 | |
|                    reverbocclusion wasn't and the reverb mix cancelling out
 | |
|                    instead of being audible.
 | |
| - Fix stream related crash.
 | |
| - Fix distortion noise with certain configurations of DSP network.
 | |
| - Removed FMOD_EVENTPROPERTY_TIMEOFFSETMS as it was found to be already
 | |
|           supported via FMOD_EVENTPROPERTY_TIMEOFFSET.
 | |
| - Win32 - OpenAL - fixed previous sound being heard when an channel was reused.
 | |
| - Win32 - OpenAL - fixed crash when using non-blocking and create compressed
 | |
|                    sample flags without specifying hardware or software mode.
 | |
| - Win32 - WASAPI - removed an un-needed error return in certain circumstances
 | |
|                    when initialising WASAPI output mode for Windows Vista.
 | |
| - Win32 - WASAPI - fixed stuttering on certain Vista machines.
 | |
| - Mac - fixed MIDI playback sounding poor when using MacOSX DLS file.
 | |
| - Mac - fixed crash during MIDI playback when using MacOSX DLS file.
 | |
| - PS3 - Fixed crash when releasing a DSP Chorus unit.
 | |
| - PS3 - Fixed hang when running for extended period of time.
 | |
| - Wii - Fixed FMOD_SOFTWARE sounds being distorted/garbled when speakermode is
 | |
|         set to FMOD_SPEAKERMODE_MONO.
 | |
| - Event API - Changed EventI spawn timer handling to improve accuracy somewhat
 | |
|               for small spawn times.
 | |
| - Event API - Fixed bad distance parameter calculation for head-relative events
 | |
| - Event API - Fixed automatic parameters to handle minimum > maximum correctly
 | |
| - Event API - Fix EventGroup::getState setting state to 'loading' forever if 
 | |
|   there happened to be an error creating a stream/sample in the FMOD_NONBLOCKING
 | |
|   thread.
 | |
| - Event API - Fixed oneshot events stopping when sounds with both
 | |
|               "Wait for Previous" and "Loop and cutoff" set are still playing
 | |
| - Event API - Fixed "Wait for Previous" sounds not being updated properly
 | |
| - Mac - Fixed recording resampling problems.
 | |
| 
 | |
| * Mac - it is no longer necessary to specify a DLS file when playing MIDI on
 | |
|         MacOSX as a default has been added pointing to "gs_instruments.dls".
 | |
| * Wii - Software mixer is now driven from FMOD's output polling mechanism rather
 | |
|         than the AX callback.
 | |
| * Updated 'virtual voices' tutorial.
 | |
| * PS3 - Now built with Sony SDK190.002
 | |
| 
 | |
| 21/08/07 4.07.22 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Event API - Added event property FMOD_EVENTPROPERTY_TIMEOFFSETMS. Use this to
 | |
|               specify an accurate time offset in milliseconds with no upper limit.
 | |
| 
 | |
| - More secure stream release fix, there was still a rare crash in stream thread 
 | |
|   if stream was released.
 | |
| 
 | |
| 20/08/07 4.07.21 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + PS3 - Added new pointer to CellAudioOutConfiguration member "cell_audio_config"
 | |
|         to FMOD_PS3_EXTRADRIVERDATA structure. This information can be used for
 | |
|         initialisation of Bink etc.
 | |
| + Optimized FSB memory consumption so it caches/shares header memory if an FSB 
 | |
|   is opened more than once.  Can save significant memory for streams with lots of 
 | |
|   sounds in them.
 | |
| + Event API - Added FMOD_EVENT_STATE_STARVING.  Streaming events may be playing, 
 | |
|   but not being fed data in time, so may be stuttering.  This flag gives this 
 | |
|   information.
 | |
| 
 | |
| - Removed FMOD_OPENSTATE_STOPPING flag.
 | |
| - Fixed hang to do FMOD_NONBLOCKING, streams, FMOD_OPENSTATE_STOPPING flag 
 | |
|   and Sound::release.  
 | |
| - Fixed remote tweaking of envelopes causing incorrect results and sometimes
 | |
|   a crash.
 | |
| - Fixed loading playlists from the Internet.
 | |
| - Fixed garbage data being returned when a sync point was never given a name.
 | |
| - Fixed bug where an error was returned when trying to play an FSB that contains
 | |
|   2 mono ADPCM channels interleaved (requires rebuild with fsbank).
 | |
| - Wii - Fixed voices occasionally playing with no volume.
 | |
| - Mac - Auditioning from the FMOD Designer tool is now enabled on Mac. Also an
 | |
|         FMOD_Event_Net library is provided to allow remote tweaking. 
 | |
| - Xbox360 - Fixed seeking not working for .xma files loaded as
 | |
| 	    FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - FSBank - Fixed Designer and FSBank not supporting sounds with > 6 channels
 | |
| - PS3 - Fixed rare MPEG SPU hang when initialising FMOD.
 | |
| - Upgraded Ogg Vorbis to version 1.1.3(Ogg) / 1.20(Vorbis) to fix rare seeking
 | |
|   crash.
 | |
| - PS3 - Fixed memory leak in AT3 codec.
 | |
| - Xbox360 - Fixed problems when mixing XMA banks with seeking disabled and 
 | |
|             XMA banks with seeking enabled.
 | |
| - Win32 - Fixed a problem with Vista WASAPI output mode, initial enumeration
 | |
|           should not report an error when no default input device is detected.
 | |
| - Wii - FMOD_ERR_FILE_DISKEJECTED is now returned if there is a disk retry error,
 | |
|         rather than hanging.
 | |
| - PS3 - Fixed sound corruption when trying to seek a PCM voice.
 | |
| 
 | |
| * Xbox360 - If an XMA FSB bank is built without a seek table, when seeking,
 | |
|             FMOD will do a *non-accurate* CBR seek rather than not seeking
 | |
|             at all. 
 | |
| 
 | |
| 2/08/07 4.07.20 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added FMOD_SPEAKER_SBL/FMOD_SPEAKER_SBR to make it clearer what speakers are
 | |
|   being addressed on PS3.  (On PS3, extra 2 speakers in 7.1 are located behind 
 | |
|   the listener instead of to  the sides like on PC).
 | |
| + Added FMOD_OPENSTATE_STOPPING to denote that even though Channel::stop has 
 | |
|   been called on a stream, it is not actually stopped because the stream thread 
 | |
|   has not finished with it.
 | |
| + Added ability to call System::getNumHardwareChannels before System::init.
 | |
| + Added SoundGroup::setVolume, SoundGroup::getVolume, SoundGroup::stop.
 | |
| + Event API - Added get/setUserData functions to all Event API classes
 | |
| + Event API - Decreased memory usage/fragmentation.
 | |
| + Event API - Optimized .fev file format.
 | |
| + Event API - Added FMOD_EVENTPROPERTY_3D_POSRANDOMIZATION to specify a random
 | |
|               deviation in the 3D position of an event.
 | |
| + Event API - Added "Max playbacks" and "Max playbacks behavior" for event
 | |
|               categories: If too many events are playing in a category when
 | |
|               Event::start is called, an event is stopped according to "Max
 | |
|               playbacks behavior"
 | |
| + Xbox360 - Added support for XMA FSBs built without seek tables to save memory.
 | |
| + FSBank - Added the ability to disable seek table generation for XMA banks
 | |
|            with the FSBANK_BUILD_DISABLESEEKING build flag.
 | |
| + FSBank - Added the ability to override XMA filtering per waveform with the
 | |
|            new FSBANK_SAMPLE_DEFAULTS.buildflags member and the
 | |
|            FSBANK_BUILD_OVERRIDE_XMAFILTERHIGHFREQ build flag.
 | |
| + FSBank - Added the ability to disable syncpoint writing for wavebanks
 | |
|            with the FSBANK_BUILD_DISABLESYNCPOINTS build flag.
 | |
| + FSBank - Added the ability to specify source files from the command line.
 | |
| + FSBank - Added the ability to enable sample rate optimization via the GUI
 | |
|            and command line.
 | |
| 
 | |
| - Fixed hang if System::close was called directly after System::init in 
 | |
|   rare cases.
 | |
| - Fixed soundgroup causing a channelsteal but not calling channel end callback
 | |
|   for the stolen channel.
 | |
| - Fixed soundgroup crash.
 | |
| - Fixed Channel::isPlaying returning true from within channel end callback.
 | |
| - Fixed Sound::getName not working on streamed FSB file subsounds.
 | |
| - Removed stall when starting and stopping a stream.
 | |
| - Fixed reverb when switched on, then off with FMOD_PRESET_OFF
 | |
| - Fix channel not inheriting channelgroup properties (volume etc) when using
 | |
|   Channel::setChannelGroup 
 | |
| - Remove stall from Sound::release, System::createChannelGroup.
 | |
| - Win32 / Linux - Fix crackle when multiple system objects were used.
 | |
| - Win32 - Fix multichannel streams not coming out of speakers correctly thanks
 | |
|           to bad directsound behaviour.  Directsound only.
 | |
| - Win32 - Fixed WASAPI and OpenAL output modes causing a crash if stopped
 | |
|           before they are initialised.
 | |
| - Win32 - Fixed WASAPI pitch issue when Windows mix format didn't match the
 | |
|           FMOD default or user specified value.
 | |
| - Win32 - Fixed mono recording for WASAPI output mode.
 | |
| - Mac x86 - Fixed CDROM support, playback is no longer static noise.
 | |
| - Mac - Fixed FSBankLib, it now produces correct FSBs on Mac PowerPC.
 | |
| - Mac - Fixed crash during CoreAudio driver enumeration.
 | |
| - FSBank - Fixed FSBs being built having a default channel priority of 255
 | |
|            rather than the correct default of 128.
 | |
| - FSBank - Fixed non-sound files being added to file list based on file
 | |
|            extension
 | |
| - Fixed System::getAdvancedSettings sometimes returning too many ASIO channels
 | |
| - PS3 - Fix pcm voices returning FMOD_ERR_CHANNEL_ALLOC after 32 instances.
 | |
| - PS3 - Fix error being returned when loading interleaved streams of greater
 | |
|         than 6 channels. A maximum of 8 channels is allowed for PS3.
 | |
| - PS3 - Fixed hang in stream SPU thread if only 1 SPU is available due to SPU
 | |
|         thread not swapping.
 | |
| - PS3 - Fix memory still being allocated into MRAM rather than the given VRAM
 | |
|         pool when FMOD_LOADSECONDARYRAM is specified.
 | |
| - PS3 - Fixed reverb tails not sounding when a sound stops playing.
 | |
| - Xbox 360 - Fix music TRC issue with new game tracks starting in nested 
 | |
|              channelgroups/categories after music in dashboard had started.
 | |
| - Event API - Fixed threading issues.  Hangs/crashes if FMOD_EVENT_NONBLOCKING
 | |
|               was used.
 | |
| - Event API - "Just fail if quietest" was always stealing if "Max playbacks" = 1
 | |
| - Event API - "Just fail if quietest" wasn't taking into account event volume or
 | |
|               category volume.
 | |
| - Event API - Fixed FMOD_ERR_EVENT_MAXSTREAMS sometimes being returned even 
 | |
|               though less than "Max streams" had been created.
 | |
| - Event API - Fixed Event::getInfo returning incorrect projectid
 | |
| - Event API - Fixed FMOD_EVENT_CALLBACKTYPE_SOUNDDEF_RELEASE sometimes not being
 | |
|               called
 | |
| - Event API - Fixed problem with events with no parameters
 | |
| 
 | |
| - PS3 - Fixed occasional hang when rapidly starting up and shutting down FMOD.
 | |
| - Fixed performance spikes with virtual voices in System::update().
 | |
| - Wii - Fixed System::setSpeakerMix not working correctly.
 | |
| - Mac/Vista - Fixed rare recording crash.
 | |
| - Fixed setPosition on MPEG streams not always working correctly.
 | |
| - Wii - Fixed stall when calling Channel::setPaused.
 | |
| - Wii - Fixed no sound every playing out of 4th controller when
 | |
|         "muteremotespeakerifnosound" is set.
 | |
| 
 | |
| * FMOD_NONBLOCKING now affects Channel::stop / Event::stop for streaming sounds.
 | |
| * Changed sounds that go virtual upon playback, to delay their playback  instead
 | |
|   of cutting off the start of the sound.
 | |
| * XBox360 - Worked around XDK bug with Xbox Music Player notification, by
 | |
|             changing technique and functions used to detect dashboard music.
 | |
|             Should work now even with the broken XDK.
 | |
| * FSBank - Changed the FSBank_Build function signature. All the separate
 | |
|            integer flag parameters have been replaced by a single buildflags
 | |
|            bitfield of type FSBANK_BUILDFLAGS.
 | |
| * FSBank - Changed misspelt FSBANK_SAMPLE_DEFAULTS.optmisedratereduction
 | |
|            to FSBANK_SAMPLE_DEFAULTS.optimisedratereduction
 | |
| * Mac - FMOD libraries on Mac are now distributed as universal binaries
 | |
|         containing both x86 and PPC versions in one.
 | |
| * Event API - "3D Distance" parameters are now read-only.
 | |
| * PS3 - Now built with Sony SDK181.001
 | |
| * .FEV file format updated! FMOD Designer 1.07.20 requires FMOD version 4.06.23,
 | |
|   4.07.20 or higher.
 | |
| 
 | |
| 22/06/07 4.07.19 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added FMOD_SPEAKERMAPTYPE which includes FMOD_SPEAKERMAPTYPE_ALLMONO, 
 | |
|   FMOD_SPEAKERMAPTYPE_ALLSTEREO.  Used with new FMOD_CREATESOUNDEXINFO 
 | |
|   'speakermap' value, multichannel sounds can now be forced to a speakermap
 | |
|   that is either all channels go into the front center (allmono) or they
 | |
|   alternate as stereo pairs on front left/front right speakers.  Good for
 | |
|   multichannel interactive music.
 | |
| 
 | |
| + Event API - Added "waituntilready" parameter to EventGroup::freeEventData(). 
 | |
|               Use this to avoid blocking the main thread.
 | |
| + Event API - Added FMOD_EVENT_CALLBACKTYPE_EVENTSTARTED.
 | |
| 
 | |
| - XBox360 - Fix small streams not buffering when FSB and 
 | |
|             FMOD_CREATESOUNDEXINFO::initialsubsound was used.
 | |
| - Fixed Sound::setSubSound crash if the parameter was a stream.
 | |
| - Fixed crash when changing FMOD echo dsp parameters in low memory situation.
 | |
| - Fixed crash when using nested channelgroups and using System::close.
 | |
| - PS3 - Fix SPURS only hang when calling Channel::setPosition on an MPEG voice.
 | |
| - Event API - Fixed EventSystem::getNumEvents returning incorrect value after 
 | |
|               EventProject::release.
 | |
| - Event API - PS3 - Fixed Event::getInfo returning incorrect values for the 
 | |
|                     positionms member of FMOD_EVENT_INFO structure.
 | |
| 
 | |
| * Sounds with more than 6 channels now default to L/R alternating pan in the 
 | |
|   speakermap, every second channel starting from 0 being left, and every second
 | |
|   channel starting from1 being right.
 | |
| 
 | |
| 18/06/07 4.07.18 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + Added ability to be able to disable speakers from 3D calculation.  
 | |
|   Useful for things like disabling center speaker for dialog, or the LFE.
 | |
|   See renamed System::setSpeakerPosition change below.
 | |
| + Added ChannelGroup::set/getPaused, ChannelGroup::set/getMute.  These 
 | |
|   are different to override as now any new channels added to the group will 
 | |
|   respect the group's pause / mute state instead of ignoring it.
 | |
| + Added ASIOSpeakerList to FMOD_ADVANCEDSETTINGS and allow user to set a 
 | |
|   speaker list at runtime to remap FMOD speakers to ASIO channels.
 | |
| + Event API - Optimised update for events with dsp unit effects.
 | |
| + Added support for FMOD_OUTPUTTYPE_WASAPI - Native Vista audio support!
 | |
| + Added support for FMOD_OUTPUTTYPE_OPENAL - Considered beta.  Software 
 | |
|   mixes into OpenAL buffers, so that effects and realtime compressed samples 
 | |
|   still work, but the soundcard hardware takes care of 3d virtualization.
 | |
| 
 | |
| - XBox360 - Fixed XMA2 support for .xma files properly.
 | |
| - Fix 40 byte memory leak if 2 System objects were used in 1 application.
 | |
| - Fix .IT file playback crash.
 | |
| - PSP - Fix hang when releasing a stream if more than one is playing at a time.
 | |
| - Fix System::registerCodec from not working - bug introduced in 4.07.16.
 | |
| - Fix crash if FMOD_CREATESOUNEXINFO::initialsubsound was > 1 and a user 
 | |
|   created (FMOD_OPENUSER) multisubsound stream was used.
 | |
| - Fix Sound::setSubSoundSentence when first subsound was not index 0.
 | |
| - Fix audible glitch when starting an mp3 netstream.
 | |
| - Removed ChannelGroup::overridePaused, ChannelGroup::overrideMute.
 | |
| - PS2 - Fix cdrom0: loading issue with forward slashes.
 | |
| - Fix hang with FMOD_INIT_VOL0_BECOMES_VIRTUAL with channelgroups/events.
 | |
| - Fix performance issue with FMOD internal malloc routine.  Should notice big
 | |
|   improvement for large memory pools.
 | |
| - Fix FSB stream not ending if FMOD_CREATESOUNDEXINFO::initialsubsound was used.
 | |
| - Event API - Fixed 'steal oldest' and EVENT_INFO.positionms if using _reduced
 | |
|               versions of library with no software mixer (ie psp/ps2/wii).
 | |
| - Event API - Fixed leaking streams
 | |
| - Event API - Fixed crash if out of memory.
 | |
| - Event API - Wii - Fixed crash when playing more than 1 event with stereo 
 | |
|               samples at once.
 | |
| - Event API - Fixed event instances not taking their initial volume from their
 | |
|               INFOONLY event.
 | |
| - Event API - Updated docs for event callback types
 | |
| - Event API - Fix forwardslash/backslash issue with registerMemoryFSB.
 | |
| - Event API - Fix stack overflow if "" (empty string) was passed to getEvent.
 | |
| - FSBank - fix FSB files being generated which would cause memory overrwrites if
 | |
|            FMOD_OPENMEMORY_POINT was used and the data was PCM.  This also applies
 | |
|            to Event API - using registerMemoryFSB function.
 | |
| - Fixed crash in pitch shifter when setting the FMOD_DSP_PITCHSHIFT_MAXCHANNELS
 | |
|   parameter.
 | |
| - Fixed clicks in "Lowpass" dsp unit when changing cutoff frequency
 | |
| 
 | |
| * Changed System::set/getSpeakerPosition to System::set/get3DSpeakerPosition to 
 | |
|   give the function a more correct name and also add 'active' flag.
 | |
| * Channel::set3DPanLevel now affects doppler as well.
 | |
| * Changed Sound::getOpenState to return FMOD_OPENSTATE_ERROR in openstate and
 | |
|   whatever the error was if a fatal stream error occured.  This may happen with
 | |
|   an error such as FMOD_ERR_NET_SOCKET_ERROR for example.
 | |
| * The fsbankex utility now preserves the case of file names from the listing
 | |
|   file, rather than folding them to lowercase
 | |
| * Event API - When an event is stolen, FMOD_EVENT_CALLBACKTYPE_STOLEN is now called 
 | |
|               *before* FMOD_EVENT_CALLBACKTYPE_EVENTFINISHED, not after.
 | |
| *** Event API - FMOD_EVENT_SYSTEMINFO.numplayingevents field changed! It's no 
 | |
|                 longer a pointer!
 | |
| * PS3 - Now build with Sony SDK180.002
 | |
| 
 | |
| 5/06/07 4.07.17 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + Removed the "Spawn Intensity" sound definition property and re-introduced
 | |
|   the minimum and maximum spawn time properties. The spawn intensity layer
 | |
|   effect now scales the average spawn time by (1 / (envelope value))
 | |
| + Added new error code, FMOD_ERR_EVENT_MISMATCH, which is returned when a FSB
 | |
|   file doesn't matched a FEV file.
 | |
| + Added 'name' and 'index' to EventSystem::getReverbPresetByIndex / 
 | |
|   EventSystem::getReverbPreset to allow user to get id from name, and vice 
 | |
|   versa.
 | |
| + Speed up in FMOD memory allocation routines.
 | |
| * + Speed up in System::update when virtual voices swap.  CriticalSections 
 | |
|   removed so performance increase should be significant in this case.
 | |
| + Added FMOD_INIT_VOL0_BECOMES_VIRTUAL.  Any voices with volume or audibility 
 | |
|   of 0 will go virtual automatically!
 | |
| + Sped up MP3 decoding about 25%.
 | |
| + Added FMOD_ERR_FILE_DISKEJECTED and stopped the main thread hanging when 
 | |
|   the cd was ejected.  The load functions now return this error.  Only 
 | |
|   supported on Wii at the moment.
 | |
| + Added Channel::setInputChannelMix / getInputChannelMix.  Now a user can 
 | |
|   easily set the incoming levels of a multichannel sound, to set volumes of 
 | |
|   subchannels for things like interleaved multichannel music etc.
 | |
| + Event API - Added "playingevents" to FMOD_EVENT_SYSTEMINFO. Get a list of
 | |
|               all playing events in the event system.
 | |
| + Event API - Added FMOD_EVENT_INIT_FAIL_ON_MAXSTREAMS.  Events will fail 
 | |
|   with an error if this init flag is specified and "Max streams" was reached 
 | |
|   when playing streamed banks.
 | |
| + Event API - Added the "Channel Mix" effect, providing control over the
 | |
|   incoming levels of multichannel sounds in an event layer.
 | |
| 
 | |
| - Fixed Sound::getLength with FMOD_TIMEUNIT_PCMBYTES, when using a 
 | |
|   FMOD_CREATECOMPRESSEDSAMPLE sound.
 | |
| - Fixed Reverb::get3DAttibutes / EventReverb::get3DAttibutes not returning a 
 | |
|   valid value in maxdistance.
 | |
| - Fixed a crash if user ran out of memory while loading a .ogg file.
 | |
| - Fixed a crash if user ran out of memory while opening a stream.
 | |
| - Fixed XMA timeout on very small .xma files when /l option was used with 
 | |
|   xmaencode.exe.
 | |
| - Fixed rare stack corruption when using FMOD_NONBLOCKING 
 | |
| - Fixed FSB with mp3 data and mono/stereo sounds in the same FSB causing mono 
 | |
|   sounds to play at double pitch.
 | |
| - Fixed Sound::seekData not resetting codec properly, so causing an audible 
 | |
|   glitch.
 | |
| - Small quality fix to FMOD_DSP_LOWPASS_SIMPLE filter.
 | |
| - Fix buzzing noise in mixer after using Channel::setChannelGroup with reverb.
 | |
| - Fixed FMOD_INIT_SOFTWARE_HRTF not respecting Channel::set3DPanLevel.
 | |
| - Wii - fix sleep function leaking and causing hang in streamer after a long time.
 | |
| - Fixed logic behind System::set3DRolloffCallback when Channel::set3DMinMaxDistance 
 | |
|   is called.  Bug was that volumes were set/calculated incorrectly.
 | |
| - Fix timing in mod/s3m/xm/it playback.
 | |
| - Fixed virtual voice priority not updating if its ChannelGroup volume changed.
 | |
| - Event API - Fixed FMOD_ERR_INTERNAL when using FMOD_EVENT_NONBLOCKING with 
 | |
|               EventGroup::loadEventData.
 | |
| - Event API - Fixed projects with waves that were 2d and 3d not loading.
 | |
| - Event API - Wii - Fixed certain events not stopping when Event::stop is called.
 | |
| - Event API - Wii - Fixed certain looping events stopping by themselves when
 | |
|                     they shouldn't be.
 | |
| - Event API - Wii - Fix crash when using GCADPCM wavebanks.
 | |
| - Event API - Fixed problem where stolen events with non-zero "Fadeout"
 | |
|               would still be playing after they were stolen.
 | |
| - Event API - Fixed event "Max playbacks behaviour" "Just fail if quietest"
 | |
|               sometimes not working as expected.
 | |
| - Event API - Fixed disc access occuring sometimes even though registerMemoryFSB
 | |
|               was used.
 | |
| - Event API - Fixed events with fade in / fade out not calling 
 | |
|               FMOD_EVENT_CALLBACKTYPE_EVENTFINISHED if stopped soon after 
 | |
|               starting.
 | |
| - Event API - Fixed file handle leak in streamed banks.
 | |
| - Event API - If user mixed up FEV and FSB files, now returns 
 | |
|               FMOD_ERR_EVENT_MISMATCH instead of crashing.
 | |
| 
 | |
| * .FEV file format updated! FMOD Designer 1.07.17 requires FMOD version 4.06.20,
 | |
|   4.07.17 or higher.
 | |
| * Event API - FMOD_EVENT_CALLBACKTYPE_EVENTFINISHED is now always called
 | |
|               when an event is stopped by the user or naturally.
 | |
| * Updated FLAC to 1.1.4 to better support certain files.
 | |
| * Changed FMOD_CHANNEL_CALLBACKTYPE_END to trigger when Channel::stop is called, 
 | |
|   and also when a sound steals that voice and stops it.
 | |
| 
 | |
| 18/05/07 4.07.16 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added FMOD_INIT_SOFTWARE_HRTF.  This is a fake hrtf which just adds a lowpass 
 | |
|   filter to voices when they go behind you.  See FMOD_ADVANCEDSETTINGS for settings.
 | |
| + PS2 - Added FMOD_SPU_Alloc, FMOD_SPU_GetRawAddress, FMOD_SPU_Free to allocate
 | |
|   and reserve PS2 sound ram for use in other libraries.
 | |
| + PS2 - Added FMOD_SPU_ReserveVoice to stop fmod using certain hardware voices 
 | |
|   (again so that other libraries can use them).
 | |
| + Event API - Added c# wrapper and examples.
 | |
| + Event API - Can now set/get event properties per-instance as well as for all instances.
 | |
|   Added "this_instance" parameter to all setPropertyXXX and getPropertyXXX functions.
 | |
| + Event API - Added event property FMOD_EVENTPROPERTY_WII_CONTROLLERSPEAKER. Use this to 
 | |
|   play events on the Wii controller speakers!
 | |
| + Added recording downsampling. On platforms that only support recording at a
 | |
|   fixed rate (ie CoreAudio), it is now possible to record at any rate lower
 | |
|   than the hardware supported fixed rate.
 | |
| 
 | |
| - Stop rare cases of crashing if Sound::release was called while Sound::readData
 | |
|   was being called simultaneously in a different thread.
 | |
| - Event API - Clamped event "Max playbacks" to 1 on EventSystem::load if it's < 1.
 | |
| 
 | |
| * Event API - Enabled "Surround Pan" in hardware on Wii and Gamecube
 | |
| * Renamed FMOD_INIT_DISABLESOFTWARE to FMOD_INIT_SOFTWARE_DISABLE.
 | |
| * Renamed FMOD_INIT_OCCLUSION_LOWPASS to FMOD_INIT_SOFTWARE_OCCLUSION.
 | |
| 
 | |
| 11/5/07 4.07.15 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Event API - Added C wrapper. C users use fmod_event.h, C++ users use fmod_event.hpp
 | |
|   and fmod_event.h.
 | |
| + Added System::set3DRolloffCallback.  When FMOD wants to calculate 3d volume for a
 | |
|   channel, this callback can be used to override the internal volume calculation 
 | |
|   based on distance.  
 | |
| 
 | |
| - Fixed crash if quickly releasing sound while it is still in the process of loading 
 | |
|   with FMOD_NONBLOCKING
 | |
| - Wii - Fixed rare crash when playing looping GCADPCM fsb files with looppoints.
 | |
| - Wii - Fixed ProLogic not working correctly.
 | |
| - Fix Sound::release crash if subsound was released before parent, introduced in 4.07.15.
 | |
| - Fix Sound::release memory leak if subsound was released before parent.
 | |
| - Fix streams not ending when stream was certain size.
 | |
| 
 | |
| - Event API - Fixed a bug where oneshot sounds would retrigger if the
 | |
|               parameter left the sound and returned to it while it was playing
 | |
| 
 | |
| *** Event API - C++ users should now use fmod_event.hpp!
 | |
| *** Event API - Event callback signature has changed!  The parameter "FMOD::Event *event"
 | |
|                 is now "FMOD_EVENT *event" so you must cast back to FMOD::Event * to get
 | |
|                 old behaviour.
 | |
| *** Event API - EVENT_xxx values are no longer namespaced! You must put "FMOD_" in 
 | |
|                 front of them!
 | |
| 
 | |
| 9/05/07 4.07.14 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + PSP - Added support for FMOD_OPENMEMORY_POINT for hardware vag samples.
 | |
| + Added SoundGroup::setMaxAudibleBehavior/getMaxAudibleBehavior.  Determines what
 | |
|   happens if you exceed maxaudible count.  New behaviour modes include
 | |
|   - FMOD_SOUNDGROUP_BEHAVIOR_FAIL
 | |
|   - FMOD_SOUNDGROUP_BEHAVIOR_MUTE
 | |
|   - FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST
 | |
|   See docs for more on what they do.
 | |
| + Added SoundGroup::setMuteFadeSpeed/getMuteFadeSpeed.  Sets the fade
 | |
| + Event API - Added EVENT_STATE_LOADING to EventGroup::getState for determining if 
 | |
|   any event in the eventgroup is loading.
 | |
| + Event API - Added "Load into RSX memory" wavebank property (PS3 only)
 | |
|  
 | |
| - Fix blocking behaviour in System::playSound/System::update/
 | |
|   EventSystem::update/Event::start.
 | |
| - Fixed crash in some cases when calling Channel::setSpeakerLevels while
 | |
|   speakermode is set to FMOD_SPEAKERMODE_PROLOGIC.
 | |
| - Fix SoundGroup::setMaxAudible not allowing -1 as a parameter.
 | |
| - Fix crash in ogg vorbis codec if out of memory.
 | |
| - Fix crash using echo filters if out of memory.
 | |
| !- FSBankEx - Fix bug in 4.07.13 that introduced bad FSB output 
 | |
|  (Caused hang on Xbox 360 during play, sync points weren't exported).
 | |
| - Fix memory leak when using more than 1 System object.
 | |
| - Fixed non blocking streams with subsounds stalling main thread.
 | |
| - Fix rare Sound::release crash on Xbox 360 with XMA FSB files.
 | |
| 
 | |
| - Event API - Fixed a bug where oneshot sounds with "Wait for previous" set
 | |
|               didn't play at all if forced to wait
 | |
| - Event API - Fixed a bug where adjacent sounds could both play when only one
 | |
|               should play (if the parameter was exactly on the boundary)
 | |
| - Event API - Fixed a bug where parameters with velocity or seek speed could
 | |
|               skip sounds and syncpoints when the framerate was low
 | |
| - Event API - Event sustain points are now clamped to valid parameter range
 | |
| - Event API - Fixed a bug where sustain points could be written to .fev in the
 | |
|               wrong order
 | |
| - Event API - Fixed a bug where distance parameters weren't updated correctly
 | |
|               until the first EventSystem::update call after Event::start
 | |
| - Event API - Fixed parameter value rounding issue.
 | |
| - Event API - Fixed "programmer sound" with no parameter not working.
 | |
| - Event API - Fixed negative m_streamrefcnt spam.
 | |
| - Event API - Fixed 3D doppler factor not heeding listener speed.
 | |
| 
 | |
| * PS3 - FMOD libs now built with Sony SDK 170.003
 | |
| * Event API - Changed Event::getInfo lengthms calculation to return the length
 | |
|               of the longest sound definition
 | |
| 
 | |
| 26/04/07 4.07.13 - Dev release update
 | |
| ----------------------------------------
 | |
| 
 | |
| + Mac - Overhaul of CoreAudio output to fix compatibility with various sound cards.
 | |
| + Event API - Added support for individual layer priorities
 | |
| + Event API - Added "just fail if quietest" max playbacks behaviour
 | |
| + Added Reverb::setActive/getActive.
 | |
| + Added SoundGroups!  Now have the ability to group sounds and control their max 
 | |
|   playbacks.  More functionality will be added to this class in the future.
 | |
|   See new functions
 | |
|       System::createSoundGroup
 | |
|       System::getMasterSoundGroup
 | |
|       Sound::getSoundGroup
 | |
|       Sound::setSoundGroup     
 | |
|       SoundGroup::getSystemObject
 | |
|       SoundGroup::setMaxAudible
 | |
|       SoundGroup::getName
 | |
|       SoundGroup::getNumSounds
 | |
|       SoundGroup::getSound
 | |
|       SoundGroup::getNumAudible
 | |
|       SoundGroup::setUserData
 | |
|       SoundGroup::getUserData
 | |
| + Added FMOD_ERR_MAXAUDIBLE returned by System::playSound when 
 | |
|   SoundGroup::setMaxAudible is used.
 | |
| + PS3 - Added support for FMOD_DSP_TYPE_CHORUS effect.
 | |
| 
 | |
| - Event API - Fixed "don't play" sound definition entry.
 | |
| - Event API - Fixed oneshot events sometimes ending prematurely when used with 
 | |
|   EVENT_NONBLOCKING
 | |
| - Event API - Fixed broken "steal quietest" max playbacks behaviour
 | |
| - Event API - Fixed 3d cone values not taking effect until update was called.
 | |
| - Event API - Fixed crash when using EVENT_INIT_USER_ASSETMANAGER with events with
 | |
|   no parameters.
 | |
| - Event API - Optimised event system memory usage a little.
 | |
| - Event API - Removed 'EventReverb3D' class and EventSystem::create3DReverb.
 | |
| - Fix crash when System::createCodec was used.
 | |
| - Mac - Fixed hang on system release.
 | |
| - PS3 - Fixed "Too many DSP units" error/assert when using big event projects.
 | |
| - fsbank - PCM data is now written out as big-endian format if platform selected
 | |
| 	   is Xbox 360. The allows FMOD_OPENMEMORY_POINT to be used properly.
 | |
| - Wii - Fixed high pitched whining noise and sounds going silent when virtual
 | |
| 	voices are being swapped in and out.
 | |
| - Wii - Fixed hang when re-using a stream channel to play a new stream.
 | |
| - ASIO - Fixed 32bit output noise.
 | |
| - Fix midi/mod/s3m/xm/it files connecting their internal channels to reverb causing
 | |
|   extra cpu usage.
 | |
| - Stopped System::release hanging if user didn't manually release their
 | |
|   ChannelGroups.
 | |
| - Fixed streaming subsounds not ending sometimes, due to calling getSubSound while
 | |
|   another subsound was still playing.
 | |
| - Fix stereo sounds in 7.1 speaker mode not being audible if panned to side left or 
 | |
|   side right speakers.
 | |
| - Fixed various documentation issues.
 | |
| 
 | |
| * System::create3DReverb renamed to System::createReverb.
 | |
| * System::set/get3DReverbAmbientProperties renamed to 
 | |
|   System::set/getReverbAmbientProperties.
 | |
| * Replaced the following
 | |
|           Reverb::setPosition
 | |
|           Reverb::getPosition
 | |
|           Reverb::setMinRadius
 | |
|           Reverb::getMinRadius
 | |
|           Reverb::setMaxRadius
 | |
|           Reverb::getMaxRadius
 | |
|   with
 | |
|           Reverb::set3DAttributes
 | |
|           Reverb::get3DAttributes
 | |
| * All output plugins now present the default output and record driver as the first
 | |
|   item in the list. 
 | |
| * PS3 - FMOD libs now built with Sony SDK 160.008
 | |
| * Event API - Changed EventReverb3D class to be EventReverb and 
 | |
|   EventSystem::createReverb3D to EventSystem::createReverb.
 | |
| * Now instead of EventSystem::createReverb creating a pointless object, it simply 
 | |
|   returns the reverb property structure associated with the reverb.  New functions
 | |
|   are called EventSystem::getReverbPreset and EventSystem::getReverbPresetByIndex.
 | |
| * .FEV file format updated! FMOD Designer 1.7.13 requires 4.06.16, 4.07.13 or higher.
 | |
| 
 | |
| 16/04/07 4.07.12 - Dev release update
 | |
| ----------------------------------------
 | |
| 
 | |
| - Fix FMOD_ERR_CHANNEL_STOLEN error message being displayed, among other possible
 | |
|   bugs when mixing streams/samples.
 | |
| - Wii/GC/PSP/PS2 - Fixed corrupt sound at the start of a multichannel stream, if
 | |
|   it is created while another multichannel stream is currently playing.
 | |
| - Fixed extreme 3d velocities being passed into FMOD commands causing mixer crash.
 | |
| - Fix rare DSPConnection::mix/mixAndRamp crash.
 | |
| - Delphi header fixes.
 | |
| - Fixed non-blocking fsb streams flushing twice and Xbox360 XMA hang.
 | |
| - Fixed recording in PCM8 and PCMFLOAT formats.
 | |
| - Fixed access violation in Channel::stop if channel source is an oscillator
 | |
| - Fixed multichannel mp3 playing silent channels on non ps3 platforms.
 | |
| - Event API - Fixed resource management bugs.
 | |
| - Event API - Fixed EventParameter::setVelocity causing problems when called from 
 | |
|   event callback
 | |
| 
 | |
| 5/04/07 4.07.11 - Dev release update
 | |
| ----------------------------------------
 | |
| 
 | |
| + FSBank - add support for multichannel mp3 encoding from multichannel wave files.
 | |
| + Add support for multichannel mp3 encoded FSB playback.
 | |
| 
 | |
| - Event API - Fixed event categories not inheriting mute flag from parent category
 | |
|   during add.
 | |
| - Event API - Fixed newly created events not inheriting mute flag from category.
 | |
| - Event API - Fixed problem with streamed wavebanks that contain 2D and 3D subsounds.
 | |
| - Fixed 24-bit AIFF problems between fsb storage and readback.
 | |
| - Wii - Fixed hang when releasing stream while disk is ejected.
 | |
| - PS3 - Fixed output buzzing.
 | |
| - Fixed bad Pro Logic encode caused by using -3dB midpoint pan gain.
 | |
| - Fixed system flag FMOD_INIT_3D_RIGHTHANDED getting reset.
 | |
| - PS3 - Fixed rare popping when reverb is enabled.
 | |
| - Wii/GC - Fixed hardware lowpass being disabled whenever a channel is paused and
 | |
|            then unpaused.
 | |
| - Wii/GC - Fixed hardware channel reverb and lowpass properties not being preserved
 | |
| 	   when channel swaps from virtual to real.
 | |
| - Wii - Fixed FMOD_Channel_GetControllerSpeaker not returning the correct value.
 | |
| - Wii - Fixed normal speaker sounds sometimes playing out of the controller speaker
 | |
|         when channel swaps from virtual to real.
 | |
| - Wii/GC - Fixed problems when streaming mixed mono/stereo fsbs.
 | |
| 
 | |
| * PS3 - Release is now built using Sony SDK 1.54.001
 | |
| 
 | |
| 22/03/07 4.07.10 - Dev release update
 | |
| ----------------------------------------
 | |
| 
 | |
| + Event API - Added EVENTPROPERTY_TIMEOFFSET for adjusting start offset for all 
 | |
|   sounds in the event
 | |
| + Added "Reverb notes" to documentation
 | |
| 
 | |
| - Fixed bad subchannel locations when using 3D speaker spread for multichannel sources
 | |
| - Fixed sounds not starting when FMOD_SUPPORT_MULTIREVERB not defined.
 | |
| - FSBank - Added -n command line option to turn off C header file generation
 | |
| - PS2 / Wii / PSP / GC.  Fix stereo sounds coming out mono if Channel::setSpeakerMix was 
 | |
|   used, or the Event API was used (which calls Channel::setSpeakerMix internally).
 | |
| - PS2 / Wii / PSP / GC.  Fix linker error on 'reduced' versions of the libraries.
 | |
| - Fixed crash when alternating between recordStart and recordStop.
 | |
| - Wii - Fixed crash when passing invalid values to channel::setReverbProperties.
 | |
| - XBox360 - Fixed XMA2 support for .xma files.
 | |
| - Fixed truncated network file reads.
 | |
| - Event API - Fixed issue with EVENT_NONBLOCKING and streamed wavebanks.
 | |
| - Event API - Fixed crash when unloading events that are still loading asynchronously.
 | |
| - Event API - Fixed pitch envelope disabled by autopitch. Their effect is now cumulative.
 | |
| - PS3 - Fixed rare hang when trying to stop a sound.
 | |
| - PS2 - Fixed various memory/alignment issues.
 | |
| - PS2 - Fixed leaking voices.
 | |
| - Fixed crash when playing oscillators after normal sounds.
 | |
| - Event API - Fixed crash on freeEventData when same wavebank referenced by events in
 | |
|   multiple eventgroups.
 | |
| - FSBank - Fixed waveform compression quality not having any effect
 | |
| 
 | |
| * EVENT_WAVEBANKINFO::samplerefcnt is now per subsound reference so it will appear larger
 | |
|   than in previous versions
 | |
| 
 | |
| 1/03/07 4.07.09 - Dev release update
 | |
| ----------------------------------------
 | |
| 
 | |
| + Event API - Sound definitions : simplified spawn intensity parameter (replaces 
 | |
|   spawn min/max repeat time)
 | |
| + Event API - Added Spawn Intensity effect, a multiplier for a sound definition's 
 | |
|   spawn intensity parameter.
 | |
| 
 | |
| - Re-fix system reverb getting only one channel
 | |
| - PS2 - Fix crash on file close when using file callbacks.
 | |
| - Fix thread memory leak on stream free.
 | |
| - Removed spawn min/max repeat time parameters of sound definitions
 | |
| - Event API - Fixed event fadein/out fighting with Event::setVolume
 | |
| - Event API - Fixed "Reverb Dry/Wet Level" not working correctly for 2D events
 | |
| - Event API - Fixed EVENT_INFO positionms sometimes giving incorrect values
 | |
| - Wii - Fixed possible noise when playing some sub-streams.
 | |
| 
 | |
| 23/02/07 4.07.08 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added support for FMOD_OPENRAW + FMOD_CREATECOMPRESSEDSAMPLE + 
 | |
|   FMOD_SOUND_FORMAT_IMAADPCM.
 | |
| + Mac - Can now record in other formats besides FMOD_SOUND_FORMAT_PCMFLOAT with
 | |
|         CoreAudio output (default).
 | |
| 
 | |
| !- Fix voices 'leaking' or dropping out, when using FMOD_CREATECOMPRESSEDAMPLE.
 | |
|    Most likely last fix.
 | |
| - Fixed speaker levels not being set properly when voices go from virtual to real
 | |
|   again.
 | |
| - Win32 - Fix EAX with FMOD_HARDWARE not working (accidently disabled it during 
 | |
|   testing).
 | |
| - Fix mp2/mp3 setposition/looping not seeking to the right place.
 | |
| - Linux - Fixed link error in plugins version of library.
 | |
| - Mac - Fixed error when trying to initialize certain audio devices
 | |
| 	(PreSonus Firebox and possibly other devices).
 | |
| - Fix DSP effects added with Channel::addDSP not staying when the channel is 
 | |
|   swapped to be virtual and then becomes real/audible again.
 | |
| - Event API - Fixed oneshot events sometimes not triggering with EVENT_NONBLOCKING
 | |
| - Fix System reverb defaulting to one-channel mode with only one voice
 | |
| 
 | |
| 20/02/07 4.07.07 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Add gapless mp2/mp3 looping.  Use FSBank or FMOD designer to get this through
 | |
|   .fsb.  Will not work with normal .mp2/.mp3 files unless they have been 
 | |
|   preencoded properly to loop.
 | |
| + Add 5.1 XMA support.  This only works for .XMA files at the moment not FSB.
 | |
| 
 | |
| - Fixed seeking with FMOD_CREATECOMPRESSEDSAMPLE sounds not seeking to the right place.
 | |
| - Fixed multichannel sounds not playing properly when maxinputchannels is set to
 | |
|   anything other than 6.
 | |
| - Fixed channel->reverb gain initialisation for 2D events whose channel count 
 | |
|   matches output channel count.
 | |
| - Fixed reverb balance dry gain control for 2D events.
 | |
| - Fix mapping of 4.0 sound sources.
 | |
| - Fix Channel::setDelay causing channel to not stop / crash in System::update.
 | |
| - Wii - Fixed reduced release library printing debug messages.
 | |
| - XBox360 - Fixed "music" category not being paused properly in some cases if
 | |
|             dashboard music is playing before "music" has started playing.
 | |
| - PS3 - Fixed channels dropping sometimes when there are a lot of virtual voices.
 | |
| - Event API - Fixed EventSystem::load problem when loading events based on 
 | |
|   templates with no parameters.
 | |
| - Event API - Fix wait-for-previous mode in layer for play-to-end sounds
 | |
| - Event API - Fixed main thread blocking when using streamed wavebanks
 | |
| 
 | |
| * Event API - Changed EVENT_LOADINFO field "sounddefentrylimit" from a set number
 | |
|   to a 0 -> 1 multiplier e.g. 0.5 = half the number of sounddef entries.
 | |
| * Sound::GetSubSound with FMOD_NONBLOCKING streams will now go into seeking mode
 | |
|   if you call it on the same subsound index 2 times in a row, the second and 
 | |
|   further times returning FMOD_ERR_NOTREADY just as it would if you specified 
 | |
|   a different index than the one currently active.
 | |
| 
 | |
| 13/02/07 4.07.06 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| !- FSBank - Fixed bad FSB data being written out which could cause hang with XMA
 | |
|   and garbled sound on other formats.  This bug is present from 
 | |
|   4.07.02 to 4.07.05 inclusive.
 | |
| - Fixed very small memory leak in user created streams with multiple subsounds.
 | |
| - Fix doppler by defaulting Channel::set3DDopplerLevel to 1.0 like it should.
 | |
| - Event API - Fixed rare syncpoint callback crash
 | |
| - Event API - Fixed eventcategory problems when loading multiple projects.
 | |
| - Event API - Fixed crash when repeatedly calling Event::start() on an event.
 | |
| - Event API - Fixed encryption key support.
 | |
| - Fixed channel speakermix not being reset on FMOD_HARDWARE sounds.
 | |
| 
 | |
| 8/02/07 4.07.05 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + Added EventGroup::getState() interface.
 | |
| 
 | |
| !- Fix hang bug introduced in 4.07.04.
 | |
| - Fix System::setStreamBufferSize and FMOD_TIMEUNIT_MS with FSB files.
 | |
| - Event API - Fix wait-for-previous mode in layer for play-to-end sounds
 | |
| - Event API - Fixed "Max playbacks behaviour" "Steal oldest"
 | |
| - Event API - Fixed "Max playbacks behaviour" "Steal quietest"
 | |
| - Event API - Fixed sound definition "Play mode" "RandomNoRepeat"
 | |
| - Event API - Fixed EventSystem::update scaling cpu cost with project size
 | |
| - Event API - Fixed event volume randomisation
 | |
| - Fix Channel::set3DOcclusion/get3DOcclusion documentation.
 | |
| - Fixed DSP played with System::playDSP not being 3d if 
 | |
|   Channel::setMode(FMOD_3D) was called. (Channel::set3DPanLevel(1.0f) would 
 | |
|   have also fixed it.)
 | |
| 
 | |
| 02/02/07 4.07.04 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| [**** This version is now banned for use in release titles due to critical bug ***]
 | |
| 
 | |
| + PS3 - getWaveData() now functional.
 | |
| + PS3 - Added FMOD_DSP_TYPE_FLANGE effect.
 | |
| 
 | |
| - Wii - Fixed hardware reverb issues.
 | |
| - Filled out documentation for DSP::setOutput*/setOutput* type functions.
 | |
| - Fixed channel leak issue with virtual voices.
 | |
| - Fix channels defaulting reverb to dry.
 | |
| - Event API - Fixed EventSystem::getGroup/getEvent to be case insensitive
 | |
| - Event API - Fix reverb balance effect not setting correct gain levels.
 | |
| - Event API - Fixed Vista networking issue
 | |
| - Event API - Fixed Loop count bug
 | |
| 
 | |
| * Sound::getUserData now works while sound is still loading nonblocking
 | |
| * Xbox 360 - FMOD_HARDWARE support removed.  
 | |
|   FMOD_HARDWARE will just re-route to FMOD_SOFTWARE now to save confusion.
 | |
|   (360 has no mixing hardware, FMOD_HARDWARE was wrapping XAudio voice support).
 | |
| * Event API - Sound Definitions - RandomNoRepeat play mode universal across 
 | |
|   all events.
 | |
| * Wii - Changed "remotespeakeroffifnosound" member in FMOD_WII_INFO to
 | |
|        'muteremotespeakerifnosound'. If this member is set, the remote speaker
 | |
| 	will now be muted when no sounds are playing rather than switched off.
 | |
| 
 | |
| 29/01/07 4.07.03 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added 'Loop count' parameter to event sound instances
 | |
| 
 | |
| - Event API - Fixed leaking channels
 | |
| - Mac - Fixed hang when using certain multi-channel FireWire devices.
 | |
| 
 | |
| 25/01/07 4.07.02 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Added head-related transfer function to software channels. 
 | |
| + Added fields to FMOD_ADVANCEDSETTINGS structure (min/maxHRTFAngle, 
 | |
|   min/maxHRTFFreq) to control HRTF behaviour.
 | |
| + FSBank - FSBank now pads data to 16 bytes to allow for better 
 | |
|   FMOD_OPENMEMORY_POINT support.
 | |
| + Xbox 360 - Added 'xaudio' field to FMOD_THREAD_PROCESSOR_ASSIGNMENTS.
 | |
| 
 | |
| - Event API - Fixed problems with template events.
 | |
| - Event API - Fixed possible click when sounds stop in an event.
 | |
| - FSBank - Fixed interleaved FSBs not being built correctly when syncpoints are
 | |
|   present.
 | |
| - Stopped FMOD_OPENUSER returning error if FMOD_CREATESOUNDEXINFO 
 | |
|   'suggestedsoundtype' field was used.
 | |
| 
 | |
| 23/01/07 4.07.01 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Wii - Added support for FMOD_OPENMEMORY_POINT for hardware samples. Due to 
 | |
|   memory alignment requirements, currently only works with .dsp files.
 | |
| - Fixed up <1 "Max playbacks" on fev load
 | |
| - Fix oscillators not going virtual and maybe causing crash when virtual 
 | |
|   voices being used.
 | |
| 
 | |
| 05/01/07 4.07.00 - Official dev branch release.
 | |
| -----------------------------------------------
 | |
| 
 | |
| + Added 3D virtual reverbs.  Added System::create3DReverb / 
 | |
|   System::set3DReverbAmbientProperties / System::get3DReverbAmbientProperties 
 | |
|   and Reverb class.
 | |
| + SFX reverb has two new parameters : "Room LF" and "LF Reference".
 | |
| + Event API - Added EventCategory::getEventByIndex and EventCategory::getNumEvents.
 | |
| + Event API - Event system memory/speed optimisations.
 | |
| + Event API - Added EventSystem::create3DReverb.
 | |
| + Event API - Added EventSystem::set3DReverbAmbientProperties.
 | |
| + Event API - Added EventSystem::get3DReverbAmbientProperties.
 | |
| + Event API - Added Event3DReverb class.
 | |
| + Event API - Added Event::setProperty and Event::setPropertyByIndex.
 | |
| + FSBank - Added fsbankexcl -i command line option to ignore compilation errors
 | |
| + Optimize virtual voices, so that System::update is faster.
 | |
| + Event API - Sped up loading time.  Reduced memory usage.
 | |
| 
 | |
| - Fix PS3 dissapearing voices bug.
 | |
| - Fix C# header errors.
 | |
| - Fix netstream example ignoring tags.  Fixed certain mp3 netstreams with tags 
 | |
|   not opening correctly.
 | |
| - Fix Channel::setChannelGroup wiping out Channel::set3DAttributes for 1 frame.
 | |
| - Fix 3d Pan Level still 3d volume attenuating even when 0.0f or '2d'.
 | |
| - Event API - Fix small audible click in FMOD software mixer when playing 
 | |
|               more than 1 event.
 | |
| - Event API - Fix 'FMOD_ERR_INVALID_HANDLE' error when loading multiple .FEV files
 | |
|   when FEV have nested categories under the "music" category.
 | |
| - FSBank - Removed fsbankexcl -a command line option (use -i)
 | |
| - Fix fev's with 0 or negative 'max playbacks' causing crash at runtime.  Tool
 | |
|   shouldn't have let this happen but this is a safety check.
 | |
| 
 | |
| * Make Sound::lock return FMOD_ERR_SUBSOUNDS instead of FMOD_ERR_INTERNAL 
 | |
|   when trying to lock a parent sound which has no data and just contains sub
 | |
|   sounds.
 | |
| * Increased file thread stack size to 8k on non Nintendo platforms (Nintendo stack = 16k)
 | |
| 
 | |
| 14/12/06 4.06.00 - Official stable branch release
 | |
| -------------------------------------------------
 | |
| 
 | |
| + Event API - Added EventGroup::getParentProject
 | |
| + Event API - Added "programmer_sound" example
 | |
| + Add FMOD_3D_IGNOREGEOMETRY flag.
 | |
| !+ Event API - Large memory optimization for large projects.
 | |
| !+ Added MP2 (MPEG Audio Layer 2) support to FSBank and FMOD Designer.  
 | |
| 
 | |
| - Removed randomly occuring 10ms stall in stream play/seek/close.
 | |
| - FSbank / FMOD Designer - stop multichannel wavs from encoding to mp3, 
 | |
|   now returns an error instead.
 | |
| - Fixed ChannelGroup::getChannel to return FMOD_ERR_INVALID_PARAM for out of 
 | |
|   range values of "index" instead of FMOD_ERR_INTERNAL.
 | |
| - Fixed syncpoints/looppoints for riff-wrapped mp3 files.
 | |
| - XBox 360 fixed TRC dashboard music issue with FMOD music not unpausing.
 | |
| - Event API - Fixed Event::set3dAttributes to update "(distance)" parameters 
 | |
|   immediately.
 | |
| - Event API - Fixed EventCategory::getInfo sometimes returning wrong index.
 | |
| 
 | |
| * Added FMOD_MEMORY_XBOX360_PHYSICAL flag to streamed XMA codec allocations.
 | |
| 
 | |
| 5/12/06 4.04.53 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| !+ Event API - Optimized idle non playing events from being active in the 
 | |
|   software DSP network and using up a lot of CPU.
 | |
| + Added EVENT_LOADINFO structure for EventSystem::load
 | |
| + Event API - Added "sounddefentrylimit" member in EVENT_LOADINFO. Use it 
 | |
|   to limit the number of sound definition entries loaded at runtime.
 | |
| + Added DSP::disconnectAll(bool inputs, bool outputs).  This is just a helper
 | |
|   function but it is optimized so that it doesnt block, whereas 
 | |
|   getNumInputs/getNumOuputs blocks.
 | |
| + Added FMOD::File_SetDiskBusy/FMOD::File_GetDiskBusy.  This is basically a 
 | |
|   mutex/info for disk access.  When you set it and fmod is using the disk, 
 | |
|   fmod's disk access blocks.  If FMOD has set it internally while you call this
 | |
|   function, your app will block until fmod has finished reading.
 | |
| + FMOD thread names now appear in Visual Studio debugger.
 | |
| + PSP - Added support for hardware reverb effects. Use the same presets as for
 | |
|         PS2.
 | |
| + PSP - Added support for VAG streaming.
 | |
| 
 | |
| - Fixed FMOD_CREATECOMPRESSEDSAMPLE and vbr mp3 files ending early.
 | |
| - Fixed crash when System::init was called with maxchannels == 0.
 | |
| - Fixed loop points in ADPCM compressed FSB files.
 | |
| 
 | |
| - Event API - Improved accuracy of "positionms" in EVENT_INFO over time.
 | |
| - Event API - Fixed dependency on fmodps3.h in fmod_event_net.
 | |
| - Event API - Fixed wavebank memory usage reporting in EVENT_INFO.
 | |
| - Event API - Fixed problem when combining getEvent and loadEventData.
 | |
| - Event API - Fixed getEvent* returning FMOD_ERR_CHANNEL_ALLOC instead of 
 | |
|   FMOD_ERR_EVENT_FAIL like it was supposed to.
 | |
| 
 | |
| 24/11/06 4.04.51 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| [**** This version is now banned for use in release titles due to critical bug ***]
 | |
| 
 | |
| + PS3 - Added fmod_event_net.
 | |
| + PS3 - Added simple network audition client.
 | |
| + Added FMOD::Debug_SetLevel / FMOD::Debug_GetLevel.
 | |
| + Added 'type' parameter to memory allocation callbacks.
 | |
| 
 | |
| !- Fix timing related crash/hang introduced in 4.04.49.
 | |
| - Fix Channel::setOcclusion not working.
 | |
| - PSP - Fixed crash in Codewarrior build when streaming hardware mp3/at3 files.
 | |
| 
 | |
| - Event API - Fixed EVENT_INFO_ONLY events being reference counted
 | |
| 
 | |
| * If a channelgroup has had overridePaused or overrideMute set to true, 
 | |
|   moving a channel from one group to that group will now pause/mute 
 | |
|   automatically.
 | |
|   If overridePaused/overrideMute was set to false, then the channel will
 | |
|   not do anything to its pause/mute status if moved to that group.
 | |
| 
 | |
| 16/11/06 4.04.49 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| [**** This version is now banned for use in release titles due to critical bug ***]
 | |
| 
 | |
| + Added Channel::set3DDopplerLevel / get3DDopplerLevel.  Set doppler shift 
 | |
|   scale per voice.
 | |
| + Event API - Sped up EventSystem::update considerably.
 | |
| + Huge speedup in playing/stoping sounds, connecting channelgroups in 
 | |
|   FMOD_SOFTWARE mode.  Most noticable in event system.
 | |
| + Added FMOD_INIT_360_MUSICMUTENOTPAUSE for Xbox 360.  If dashboard music is 
 | |
|   played, FMOD based music tracks can now mute but keep playing, instead of 
 | |
|   pausing.
 | |
| 
 | |
| !- PS3 - Fixed virtual voices crash.
 | |
| - Fixed output plugins from crashing upon init in plugin mode.
 | |
| - Fixed FMOD_INIT_DISABLESOFTWARE making System::init return 
 | |
|   FMOD_ERR_NEEDSSOFTWARE if System::setAdvancedSettings was called to enable
 | |
|   createcompressed codecs to be allocated.
 | |
| - Xbox360 - improved support for nested channelgroups under the "music" 
 | |
|   channelgroup when dashboard music is turned on and off.
 | |
| - Fix geometry engine not updating, if geometry moved faster than the occlusion 
 | |
|   fade in/out speed.
 | |
| - Fixed issue with dsp unit added with addDSP being added(moved) to a different 
 | |
|   channel and breaking the old channel (stopping it from playing).
 | |
| - Fixed virtual voices causing FMOD_ERR_NEEDS3D error and generally making 
 | |
|   things go wrong between 2d/3d voices.
 | |
| 
 | |
| - Event API - Fixed rare crash in EventGroup::freeEventData
 | |
| - Event API - Fixed problem with various EventCategory functions
 | |
| - Event API - Fixed problem with crossfade curves
 | |
| 
 | |
| 9/11/06 4.04.47 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| [**** This version is now banned for use in release titles due to critical bug ***]
 | |
| 
 | |
| + Added codewarrior libs to PSP build.
 | |
| + Added event specific error codes. FMOD_ERR_EVENT_FAILED, 
 | |
|   FMOD_ERR_EVENT_INTERNAL, FMOD_ERR_EVENT_NAMECONFLICT, 
 | |
|   FMOD_ERR_EVENT_NOTFOUND.
 | |
| + Wii - Added FMOD_Channel_SetControllerSpeaker/FMOD_Channel_GetControllerSpeaker
 | |
| 	Wii specific functions. Use these functions to set channel to play out
 | |
| 	of Wii controller speaker(s).
 | |
| 
 | |
| - Wii - Removed FMOD_System_Controller_PlaySound Wii specific function.
 | |
| - Fixed FMOD_ERR_DSP_NOTFOUND returning from Event::start and 
 | |
|   Channel::setChannelGroup.
 | |
| - Fixed 'sowt' compressed AIFFs not playing properly on little endian
 | |
|   platforms. This also fixes problems with playing audio cds on x86 Mac.
 | |
| - Removed warnings from PSP examples.
 | |
| 
 | |
| * Changed fmodD to fmodL to remove confusion about debug vs logging.
 | |
|   FmodD was always 'release with logging' it was never a true debug lib
 | |
|   as some people thought.
 | |
| 
 | |
| 2/11/06 4.04.45 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + PSP - Added mp3 support using the PSP hardware mp3 decoder.
 | |
| + Added Event "Mode", "3D Rolloff", "3D Min Distance", "3D Max Distance", 
 | |
|   "3D Position", "3D Cone Inside Angle", "3D Cone Outside Angle" and
 | |
|   "3D Cone Outside Volume" to be updated in realtime network auditioning.
 | |
| + PS3 - Added 'force5point1' and 'attenuateDDLFE' to FMOD_PS3_EXTRADRIVERDATA.
 | |
|         These address current issues with Sony audio libraries and should
 | |
|         always be set to 1 until the issues are resolved by Sony.
 | |
| 
 | |
| - PS3 - Fix bug with crackly sound if a lot of categories or 
 | |
|   channelgroups were used.
 | |
| - Fix crash if Sound::release was called on a streaming subsound, then the 
 | |
|   parent sound was released.
 | |
| - Geometry engine.  Fixed sounds starting paused, not being immediately 
 | |
|   occluded if they started behind a polygon occluder.
 | |
| - Fixed trying to play an oscillator dsp returning FMOD_ERR_DSP_CONNECTION.
 | |
| 
 | |
| - Event API - Remove rare chance that FMOD_ERR_INVALID_HANDLE could be returned
 | |
|               from some event api calls if sound stopped before 
 | |
|               EventSystem::update was called.
 | |
| - Event API - Fix Event::set3DOcclusion.
 | |
| 
 | |
| 26/10/06 4.04.43 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Memory optimizations with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| 
 | |
| - Fixed support for Channel::addDSP with virtual voices.  Sounds that go virtual 
 | |
|   and come back as real will resume their previously added DSP effects as well 
 | |
|   now.
 | |
| - Fixed Channel::setSpeakerLevels crash on virtual voices.
 | |
| - PSP - Fixed threads not being destroyed properly on shutdown.
 | |
| - Linux - Fixed stream creation failing with FMOD_ERR_MEMORY sometimes.
 | |
| - Fixed crash when using the combination of stereo speaker mode, reverb, and 
 | |
|   6 channel / multichannel wave files.
 | |
| - Memory leak from setReverbProperties fixed.
 | |
| - Fixed memory leak whn using OutputNoSound_NRT
 | |
| 
 | |
| - Event API - Fixed Event::setVolume not working in some cases.
 | |
| - Event API - Fixed Event::getInfo to return -1 for lengthms if any sound in 
 | |
|   the event is looping
 | |
| - Event API - Fixed category case sensitivity issue
 | |
| 
 | |
| * Change FMOD_ADVANCEDSETTINGS to make System::init allocate the 
 | |
|   FMOD_CREATECOMPRESSEDSAMPLE codec pools up front, instead of 'on demand' 
 | |
|   when sounds are loaded.  If values are 0 or FMOD_ADVANCEDSETTINGS is not 
 | |
|   used, codec pools will be allocated on demand as usual.
 | |
| 
 | |
| 19/10/06 4.04.41 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + PS3 - Added FMOD_DSP_TYPE_DISTORTION and FMOD_DSP_TYPE_NORMALIZE effects.
 | |
| + Wii - Added 'remotespeakeroffifnosound' to FMOD_WII_INFO structure to allow
 | |
|         remote speaker to turn on/off depending on whether a sound is playing.
 | |
| + Added FMOD_ERR_INVALID_VECTOR to detect non unit length orientation vectors and
 | |
|   non perpendicular orientation vectors.
 | |
| + Added useropen, userclose, userread, userseek file callbacks to 
 | |
|   FMOD_CREATESOUNDEXINFO so you can override the file system per sound, instead 
 | |
|   of globally.
 | |
| 
 | |
| - Fix issues with virtual voices and channelgroups.
 | |
| - Fix passing 0 or null into playsound as channel handle address crashing.
 | |
| - Fix reverb crash if System::setDSPBufferSize was set to larger than 1024.
 | |
| - Fix FMOD_CREATECOMPRESSEDSAMPLE and IMA ADPCM FSB if a mono sound was 
 | |
|   created first, played then a stereo sound was created later.
 | |
| - Fix audio cutting out if Reverb and virtual voices were used.
 | |
| - Wii/GC - Fixed crash when loading files using FMOD_OPENMEMORY.
 | |
| - Wii/GC - Fixed lowpass filter not being reset when new sounds are played.
 | |
| 
 | |
| - Event API - Fixed problem with loadEventData returning FMOD_ERR_INVALID_PARAM.
 | |
| 
 | |
| * Added "Win32" to Win32 build name to make it consistent with other platforms
 | |
| * FMOD_INIT_OCCLUSION_LOWPASS switched from ITLOWPASS to LOWPASS_SIMPLE to 
 | |
|   provide clearer sound.
 | |
| * Wii - Renamed FMOD_Wii_Controller_Connect function to FMOD_Wii_Controller_Command,
 | |
|         this function can now be used to manually turn on/off the remote speaker.
 | |
| 
 | |
| 13/10/06 4.04.39 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| - Xbox 360 - Fixed FMOD_THREAD_PROCESSOR_ASSIGNMENTS ignoring 'mixer' value.
 | |
| 
 | |
| - Event API - Fix FMOD_ERR_INVALID_PARAM from getEvent related to previous 
 | |
|               change.
 | |
| - Event API - Fix user file callbacks not being called with EventSystem::load.
 | |
| - Event API - Event::setVolume and network auditioning fix.
 | |
| 
 | |
| * Event API - Made getGroup, getEvent, getParameter, getCategory, getReverb 
 | |
|               getProject, getProperty, case insensitive.
 | |
| 
 | |
| 12/10/06 4.04.37 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + Added DSP::getType
 | |
| + Added compression caching for FSBank and FMOD Designer bank building.
 | |
|   As an example, speedups for XMA bank compilation in one test was from 27 
 | |
|   seconds down to 3 seconds.
 | |
| 
 | |
| - Fix 'file not found' errors on xbox360 event system introduced in 4.04.35.
 | |
| - Fixed stream related crash upon Sound::release when virtual 
 | |
|   voices were involved.
 | |
| - Fixed some very small memory leaks.
 | |
| - Fixed stereo pan not working
 | |
| - Fixed silent zones in 2D surround pan fold-down to stereo 
 | |
| 
 | |
| + Event API - Increased event instance limit from 63 to 255
 | |
| - Event API - Fixed FMOD_ERR_INVALID_PARAM on Event::start
 | |
| - Event API - Fixed file close callback being called when file open failed
 | |
| - Event API - Fixed EventGroup::freeEventData
 | |
| - Event API - Fixed getEvent functions to only allocate instances for the 
 | |
|   specified event not the whole group (use loadEventData if you want that)
 | |
| - Event API - Fixed memory leaks on EventProject::release
 | |
| - Event API - Fixed wavebank mismatch when wavebanks have same name
 | |
| 
 | |
| * Event API - Event::setVolume now scales volume rather than overriding it.
 | |
| 
 | |
| 
 | |
| 5/10/06 4.04.35 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + PS3 spu - Added FMOD_LOADSECONDARYRAM flag.  This allows sounds 
 | |
|   to be loaded into into VRAM/RSX memory on PS3.
 | |
| 
 | |
| - Event API - Fix crash with null media path when using new
 | |
|   EventSystem::registerMemoryFSB / unregisterMemoryFSB functions.
 | |
| - Actually fixed v33 rare Sound::release crash if FMOD_NONBLOCKING 
 | |
|   is used, the last version didn't do it properly.
 | |
| - Fixed noise in FSB bank compilation for 8bit wav files compressed
 | |
|   with ADPCM as target format.
 | |
| 
 | |
| 
 | |
| 4/10/06 4.04.33 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + PS3 spu - Added SPURS mixer support.  PS3 SPU version now non-beta!
 | |
| + PS3 spu - Added FMOD_DSP_TYPE_LOWPASS, FMOD_DSP_TYPE_ITLOWPASS,
 | |
|             FMOD_DSP_TYPE_LOWPASS_SIMPLE, FMOD_DSP_TYPE_PARAMEQ, 
 | |
|             FMOD_DSP_TYPE_HIGHPASS effects.
 | |
| + Added - FMOD_ERR_MEMORY_CANTPOINT.
 | |
| + Event API - Added EventSystem::registerMemoryFSB / unregisterMemoryFSB.
 | |
| + Event API - Added EventProject::getNumEvents.
 | |
| + Event API - Added EventGroup::getParentGroup.
 | |
| 
 | |
| - Fixed virtual voices swapping back to real and looping when they were 
 | |
|   supposed to be one shot.
 | |
| - Fix rare Sound::release crash if FMOD_NONBLOCKING is used.
 | |
| - PS3 spu beta - Fixed channelgroup volume level issue again.
 | |
| - Event API - Fixed loading crash introduced in v31.
 | |
| - Event API - Changed EventCategory::getInfo to return a global index
 | |
|               if more than one project is loaded, instead of a local 0 based 
 | |
|               index.
 | |
| - Event API - Stopped EventSystem::getReverb crashing instead of returning 
 | |
|               FMOD_ERR_MEMORY if out of memory.
 | |
| - Event API - EventSystem::getEventBySystemID wasn't respecting EVENT_INFOONLY, 
 | |
|               fixed.
 | |
| - Event API - Fixed projects not loading in v31 if max playbacks on events was
 | |
|               > 63
 | |
| - Mac - Fix possible issue with loading plugins in OS X 10.3
 | |
| 
 | |
| * FMOD_CREATECOMPRESSEDMEMSAMPLE flag changed to a more generic 
 | |
|   FMOD_OPENMEMORY_POINT, which supports .WAV and .FSB based PCM data now as well.  
 | |
|   To get the same behaviour as FMOD_CREATECOMPRESSEDMEMSAMPLE, 
 | |
|   (FMOD_CREATECOMPRESSEDSAMPLE | FMOD_OPENMEMORY_POINT) must be used.
 | |
| 
 | |
| 29/9/06 4.04.31 - Dev release update
 | |
| ------------------------------------
 | |
| + Wii - Added controller speaker support.
 | |
| + Event API : Added EventSystem::release to docs.
 | |
| + Event API : Implemented EventCategory::setPaused / getPaused.
 | |
| + Event API : Implemented EventCategory::setMute / getMute.
 | |
| + Event API : Added EventCategory::stopAllEvents.
 | |
| + Event API : Added positionms to FMOD::EVENT_INFO to get event play time. 
 | |
| + Event API : Added EventReverbI::getInfo.
 | |
| + Event API : Added EventSystem::getNumEvents
 | |
| + Event API : Added EventSystem::getEventBySystemID
 | |
| + Event API : Added 'systemid' and 'projectid' to EVENT_INFO structure.
 | |
| 
 | |
| - Fix rare System::stopSound crash.
 | |
| - Fix rare stream crash.
 | |
| - Fix possible instability when using FMOD_CREATECOMPRESSEDMEMSAMPLE
 | |
| - PS3 spu beta - Fix SPU hang with EventSystem.
 | |
| - PS3 spu beta - Fix distortion in SFX reverb.
 | |
| - PS3 spu beta - Fix remaining random audio distortion in mixer.
 | |
| - PS3 spu beta - Fix memory leak when loading MPEGs with FMOD_ACCURATETIME.
 | |
| - PS3 spu beta - Fix memory leak when loading raw pcm data.
 | |
| - PS3 spu beta - Fix channelgroup volume level issue.
 | |
| - Xbox 360 - Fix XMA related hang when using virtual voices.
 | |
| - Wii/GC - Fixed distorted audio when using the EventSystem.
 | |
| - Made Channel::setLoopCount respect a count of 0 for FMOD_HARDWARE even 
 | |
|   though FMOD_HARDWARE doesnt support loop counts.
 | |
| - Fix memory leak in MPEG codec when failing to load as MPEG.
 | |
| - Fix support for 24-bit AIFF files
 | |
| - Fix click on oneshot sounds containing loop points
 | |
| - Event API : Max playbacks on events hard limited to 63
 | |
| - Event API : Fixed 'just fail' from not just failing in some cases.
 | |
| - Event API : Fixed multiple FEVs being loaded and wrong sound definitions 
 | |
|               playing.
 | |
| 
 | |
| * Event API : renamed EventProject::getEventById to 
 | |
|               EventProject::getEventByProjectId to remove any confusion between
 | |
|               event group index and project id terminology.
 | |
| * PS3 - When downmix to stereo is required, FMOD's own downmixer is used rather
 | |
|         than Sony's downmixer.
 | |
| 
 | |
| 8/9/06 4.04.29 - Dev release update
 | |
| ------------------------------------
 | |
| 
 | |
| + Added FMOD_DSP_LOWPASS_SIMPLE.  No resonance lowpass filter, which is a lot
 | |
|   faster than FMOD_DSP_LOWPASS, but allows cutoff frequency from 0 to 22khz,
 | |
|   unlike FMOD_DSP_ITLOWPASS which is fast, but has limited cutoff range.  
 | |
| + Roughly 30% speedup on FMOD_DSP_LOWPASS.  Still about 2-4x slower than the 
 | |
|   new FMOD_DSP_LOWPASS_SIMPLE though.
 | |
| + Added FMOD_ERR_INVALID_FLOAT.  Channel::set3DAttributes and 
 | |
|   System::set3DListenerAttributes now check for NaN, Inf, Denormals being 
 | |
|   passed in, only in the debug build of FMOD. (ie fmodD library or dll).
 | |
| + Optimized pitch shift filter to ignore silent channels.  A 6 channel 
 | |
|   pitch shift with a sound that is only coming out of 1 speaker will now
 | |
|   be about 6x faster!  Make sure to use hard panning to get best performance.
 | |
| 
 | |
| + PS3 - Added AT3 codec support.
 | |
| + PS3 - Added fmodps3.h, which contains a FMOD_PS3_EXTRADRIVERDATA structure
 | |
|         to be passed into System::init. Please see header for more information.
 | |
| + PS3 - Added reverb support.
 | |
| + PS3 - Added echo support.
 | |
| + PS3 - Added spu based mp3 streaming.
 | |
| + PS3 - Added custom 8ch to stereo downmixer to bypass sony's currently low 
 | |
|         quality version.
 | |
| 
 | |
| - Fix possible stutter when starting FSB streams.
 | |
| - Fix possible glitch on first time playing FSB streams.
 | |
| - Fix reverb not being active the first time a channel is played.
 | |
| - Fix unwanted memory allocs when using FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fix crash in ogg codec if running out of memory.
 | |
| - Fix crash if out of memory when using FMOD_NONBLOCKING.
 | |
| - Fix createSound returning FMOD_ERR_INVALID_PARAM instead of FMOD_ERR_MEMORY 
 | |
|   in some cases when running out of memory.
 | |
| - Fix memory leak with FMOD_ACCURATETIME, mp3 and FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| 
 | |
| + Event API : Added new EventProject class
 | |
| + Event API : EventProject::release replaces EventSystem::unload(fevhandle)
 | |
| + Event API : Added EventProject::getEventById which takes a project-unique
 | |
|   event id (which is written out in programmer report and header file)
 | |
| + Event API : Added EventSystem::getProject/getProjectByIndex/getNumProjects
 | |
| + Event API : Added EventSystem::getNumReverbs
 | |
| + Event API : Added EventSystem::getGroup
 | |
| + Event API : Added EventSystem::getEvent
 | |
| + Event API : Added EVENT_CALLBACKTYPE_SOUNDDEF_INFO event callback type
 | |
| + Event API : Added "eventflags" parameter to EventSystem::init
 | |
| + Event API : Added EVENT_INIT_USER_ASSETMANAGER init flag
 | |
| - Event API : Fixed possible EventGroup index mismatch issue.
 | |
| 
 | |
| 31/8/06 4.04.28 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fix crash if out of memory when using FMOD_NONBLOCKING.
 | |
| - Fix createSound returning FMOD_ERR_INVALID_PARAM instead of FMOD_ERR_MEMORY 
 | |
|   in some cases when running out of memory.
 | |
| 
 | |
| * PS3 - Update to PS3 SDK 091 build.
 | |
| 
 | |
| 22/8/06 4.04.27 - Dev release update
 | |
| -----------------------------------
 | |
| 
 | |
| + Optimizations for FMOD_DSP_ITLOWPASS, FMOD_DSP_PARAMEQ.
 | |
| + Optimization for System::setReverbProperties with software voices.
 | |
| 
 | |
| - Fixed System::setReverbProperties causing channels to appear twice as loud
 | |
|   when set to FMOD_PRESET_OFF.
 | |
| - Fixed rare random time based crackling noises for 
 | |
|   FMOD_CREATECOMPRESSEDSAMPLE based sounds.
 | |
| - Fixed FMOD_3D_LINEARROLLOFF for non-default values of "distancefactor".
 | |
| - Fixed XMA looping gap introduced in previous version.
 | |
| - Fixed Sound::getSubSound causing 'seeking forever' bug if the function was 
 | |
|   called again while previous non blocking getSubSound was still happening.
 | |
| - Win32 - Fixed linear rolloff panning mode for FMOD_HARDWARE based sounds.
 | |
| - Mac - Fixed recording devices being enumerated as output devices.
 | |
| - Mac - Fixed output not working with iMic and possibly other output
 | |
|         devices.
 | |
| + Event API : Updated header file and programmer report written out by FMOD 
 | |
|   Designer to include reverbs, categories and event parameters. Full paths 
 | |
|   used now as well.
 | |
| - Event API : Fixed "(distance)" parameter range.
 | |
| - Event API : Fixed handling of '&' in .fdp files.
 | |
| - PS3 (spu beta) - Fixed crackling when pitch bending.
 | |
| - PS3 (spu beta) - Improved general stability.
 | |
| 
 | |
| 22/8/06 4.04.26 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fixed rare random time based crackling noises for 
 | |
|   FMOD_CREATECOMPRESSEDSAMPLE based sounds.
 | |
| - Fixed XMA looping gap introduced in previous version.
 | |
| - Fixed Sound::getSubSound causing 'seeking forever' bug if the function was 
 | |
|   called again while previous non blocking getSubSound was still happening.
 | |
| - Event API : Fixed "(distance)" parameter range.
 | |
| - Mac - Fixed recording devices being enumerated as output devices.
 | |
| - Mac - Fixed output not working with iMic and possibly other output
 | |
|         devices.
 | |
| 
 | |
| 10/8/06 4.04.25 - Dev release update
 | |
| -----------------------------------
 | |
| 
 | |
| + Add support for Channel::setSpeakerLevels for sounds on platforms that don't
 | |
|   support multichannel sound formats.  
 | |
|   For example on PS2, PSP, GC, Wii that only have mono hardware voices and 
 | |
|   stereo output, you can now locate subchannels of a multichannel stream in 
 | |
|   left/right speaker.
 | |
| 
 | |
| - Fix shut down crash introduced in v4.04.21/4.04.23.
 | |
| - Fix crash in mod/s3m/xm/it/midi Sound::release.
 | |
| - Fix software reverb mixing dry mix in twice, making sound too loud.
 | |
| - Fix 3D panning on hardware voice platforms such as xbox/ps2/psp/gamecube/wii.
 | |
| - PS3 (spu beta) - Fixed noise issue if sounds were played at 48khz.
 | |
| - PS3 (spu beta) - Fixed stream crash (or sounds at 48khz in general).
 | |
| 
 | |
| + Event API : Added EVENT_STATE_INFOONLY return from Event::getState.
 | |
| - Event API : Removed 32 bank limit from EventSystem::getInfo.
 | |
| - Event API : Fixed problem w/freeEventData causing events to never play again.
 | |
| * Event API : Event parameters now automatically reset back to 0 on Event::start
 | |
|   if they have non-null velocity and setValue hasn't been called on them.
 | |
| 
 | |
| 10/8/06 4.04.24 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fixed Channel::setMode stopping streams from playing on certain platforms 
 | |
|   if loop mode was not specified.
 | |
| - Fixed extremely rare hang with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed SoundI::getSyncPointInfo always requiring "offset" parameter.
 | |
| - Fixed problem channel-swapping when using DSPs and Sounds together.
 | |
| 
 | |
| * PS3 - Update to PS3 SDK 090 build.
 | |
|   Note: PRX modules now need to be loaded before initializing FMOD, please refer
 | |
| 	to documentation and/or examples for details.
 | |
| 
 | |
| - Event API : Fixed "(distance)" parameters not updating properly.
 | |
| - Event API : Fixed problem with rolloff settings.
 | |
| 
 | |
| 4/8/06 4.04.23 - Dev release update
 | |
| -----------------------------------
 | |
| 
 | |
| + Added DSP::setOutputMix/getOutputMix, and DSP::setOutputLevels/getOutputLevels
 | |
|   to compliment setting input levels.
 | |
| 
 | |
| - Removed blocking criticalsection call in DSP::setParameter for most filters,
 | |
|   which means performance increase.
 | |
| - Fixed crash if running out of memory with FSB.
 | |
| - Fixed Channel::setMute not unmuting software voices properly.
 | |
| - Fixed rare crash with new Channel::stop stream optimization, when a stream 
 | |
|   was released immediately after being played then stopped with Channel::stop.
 | |
|   (take 2).
 | |
| - Fixed rare stream play hang.
 | |
| - PS3 (spu beta) - Fixed streaming.
 | |
| - PS3 (spu beta) - PCM support back in mixer, now user streams and wav files 
 | |
|   work, 16bit PCM only at this time.
 | |
| - PS3 (spu beta) - IMA ADPCM support back in the mixer, only through FSB files,
 | |
|   because wav uses an inneficient block size.
 | |
| - PS3 (spu beta) - Potential noise bug fixed.
 | |
| 
 | |
| * Xbox360 - Memory::Initialize and createSound with now check memory address 
 | |
|   passed in to make sure it is valid and returns new FMOD_ERR_INVALID_ADDRESS
 | |
|   error code if not.  (Memory must be physical, ie allocated with XPhysicalAlloc).
 | |
| 
 | |
| + Event API : Added selective EventSystem::unload. Can now unload a specific fev.
 | |
| * Event API : NOTE: EventSystem info functions may not report correct memory 
 | |
|   usage. This is temporary and will be rectified in a future version.
 | |
| 
 | |
| 
 | |
| 31/7/06 4.04.21 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| - Fixed linking issues on ps2/psp/gc/wii.
 | |
| - PS3 (spu beta) - Fixed memory leaks.
 | |
| - PS3 (spu beta) - Fixed hang when playing multiple FSB MP3 streams.
 | |
| - PS3 (spu beta) - Fixed crash when releasing FMOD_CREATECOMPRESSEDSOUND.
 | |
| - PS3 (spu beta) - Fixed crash when releasing streams that are still playing.
 | |
| 
 | |
| * Sound::release now blocks if it is non blocking and hasn't finished opening
 | |
|   yet.
 | |
| 
 | |
| 4/8/06 4.04.20 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - PS2 - fix issue with System::getSubSound and FMOD_NONBLOCKING causing lock up.
 | |
| - Xbox 360 - Fix XMA hang.
 | |
| 
 | |
| 27/7/06 4.04.19 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Add supper for per channel reverb mix in Channel::setReverbProperties and
 | |
|   FMOD software based I3DL2 (SFX) reverb.
 | |
| + PS3 - SPU beta released!  Now mixing and decoding takes 0% of cpu time.
 | |
| 
 | |
| - PS2 - Fixed thread shutdown code.     
 | |
| - Fixed rare crash with new Channel::stop stream optimization, when a stream 
 | |
|   was released immediately after being played then stopped with Channel::stop.
 | |
| - Fixed ADPCM support on FSB files with FMOD_CREATECOMPRESSEDSAMPLE when mono 
 | |
|   and stereo sounds were mixed into the same FSB.
 | |
| 
 | |
| + Event API : Added "event" parameter to EventGroup::freeEventData to allow 
 | |
|   data for a particular event to be freed.
 | |
| - Event API : Fixed streams sometimes not being freed properly.
 | |
| - Event API : Fixed samplerefcnt in EVENT_WAVEBANKINFO being off by one.
 | |
| - Event API : Fixed problem loading multiple projects with empty eventgroups.
 | |
| 
 | |
| 27/7/06 4.04.18 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fixed memory leak when using a lot of dsp connections.
 | |
| - Fixed panning issue, especially noticable with 3d sounds 
 | |
|   (stable branch bug only).
 | |
| - PS2 / PSP - Fixed various close/init issues, thanks to Matt from Vicarious
 | |
|   Visions for most of these!
 | |
| - Fixed wav fact chunk error on big endian machines.
 | |
| 
 | |
| - Event API : Fixed memory leak when wavebanks not found.
 | |
| - Event API : Fixed problem with categories across multiple projects.
 | |
| 
 | |
| * Changed PSP message and error code when returning 'out of atrac instances' 
 | |
|   type error.
 | |
| 
 | |
| 21/7/06 4.04.17 - Dev release update
 | |
| -------------------------------------
 | |
| 
 | |
| + Wii - Added access to extra reverb slot for DPL2 High Quality reverb.
 | |
| + Wii/GameCube - Added FMOD_Channel_SetLowPassFilter/FMOD_Channel_GetLowPassFilter
 | |
| 	functions (in fmodwii.h and fmodgc.h) for hardware per channel low pass
 | |
| 	filtering.
 | |
| 
 | |
| - Fixed Prologic 2 encoding on software mixer for 3d sound and setSpeakerMix.
 | |
| - Fixed stall on Channel::stop when stopping a streamed sound while others were
 | |
|   playing.
 | |
| - GameCube/Wii/PSP - Fixed Sound::release() not releasing hardware sounds 
 | |
|   properly.
 | |
| - Fixed click on end of one shot sounds with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| 
 | |
| - Event API : Fixed EventI::getNumProperties not always returning correct value.
 | |
| - Event API : Fixed eventsystem plugin loading to occur in EventSystem::init.
 | |
| * Event API : EventSystem::setPluginPath can now be passed NULL to tell FMOD 
 | |
|   not to load any plugins.
 | |
| 
 | |
| 17/7/06 4.04.16 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| + Software mixer speedup.
 | |
| 
 | |
| - Increased thread stack sizes to 32kb to properly fix mp3 
 | |
|   stack overflow issue when playing mp3 on non PC platforms.
 | |
| - Divide by zero fix in FMOD_DSP_PITCHSHIFT filter.
 | |
| - Fixed setSpeakerMix making sound audible when > 0 values were sent to 
 | |
|   non existant speakers.
 | |
| - Fixed certain hardware FSB streams not playing correctly
 | |
| - Fixed WAVEFORMATEXTENSIBLE wav files not loading on big endian machines.
 | |
| - PS2 - Fixed hang in file close if file wasnt found.
 | |
| - PS3 - Fixed Ogg Vorbis support.
 | |
| - Xbox 360 - fixed small 1 frame XMA files not triggering sometimes.
 | |
| - Xbox 360 - fixed "music" channelgroup causing crash when starting 
 | |
|   dashboard music.
 | |
| - Xbox - Fixed linker error.
 | |
| 
 | |
| - Event API : Fixed crash related to sound definition pitch randomisation.
 | |
| - Event API : Fixed problem loading FEVs created by newer version of FMOD Designer.
 | |
| - Event API : Fixed problem when calling EventSystem::load with a path instead of 
 | |
|   a filename while media path is NULL.
 | |
| 
 | |
| 14/7/06 4.04.15 - Dev release update
 | |
| --------------------------------------
 | |
| 
 | |
| - Fix FMOD_OPENRAW and FMOD_OPENUSER based sounds failing when played.
 | |
| - Fix FSBank and FMOD Designer encoding bad ADPCM files making ADPCM based
 | |
|   banks fail to load.
 | |
| 
 | |
| - Event API : Fixed EventGroup::freeEventData not freeing streams.
 | |
| - Event API : Fixed 2d speaker levels not being set for 3d sounds even when
 | |
|   3dpanlevel is used.
 | |
| 
 | |
| 14/7/06 4.04.14 - Stable release update
 | |
| --------------------------------------
 | |
| 
 | |
| - Fixed FMOD::System_Create being called 16 times causing a hang.
 | |
| - Fixed stack overflow issue in FMOD_NONBLOCKING thread.
 | |
| - Fixed ADPCM based FSB files and FMOD_CREATECOMPRESSEDSAMPLE causing crash.
 | |
| - PS2 fixed shutdown issue.
 | |
| - Fixed 7.1 software mixer quality / static issue.
 | |
| - PSP fixed sounds not triggering sometimes.
 | |
| - Fixed playlist (m3u/wax/pls etc) support from crashing / failing.
 | |
| - Xbox 360 fixed small 1 frame XMA files not triggering sometimes.
 | |
| 
 | |
| - Event API : Fixed crash in EventSystem::load in low memory situation.
 | |
| 
 | |
| 7/7/06 4.04.13 - Dev release update
 | |
| --------------------------------------
 | |
| 
 | |
| + FMOD_CREATECOMPRESSEDMEMSAMPLE flag added to differentiate itself
 | |
|   from "FMOD_OPENMEMORY with FMOD_CREATECOMPRESSEDSAMPLE" which will 
 | |
|   again duplicate memory internally.  FMOD_CREATECOMPRESSEDMEMSAMPLE
 | |
|   simply points to the user's memory instead of duplicating it.
 | |
| + FMOD_CODEC_GETWAVEFORMAT added to FMOD_CODEC_DESCRIPTION.  This
 | |
|   is an optional way to return data normally contained in
 | |
|   the memory wasteful waveformat member of FMOD_CODEC_STATE.  This 
 | |
|   means waveformat of FMOD_CODEC_STATE is now optional and can be 
 | |
|   null, as long as FMOD_CODEC_GETWAVEFORMAT is specified.
 | |
| + Added release dll's with debug logging and .pdb debug info for win32
 | |
|   (fmod*D.dll and fmod*D.pdb)
 | |
| 
 | |
| - Fix stream stitching support.
 | |
| - Huge memory optimization on FSB streams with thousands of subsounds.  
 | |
| - Fix syncpoints not triggering if sync points are added after playing 
 | |
|   the sound.
 | |
| - Fix new 3d pan level setting not being reset to 1.0 on voices.
 | |
| - Fix midi length calculation on some midi files.
 | |
| 
 | |
| * FMOD_OPENMEMORY with FMOD_CREATECOMPRESSEDSAMPLE is now put back to
 | |
|   the way it used to be, and duplicates memory.  New flag 
 | |
|   FMOD_CREATECOMPRESSEDMEMSAMPLE handles the new behaviour.
 | |
| * FMOD_LOWMEM now excludes default sentence creation for multi-subsound 
 | |
|   streams.  Sound::setSubSoundSentence can still be used as normal, 
 | |
|   System::playSound just wont play through the whole set of subsounds by 
 | |
|   default any more if this flag is used.
 | |
| 
 | |
| + Event API : Added Event::getChannelGroup().
 | |
| + Event API : Extended Event::getInfo(). Note: Function signature has changed!
 | |
| + Event API : Added EVENT_INFO structure.
 | |
| + Event API : Added EventSystem::getInfo().
 | |
| + Event API : Added EVENT_WAVEBANKINFO structure.
 | |
| + Event API : Added EVENT_SYSTEMINFO structure.
 | |
| 
 | |
| 7/7/06 4.04.12 - Stable release update
 | |
| --------------------------------------
 | |
| 
 | |
| - Fixed streams with small decodebuffersizes on certain formats with big 
 | |
|   block alignment that stuttered.
 | |
| - Fixed bug in reallocator making memory run out sooner than it should when 
 | |
|   using a memory block with FMOD::Memory_Initialize.
 | |
| - Fix delphi FMOD_SOUND_TYPE list.
 | |
| 
 | |
| 
 | |
| 29/6/06 4.04.11 - Dev release update
 | |
| --------------------------------------
 | |
| 
 | |
| + Added FMOD_INIT_OCCLUSION_LOWPASS.  Now software voices will enable a 
 | |
|   lowpass filter if they are occluded! Great for Channel::set3DOcclusion and 
 | |
|   the FMOD polygon based geometry engine.
 | |
| + FMOD_SPEAKERMODE_PROLOGIC and software mixed 3D sound now works correctly.
 | |
| + Added Channel::set3DPanLevel.  3D / 2D sound morphing!  Now a 3d sound 
 | |
|   can morph into a '2d' sound by setting the amount it takes note of 3d pan 
 | |
|   calculations or 2d Channel::setSpeakerMix.  Great for volumetric sounds! 
 | |
| 
 | |
| - Removed OpenAL output mode.
 | |
| - Reduced memory usage by several hundred k using FMOD_CREATECOMPRESSEDSAMPLE
 | |
|   with software mixed voices.
 | |
| - 10k Memory reduction at init, and less small memory allocations upon init
 | |
|   to reduce memory block overhead and init time.
 | |
| - Xbox360 - stopped DrWatson complaining about an intentional exception that
 | |
|   was thrown, if the debugger is not used.  
 | |
| 
 | |
| * FMOD_OPENMEMORY with FMOD_CREATECOMPRESSEDSAMPLE, now POINTS to the memory 
 | |
|   passed in rather than duplicating it.  This means memory must not be freed
 | |
|   when passed in this way until AFTER Sound::release has been called!
 | |
| 
 | |
| + Event API : Added EventReverb class, EventSystem::getReverb and 
 | |
|   EventSystem::getReverbByIndex
 | |
| 
 | |
| - Event API : Fixed getEvent getting the eventgroup wrong if it was called 
 | |
|   with a long path
 | |
| - Event API : Fixed problem with getEvent modifying const data
 | |
| 
 | |
| 29/6/06 4.04.10 - Stable release update
 | |
| --------------------------------------
 | |
| 
 | |
| - Fixed ChannelGroup::getChannel returning the wrong handle values back.
 | |
| - Mac - Fixed System::getNumCDROMDrives and System::getCDROMDriveName not 
 | |
|   returning updated information when drives are mounted and unmounted.
 | |
| - Clean up metadata leak in certain .ogg files.
 | |
| - Fix nested channelgroups that are not freed causing crash in 
 | |
|   System::release.
 | |
| 
 | |
| 19/6/06 4.04.08 - Stable release update
 | |
| --------------------------------------
 | |
| 
 | |
| - FMOD Memory manager sped up noticably = faster loading times.
 | |
| - Fixed FMOD_CREATECOMPRESSEDSAMPLE sounds not ending properly sometimes.
 | |
| - Linux - Fixed bug in FMOD_OUTPUTTYPE_OSS causing some linux distributions
 | |
|   to hang when shutting down FMOD.
 | |
| - Fixed System::getAdvancedSettings not returning anything.
 | |
| - Fixed multi-stream ogg vorbis files not playing all the way to the end.
 | |
| - Worked around xbox360 issue of calling System::update more than once a 
 | |
|   frame.  Result was an internal microsoft semaphore function was 
 | |
|   throwing exceptions.  Now fixed.
 | |
| 
 | |
| 9/6/06 4.04.06 - Stable release update
 | |
| --------------------------------------
 | |
| 
 | |
| - Fixed FMOD_CREATECOMPRESSEDSAMPLE timing issue causing crash.
 | |
| - Fixed FMOD_OPENUSER and FMOD_OPENRAW causing hang.  These flags are not
 | |
|   compatible and if detected, it will now ignore the FMOD_OPENRAW flag.
 | |
| - Changed thread creation code to force certain stack sizes to avoid XDK 
 | |
|   CreateThread bug.
 | |
| - Fixed memory leak when sound failed to load due to lack of 
 | |
|   available memory.
 | |
| - Fixed Sfx Reverb problems
 | |
| - Fixed channelgroups not setting volume/pitch correctly if nested groups
 | |
|   were a certain number of levels deep.
 | |
| - Fixed loading of FSB files with multichannel sounds mixed in with 
 | |
|   mono/stereo sounds.
 | |
| - Fixed multichannel sounds not locating themselves according to their 
 | |
|   specified speakers in a multi-speaker setup.
 | |
| - Fixed ADPCM .wav files and FMOD_CREATECOMPRESSEDSAMPLE silent playback 
 | |
|   issue.
 | |
| - Fixed FSBank not return an error when trying to encode greater than 
 | |
|   stereo XMA, rather than generating bad files.
 | |
| - PS3 - Fixed crash when streaming mp3s.
 | |
| - Fix crash when freeing and loading ADPCM encoded FSB files that were 
 | |
|   opened for realtime playback (ie FMOD_CREATECOMPRESSEDSAMPLE).
 | |
| - Linux - Fixed crash when initialising and closing FMOD repeatedly.
 | |
| - Xbox 360 - Fixed XMA decoder hang issue with virtual voices.
 | |
| - Fixed bug in FMOD memory manager with reallocation which is used in 
 | |
|   streams, causing strange memory failures later on down the track.
 | |
| - Fixed length with MP3 files and Sound::getLength with FMOD_ACCURATETIME 
 | |
|   and FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed FSBank creating bad FSB files if build mode was interleaved.
 | |
| 
 | |
| - Event API : Fixed problem with volumes reverting to previous setting in
 | |
|   network audition mode
 | |
| - Event API : Fixed memory leak when EventSystem::load returns an error.
 | |
| 
 | |
| * Switch multichannel sounds to use Directsound software mixing if 
 | |
|   FMOD_HARDWARE is specified to avoid FMOD_ERR_OUTPUT_DRIVERCALL errors.
 | |
| 
 | |
| 30/5/06 4.04.04 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fixed multichannel ADPCM streaming static noise.
 | |
| - Fixed multichannel sound related crash.
 | |
| - Fixed Sound::getName not working on multichannel sounds on ps2 
 | |
|   and other platforms that only support mono hardware voices (gamecube/psp).
 | |
| 
 | |
| 25/5/06 4.04.02 - Stable release update
 | |
| ---------------------------------------
 | |
| 
 | |
| - Fixed channelgroup related System::close crash.
 | |
| - Fixed fsb memory leak.
 | |
| - Fixed SyncPoint crash.
 | |
| - Fixed MP3 seek issue.
 | |
| 
 | |
| 23/5/06 4.04.00 - Official release
 | |
| -----------------------------------
 | |
| 
 | |
| + Channel::setSpeakerLevels now allow speaker levels to go above 1.0 for 
 | |
|   amplification.  Turn the dial up to 11! Good for LFE boosting.
 | |
| + Added Channel::set3DSpread / Channel::get3DSpread!  This is an easy way to 
 | |
|   make stereo 3D sounds go from summed mono point sources to having a better 
 | |
|   stereo spread.  Ie facing a sound with a 90 degree spread puts the left
 | |
|   part in the front left speaker and the right part in the front right speaker,
 | |
|   where before it would have just summed the 2 into the center speaker.
 | |
| + Added FMOD_DSP_TYPE_SFXREVERB.  This is a custom I3DL2 reverb that is far 
 | |
|   better quality and more configurable than FMOD_DSP_TYPE_REVERB which was 
 | |
|   based on Freeverb.  System::setReverbProperties now enables this reverb
 | |
|   for software based voices.
 | |
| 
 | |
| - PSP - Increased SAS thread priority to fix stuttering.
 | |
| - Improved support for certain corrupted wav and mp3 files so that they don't 
 | |
|   crash the decoder.
 | |
| - Fixed very short .XMA files 'not ending'. 
 | |
| - PS2 - Fixed stream hangs.
 | |
| - Fixed loop mode being parsed from FSB files.
 | |
| - Fixed FMOD_ACCURATETIME flag with mp3 files causing crash.
 | |
| - FSBank Fixed MPEG encoder and added quality setting.
 | |
| - FSBank Fixed interleaved FSB IMAADPCM encoder mode.
 | |
| - Fixed SyncPoints and setPosition causing multiple callbacks to fire.
 | |
| - Removed Channel::set3DSubChannelOffset/Channel::get3DSubChannelOffset in favor
 | |
|   of the much simpler Channel::set3DSpread.
 | |
| 
 | |
| - Event API : Fixed problem with getEvent when hierarchy contains events/groups
 | |
|   wit similar names i.e. 'c', 'car', 'ca'.
 | |
| - Event API : Event::getParameterByIndex now accepts index -1 to specify the
 | |
|   event's primary parameter.
 | |
| - Event API : Fixed bug where exported events had very low volume.
 | |
| - Event API : Fixed fmod_event_static.dsp issues.
 | |
| 
 | |
| 16/5/06 4.03.10
 | |
| ---------------
 | |
| 
 | |
| + Added System::createCodec so user codecs can be added from within app code
 | |
|   rather than needing external DLL's (good for non dll platforms).
 | |
| + Virtual voice swapping in System::update now faster. Good when using many 
 | |
|   virtual voices.
 | |
| + Wii - Added FMOD_WII_INFO structure to fmodwii.h in order to set dvd
 | |
| 	read priority.
 | |
| + GameCube/Wii -  Added reverb flag FMOD_REVERB_FLAGS_HIGHQUALITYDPL2REVERB to
 | |
| 	access DPL2 reverb. This allows the use of non-DPL2 reverb when speakermode
 | |
| 	is set to FMOD_SPEAKERMODE_PROLOGIC.
 | |
| + Added MPEG encoding to FSBank and support for MPEG compressed FSB files.
 | |
| + Added cross platform .VAG (Playstation ADPCM variant) codec.  Play .VAG on 
 | |
|   any platform!
 | |
| 
 | |
| - Fixed virtual voices losing their channelgroup when swapping in/out.
 | |
| - Fixed virtual voices forgetting speaker level settings.
 | |
| - Fixed last (hopefully) rare crash on sounds with FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed FSB with mixed mono/stereo sounds for XMA.
 | |
| - Fixed streamer reading too far in a subsound of a multi XMA FSB files.
 | |
| - Fixed FSB default values (vol/freq/pan/pri/mindistance/maxdistance).
 | |
| - Fixed FMOD_CREATECOMPRESSEDSAMPLE and loop count usage with VBR based formats 
 | |
|   causing a premature termination of a sound before the final loop had finished.
 | |
| - Fixed a stream being played after a channel with a loop count making the stream
 | |
|   only play the first part of the sound.
 | |
| - Reduced memory usage.
 | |
| 
 | |
| - Event API : Fixed problem where old event callback/userdata was being called 
 | |
|   after event went invalid
 | |
| - Event API : Event system now uses FMOD_LOWMEM for all sounds
 | |
| 
 | |
| 1/5/06 4.03.09
 | |
| ---------------
 | |
| 
 | |
| - Fixed OpenAL hardware channels continuing to loop even after they have been
 | |
|   set not to.
 | |
| - Fixed volume calculation on channels with FMOD_3D_CUSTOMROLLOFF but no rolloff curve
 | |
| - Fixed DirectSound error causing FMOD_ERR_DRIVERCALL errors.
 | |
| - Fixed crash in ChannelGroupI::stop.
 | |
| - Fixed FMOD_LOWMEM flag accidently re-using 
 | |
| - Fixed mod/s3m/xm/it/midi crash from 4.03.08.
 | |
| - Removed software reverb emulation on SystemI::setReverbProperties until proper I3DL2 
 | |
|   reverb is implemented.
 | |
| 
 | |
| * GameCube - FMOD_ARAMBLOCK_INFO structure renamed to FMOD_GC_INFO in fmodgc.h,
 | |
|   "dvdreadpriority" member added to structure in order to set read priority.
 | |
| 
 | |
| 26/4/06 4.03.08
 | |
| ---------------
 | |
| 
 | |
| + Improved quality on pitch shifting filter.
 | |
| + Added FMOD_LOWMEM flag to FMOD_MODE flags to allow memory cutbacks on sample
 | |
|   instances for features that aren't needed.  To start with, name storage is 
 | |
|   disabled if this flag is set so Sound::getName returns "(null)".  This will
 | |
|   be expanded in future to reduce Sound instance memory usage further.
 | |
| + Added memory usage tutorial.
 | |
| + Added support for GameCube GCADPCM DSP file format.
 | |
| + Added support for Nintendo Revolution.
 | |
| 
 | |
| - Fixed FSB + IMAADPCM sounds using "FMOD_CREATECOMPRESSEDSAMPLE" flag, stopping 
 | |
|   as soon as they started.
 | |
| - Fixed FSB + IMAADPCM sounds using "FMOD_CREATECOMPRESSEDSAMPLE" flag, causing 
 | |
|   a crash on System::close. 
 | |
| - Reduced memory overhead on IMAADPCM "FMOD_CREATECOMPRESSEDSAMPLE" based sounds.
 | |
| - Reduced memory overhead on XMA "FMOD_CREATECOMPRESSEDSAMPLE" based sounds 
 | |
|   (about 19k per sound)
 | |
| - Fixed channels not going back to the Master channel group when finished.
 | |
| - Fixed various obscure bugs to do with multichannel wavs, createcompressed 
 | |
|   sample and fsb ADPCM etc.
 | |
| - Fixed problem with FSB + MIDI
 | |
| - Multichannel FMOD_HARDWARE sound fix in directsound.
 | |
| - Fixed memory leak when using OpenAL output mode
 | |
| - Event API : Fixed EventGroup::getEventByIndex() not honouring EVENT_INFOONLY
 | |
| - Event API : Fixed bug with events in different groups sharing sound definitions
 | |
| - GameCube  : Fixed hang shutting down when non-blocking streams are used.
 | |
| - PSP	    : Fixed SN libraries crashing.
 | |
| 
 | |
| * Event API : Changed maximum number of events per eventsystem to 8192
 | |
| 
 | |
| 18/4/06 4.03.07
 | |
| ---------------
 | |
| 
 | |
| + Added FMOD_DSP_COMPRESSOR - This will be worked on and improved in future 
 | |
|   releases.
 | |
| + Optimized geometry occlusion engine to early out sooner giving significant 
 | |
|   speed increases for larger scenes.
 | |
| 
 | |
| - Fixed loop point handling of badly saved adobe audition wav files.
 | |
| - Fixed multiple FMOD_NONBLOCKING loads not working properly.
 | |
| - Handle badly saved/corrupted WMAs better.
 | |
| - Xbox360 - Fixed atgscene paths in examples
 | |
| - Fix dsppluginviewer example, recording issue with ASIO input/output.
 | |
| 
 | |
| + Event API : FSBs are now loaded from mediapath first and then from the same
 | |
|   directory as the FEV
 | |
| + Event API : For events with custom 3d rolloff curve, 3d min/max distance
 | |
|   properties will be set to the min/max range of parameter called "distance" 
 | |
|   or "(distance)"
 | |
| - Event API : Fixed crash related to "oneshot and stop event" parameters
 | |
| - Event API : Fixed problem with sustain points on parameters with range
 | |
|   outside of 0 -> 1
 | |
| - Event API : Fixed problem with encryption keys and multiple FEVs
 | |
| * Event API : Removed some fmod_event_net debug log spam. Added LOG_NET to debug level 
 | |
|   enum
 | |
| 
 | |
| 10/4/06 4.03.06
 | |
| ---------------
 | |
| 
 | |
| + Added dsp_custom example for c#
 | |
| 
 | |
| - Fix FMOD_OUTPUTTYPE enum list so it didnt break backwards compatibility.
 | |
| - Fix OpenAL output not hanging on System::close/System::release if OpenAL
 | |
|   wasn't supported on that machine.
 | |
| - Fix alignment issues causing crash on mod/s3m/xm/it/midi under new SSE 
 | |
|   mixer.
 | |
| - Fixed errors in fmod_dsp.cs for c# interface
 | |
| 
 | |
| 7/4/06 4.03.05
 | |
| --------------
 | |
| 
 | |
| + Optimized FMOD_DSP_TYPE_LOWPASS.   Now about 2x faster.
 | |
| + Optimized SSE based stereo output mixers, about 10% faster for 
 | |
|   win32/linux/xbox.
 | |
| + Optimized 5.1 and 7.1 output mixers in SSE for win32/linux/xbox. 
 | |
| + Added OpenAL output mode.  
 | |
|   Note: this requires version 1.1 or greater. An implementation of this is
 | |
|   available at http://www.openal.org/downloads.html 
 | |
| 
 | |
| - Mac - Fixed CDDA support
 | |
| - Fixed FMOD_DSP_LOWPASS crack/click noise when going to very low cutoff 
 | |
|   frequencies such as 1hz.
 | |
| 
 | |
| + Event API : Added EventParameter::keyOff for keying off sustain points
 | |
| 
 | |
| - Event API : Fixed crash in EventGroup::getNumGroups when there are no child groups
 | |
| 
 | |
| 
 | |
| 31/3/06 4.03.04
 | |
| ---------------
 | |
| 
 | |
| - Fixed small memory leak in ogg vorbis and xma codecs.
 | |
| - Linux - Fixed bug in threading code causing problems in some distributions.
 | |
| - Memory reduction from 238k to 184k after System::init using 100 voices.
 | |
| - Fixed audio output on soundcards with >8 channels.
 | |
| - Made sync point system more robust so it won't miss points.
 | |
| - PS3 - added support again for FMOD_SPEAKERMODE_STEREO for stereo only output.
 | |
| - Fixed crash when mixing different types of adpcm files that were encoded 
 | |
|   with different block sizes, and FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| 
 | |
| * Maximum channel count on a sound (ie stereo wav = 2) lowered from 8 to 6 to
 | |
|   save memory.  This allows 6 channel sounds to be played, and it can be 
 | |
|   increased by using System::setSoftwareFormat and setting numinputchannels 
 | |
|   if needed (unlikely).
 | |
| 
 | |
| 
 | |
| + Event API : Added EventSystem::getNumGroups, EventSystem::getNumCategories,
 | |
|   EventGroup::getNumGroups, EventGroup::getNumEvents, 
 | |
|   EventCategory::getNumCategories, EventCategory::getNumParameters,
 | |
|   Event::getNumParameters, Event::getNumProperties, Event::getNumCategories.
 | |
| + Event API : Added EVENTPROPERTY_MAX_PLAYBACKS_BEHAVIOR to proprty enum list.
 | |
| + Event API : Added Event::set3DOcclusion/get3DOcclusion
 | |
| + Event API : Added Event::setReverbProperties/getReverbProperties
 | |
| + Event API : Added EVENT_INFOONLY flag to be used with EventGroup::getEvent
 | |
|   and Event::getEventByIndex.  Good for just getting information from an event
 | |
|   without loading its data or allocating its instances.  No allocs or disk 
 | |
|   access is done, but you can still read the event's information.
 | |
| 
 | |
| - Event API : Fixed crash when loading multiple FEV files.
 | |
| - Event API : Fixed EVENT_STATE_CHANNELSACTIVE being the same value as 
 | |
|   EVENT_STATE_PLAYING.
 | |
| - Event API : Fixed eventsystem release crash
 | |
| - Event API : Fixed problems related to multiple sounddefs with the same name
 | |
| - Event API : Fixed event nonblocking loads
 | |
| - Event API : Fixed problem where incomplete nonblocking loads would
 | |
|   accumulate over time
 | |
| 
 | |
| * Event API : renamed EVENTPROPERTY_SPEAKER_MUSIC to EVENTPROPERTY_MUSIC (oops!)
 | |
| 
 | |
| 17/3/06 4.03.03
 | |
| ---------------
 | |
| 
 | |
| + Added sample names from mod/s3m/xm/it files as tags accessable through 
 | |
|   Sound::getTag.
 | |
| + Added FMOD_OPENSTATE_SEEKING and the ability for Sound::getSubSound to do a 
 | |
|   non blocking seek for multi-sub sound streams.
 | |
| + Added FMOD_NONBLOCKING tutorial to the documentation.
 | |
| + Event API : Added setVelocity / getVelocity to EventParameter class so programmer can 
 | |
|   slow down or speed up a parameter.
 | |
| + Event API : Added new function Event::getState. Replaces Event::isPlaying and
 | |
|   provides more information on the state of an event.
 | |
| + Event API : Added EVENT_MODE parameter to getEvent/loadEventData functions.
 | |
| + Event API : Added nonblocking event loading. Pass EVENT_NONBLOCKING to 
 | |
|   getEvent/getGroup.
 | |
| + Event API : Improved event loading speed.
 | |
| + Event API : Added EVENT_ERROR_ON_DISKACCESS for users that want to trap when
 | |
|   fmod does disk access in getEvent.
 | |
| + Event API : Added EVENT_CALLBACKTYPE_NET_MODIFIED event callback. This callback is 
 | |
|   called when someone changes an event property over the network.
 | |
| + Added FMOD_ERR_FILE_UNWANTED error code for use by event api.
 | |
| 
 | |
| - Fixed IMA ADPCM and FMOD_CREATECOMPRESSEDSAMPLE issues and crash.
 | |
| - Added Codewarrior libraries and example projects for PS2.
 | |
| - GameCube - Fixed crash when shutting down then re-initialising library.
 | |
| - GameCube - Fixed bug in Channel::SetPosition that was causing problems with
 | |
|   virtual voices.
 | |
| - GameCube - Fixed clicking sound occuring sometimes when un-pausing a channel.
 | |
| - GameCube - Fixed looped sounds playing from loop point rather than the
 | |
|   start of the sound.
 | |
| - GameCube - Fixed bug in Channel::isPlaying that was returning true sometimes
 | |
|   even when a channel has been stopped.
 | |
| - Xbox360 - Fixed XMA related crash when .XMA files were freed then new 
 | |
|   ones per played.
 | |
| - Xbox360 - Fixed XMA related crash when loading more than 288 xma files.
 | |
| - Fixed oscillators being played as 3D causing a crash.
 | |
| - Fixed FMOD_NONBLOCKING on PS2.
 | |
| - Fixed initialsubsound member of FMOD_CREATESOUNDEXINFO structure not being
 | |
|   parsed.
 | |
| - Fixed obscure click / quality issue with FMOD_SOFTWARE + streams.
 | |
| - Fixed cone behaviour again.
 | |
| - Event API : Added all event properties to event property enum list.
 | |
| - Event API : Fixed problem when loading projects that had the same EventGroup 
 | |
|   names.
 | |
| - Event API : Fixed memory leak when loading multiple projects.
 | |
| - Linux - Fixed memory overwrite bug in System::getNumDrivers that was causing
 | |
|   crashes in some cases.
 | |
| - Fixed click/glitch at end of FMOD_CREATECOMPRESSEDSAMPLE based samples.
 | |
| 
 | |
| 24/2/06 4.03.02
 | |
| ---------------
 | |
| 
 | |
| - Event API : Fixed Memory::Initialize issue.
 | |
| - Fixed XMA problem with FMOD_HARDWARE, ignore previous comment in 4.03.01.
 | |
| - Fixed FMOD Event api to not fail loading event groups with no events in them.
 | |
| - Gamecube - fixed multichannel GCADPCM playback issue.
 | |
| - Fixed cone support.  DirectSound's native cone support is removed because it 
 | |
|   sucks, and instead FMOD emulates cone support in Directsound mode by using 
 | |
|   its own algorithm and just adjusting the volume of the voice manually.  
 | |
| 
 | |
| 22/2/06 4.03.01 - Official release
 | |
| ----------------------------------
 | |
| 
 | |
| + PS2 added fmodps2.h and FMOD_PS2_EXTRADRIVERDATA to allow users to set sifcmd
 | |
|   info if they or other middleware is using the sifmcmd interface.
 | |
| 
 | |
| - Fixed stutter issue with IMA ADPCM sample data and FMOD_CREATECOMPRESSEDSAMPLE.
 | |
| - Fixed sounds specified as FMOD_HARDWARE falling back to software mode when no
 | |
|   hardware is available.
 | |
| - Fixed badly encoded XMA files not stopping using FMOD_SOFTWARE.  With 
 | |
|   FMOD_HARDWARE there is a problem in microsoft's XAudio library so please contact
 | |
|   them (as we have) or re-encode xma files with extra silence or different quality
 | |
|   settings to try and work around bug in the encoder.  Otherwise use FMOD_SOFTWARE.
 | |
| - Fixed crash in Sound::release in certain cases.
 | |
| - Fixed GameCube Channel::setPosition causing sounds to stop playing.
 | |
| - Fixed GameCube crashing when loading multichannel fsb files.
 | |
| - Updated docs for PSP tutorial to tell user to link to correct sas library.
 | |
| - Removed System::updateFinished for now as it is not used anywhere.
 | |
| - Fixed 3D XMA or MPEG stereo FMOD_CREATECOMPRESSEDSAMPLE voices crashing.
 | |
| - Fixed stereo 3d sounds causing voice dropouts sometimes.
 | |
| - Stereo 3D sounds in FMOD_SOFTWARE now only 1 physical voice instead of 2 mono
 | |
|   voices.
 | |
| - Stereo 3D sounds in FMOD_HARDWARE on Xbox 360 now use 1 physical voice 
 | |
|   instead of 2 mono voices.
 | |
| 
 | |
| 11/2/06 4.03.00
 | |
| ----------------------------------
 | |
| 
 | |
| + Added ChannelGroup::overrideSpeakerMix
 | |
| 
 | |
| - Fixed rare timing crash with FMOD_CREATECOMPRESSEDSAMPLE support.
 | |
| - Fixed Channel::setReverbProperties/getReverbProperties on streams.
 | |
| - Fixed performance issue with Channel::setVolume on EAX based souncards.
 | |
| - Fix PS2 semaphore kernel message causing problems with ProDG debugger.
 | |
| - Stopped wav files with loop points automatically looping if their loop
 | |
|   count was 0.
 | |
| - Fixed crash when using custom rolloff curves.
 | |
| 
 | |
| 2/2/06 4.02.10
 | |
| ---------------
 | |
| 
 | |
| + Added IMA ADPCM to FMOD_CREATECOMPRESSEDSAMPLE support.  Now FMOD Ex can play
 | |
|   ADPCM samples as if they were a native sample format without decompressing 
 | |
|   the whole thing or needing to stream it.  
 | |
|   Try it out!  Now for a small increase in CPU usage, samples can stay compressed 
 | |
|   as ADPCM (and also MP2, MP3 and XMA now), saving huge amounts of memory!
 | |
| 
 | |
| - Fixed crash with sounds being released that were 3d and streamed and stereo,
 | |
|   with other streams playing.
 | |
| - Fixed crash in new XMA FMOD_CREATECOMPRESSEDSAMPLE support on xbox360 when
 | |
|   channels were going virtual then coming back again.
 | |
| - Fixed virtual voices crash with streams that were 3d and stereo.
 | |
| - Fixed .mod file loading problem.
 | |
| - Fixed Channel::setMute being ignored on 3d sounds.
 | |
| - Fixed Sound::getSubSound/Sound::release issue.
 | |
| - Fixed streaming FSB and FMOD_NONBLOCKING issue.
 | |
| - Stopped resetting the length of a FMOD_CREATECOMPRESSEDSAMPLE based sound
 | |
|   if it was VBR after seeking, as the next time it played it was possibly 
 | |
|   truncating the sound due to the miscalculated length.  This does mean
 | |
|   that Sound::getTime will be innacurate when the sound loops though for
 | |
|   VBR sounds.  FMOD_ACCURATETIME would fix it.
 | |
| - Fix xbox360 isplaying bug with FMOD_HARDWARE based sounds.
 | |
| - Fixed support for .XMA files that only had 1 frame in them.
 | |
| 
 | |
| 27/1/06 4.02.09
 | |
| ---------------
 | |
| 
 | |
| - Fixed bug with multichannel 24 bit samples being 3D.
 | |
| - Fixed multichannel 3D samples and getSpectrum / getWaveData.
 | |
| - GameCube - Lowered hardware channel count to prevent voices from dropping.
 | |
| - Linux - Fixed crash when calling System::close() on some machines.
 | |
| - Fixed WAV loader for wavs with nested chunks.
 | |
| - Fixed FMOD_NONBLOCKING memory leak and loading errors.
 | |
| - Fixed FSB 'basicheaders' support especially with XMA (crash).
 | |
| - Fixed FMOD_DSP_CREATECALLBACK not passing in instance parameter.
 | |
| 
 | |
| 23/1/06 4.02.08
 | |
| ---------------
 | |
| 
 | |
| + Update FMOD designer programmers tutorial.
 | |
| + Added XMA support (xbox360 only) to FMOD_CREATECOMPRESSEDSAMPLE support.
 | |
|   Now fmod software mixer can play compressed XMA samples which means no more
 | |
|   reliance on XAudio.  Now effects can be used with compressed samples!
 | |
| + GameCube - Added virtual voices example.
 | |
| + Added sync point support to ASF/WMA codec.  Now markers can be synced to from 
 | |
|   these types of files as well.
 | |
| 
 | |
| - Reduced memory usage on init by 9k.
 | |
| - Fixed FMOD_ERR_OUTPUT_CREATEBUFFER error in multichannel 3d sounds coming 
 | |
|   from System::createSound.
 | |
| - GameCube - Fixed problems with virtual voices.
 | |
| - Fixed FMOD_3D_HEADRELATIVE not keeping orientation relative in FMOD_SOFTWARE
 | |
|   mode.
 | |
| 
 | |
| 12/1/06 4.02.07
 | |
| ---------------
 | |
| 
 | |
| - Fixed pitch abnormality in 3D sound.
 | |
| - Fixed volume level of channel when it is at the same position as the listener, 
 | |
|   in 5.1 mode.  Now instead of being placed in all speakers at full volume, the 
 | |
|   sound is placed at all speakers but at a correct (lower) volume.
 | |
| - Fix bug with multichannel sounds (ie stereo and above) loaded as 3D failing.
 | |
| 
 | |
| 11/1/06 4.02.06
 | |
| ---------------
 | |
| 
 | |
| + Added FMOD_CREATECOMPRESSEDSAMPLE.  Compressed sample playback support!
 | |
|   FMOD Ex can now load MP2 and MP3 data into memory, and play 
 | |
|   it back without any of the restrictions of streams may have.  
 | |
|   Save megabytes of memory by storing and playing back samples in their native
 | |
|   compressed format!  Streams should be still used if you don't want to store
 | |
|   any sample data in memory and would prefer to play it from disk.
 | |
|   ADPCM and XMA support coming soon.
 | |
| + Added 'suggestedsoundtype' to FMOD_CREATESOUNDEXINFO.  As fmod has to scan 
 | |
|   every codec type when you open a file, this can be used to speed it up!
 | |
| + Added support for wav files with ogg encoded data without using windows 
 | |
|   codecs.
 | |
| + Added System::setAdvancedSettings / System::getAdvancedSettings to control
 | |
|   cpu and memory usage of new FMOD_CREATECOMPRESSEDSAMPLE feature.  Other
 | |
|   advanced settings not related to this may be added in the future.
 | |
| + Added 'Room' room effect level support in FMOD_REVERB_CHANNELPROPERTIES for
 | |
|   Xbox360.
 | |
| 
 | |
| - Fixed midi playback on big endian machines. (xbox360, gc, ps3, mac etc).
 | |
| - ASIO recording now allows any sound channel count to be recorded to (instead
 | |
|   of return FMOD_ERR_FORMAT).  If ASIO is recording as mono and you pass a 
 | |
|   stereo sound in, then only the left channel will be recorded to.  
 | |
|   If ASIO is recording as stereo and you pass a mono sound in, only the left 
 | |
|   part of the recorded signal will be put into the mono sound.
 | |
| - Fix crash releasing a 2 subsounds from an fsb with Sound::release.  Normally 
 | |
|   you would just release the parent FSB sound but you can do this as well now.
 | |
|   (maybe the user wants to replace one subsound with another).
 | |
| - Fixed links in virtual voice tutorial docs.
 | |
| - Fixed playback on certain .it files that use extremely high pitched sounds
 | |
|   because fmod's internal software mixer simply had a limit that was too low 
 | |
|   for it.
 | |
| - Fix memory leak in sound release.
 | |
| - Releasing a ChannelGroup with child groups now returns the children back to 
 | |
|   the master channel group.  Before it didn't and releasing an orphan group 
 | |
|   would cause an exception.
 | |
| - Fixed 3D software sound not working properly in multichannel output modes.
 | |
| - Fixed 3D sound with multiple listeners.
 | |
| - GameCube - Fixed sounds not starting paused when requested to do so in playSound.
 | |
| - GameCube - Fixed poping when sound was started at low volume following a sound
 | |
|   that was playing at a high volume.
 | |
| - Fixed WMA playback on Xbox cutting off before it reached the end.
 | |
| 
 | |
| * Changed Sound::getLength to return 0xffffffff for FMOD_TIMEUNIT_MS 
 | |
|   and FMOD_TIMEUNIT_PCMBYTES when the stream was of unlimited length (ie a 
 | |
|   netstream)
 | |
| 
 | |
| 21/12/05 4.02.05
 | |
| ----------------
 | |
| 
 | |
| + Custom rolloff curve support added!  See new Sound::set3DCustomRolloff / 
 | |
|   Channel::set3DCustomRolloff.  Specify an array of points (distance vs volume)
 | |
|   and FMOD will linearly interpolate between them.
 | |
| 
 | |
| - Fixed small looping streams playback behaviour after Sound::setMode 
 | |
|   was called.
 | |
| - Fixed crash on mod/s3m/xm/it/mid.
 | |
| - FMOD_INIT_DSOUND_DEFERRED removed.  All 3d calcs are now deferred 
 | |
|   (makes it more like software mode which is 'deferred' anyway).  
 | |
|   May improve 3d performance in dsound on win32.
 | |
| - Removed redundant 3d calculations which should improve performance.
 | |
| 
 | |
| * Changed win32 hardware 'linear rolloff' emulation (because dsound3d only 
 | |
|   supports log) to match the software based rolloff better.
 | |
| * Sound::setMode and Channel::setMode can now switch between 
 | |
|   FMOD_3D_LINEARROLLOFF, FMOD_3D_CUSTOMROLLOFF & FMOD_3D_LOGROLLOFF.
 | |
| 
 | |
| 
 | |
| 19/12/05 4.02.04
 | |
| ----------------
 | |
| 
 | |
| + Added FMOD_SPEAKERMODE_SURROUND.
 | |
| + Added FMOD_SPEAKER_MONO as an alias to use when in FMOD_SPEAKERMODE_MONO 
 | |
|   mode (instead of having to use 0, or FMOD_SPEAKER_FRONT_LEFT).
 | |
| + Added error codes FMOD_ERR_NEEDS2D and FMOD_ERR_NEEDS3D so that 3d 
 | |
|   functions that are called on 2d channels/sounds return an error (ie set3D/
 | |
|   get3D type functions), and vice versa (ie a 3D sound calling setPan).
 | |
| + Added FMOD_SOUND_FORMAT_MPEG.
 | |
| + Added lengthbytes to FMOD_CODEC_WAVEFORMAT structure.  Note!  Plugins 
 | |
|   should be recompiled with this structure to ensure compatibility.
 | |
| 
 | |
| - Memory reduction by about 150k at init with 100 channels.  
 | |
| - Fixed 3D panning issue in multispeaker output modes.
 | |
| - Fixed 3D volume issue in multispeaker output modes.
 | |
| - Fixed Channel::getAudiblity not reflecting channel group volume.
 | |
| - Fixed adding an effect to a channel played with System::playDSP not working.
 | |
| - Fixed attachFileSystem being global instead of per system object 
 | |
|   as it should have been.
 | |
| - Win32 mixer accidently reverted back to C version.  Put back to SSE as it 
 | |
|   was supposed to be. (performance improvement again)
 | |
| - Fixed ChannelGroup::stop not recursively stopping channel groups.
 | |
| - Fixed channels not resetting themselves to the master channelgroup once they 
 | |
|   were finished, which could lead to unpredictable behaviour.
 | |
| - Allowed some corrupted midi files to play.
 | |
| - Fixed FMOD_OUTPUT_WAVWRITER_NRT not loading automatically properly when using
 | |
|   fmodexp.dll.
 | |
| - Fixed 'virtual voice leak' which caused FMOD_ERR_CHANNEL_ALLOC sometimes.
 | |
| - Fixed glitch seeking an mp3 near the start.
 | |
| - Improved error detection when seeking randomly into an mp3.
 | |
| - Xbox360 dashboard music detection improved so music in a music channelgroup 
 | |
|   doesn't play while dashboard music is playing.
 | |
| 
 | |
| * Changed System::setSoftwareFormat to set speakermode to FMOD_SPEAKERMODE_RAW 
 | |
|   if anything besides 0 is specified for numoutputchannels.  0 retains the 
 | |
|   previously set speaker mode.
 | |
| * Changed Channel::setSpeakerLevels to give an error if a speaker is specified 
 | |
|   that shouldn't work on the current speaker mode.
 | |
| * Changed FMOD_SPEAKERMODE_4POINT1 to FMOD_SPEAKERMODE_QUAD.
 | |
| * Renamed FMOD_SOUND_FORMAT_XADPCM to FMOD_SOUND_FORMAT_IMAADPCM.
 | |
| 
 | |
| 25/11/05 4.02.03
 | |
| ----------------
 | |
| 
 | |
| + Added PlayStation 2 port.
 | |
| + Added Channel::getIndex.
 | |
| 
 | |
| - Fixed lowpass and reverb filter when processing channels greater than stereo.
 | |
| - Fixed mixed mono/stereo sounds in FSB file playing at half speed, when sound 
 | |
|   was loaded as sample and not stream.
 | |
| - Stopped codec_raw.dll from being loaded which was never an fmod dll anyway 
 | |
|   and just put raw file loading back into the main dll (as it is small anyway).
 | |
| 
 | |
| 17/11/05 4.02.02
 | |
| ----------------
 | |
| 
 | |
| + Added support for another type of floating point wav file (the type that 
 | |
|   adobe audition outputs is different to that of soundforge for example).
 | |
| + Added Prologic II dowmix matrix for 5.1 and 7.1 sounds playing on stereo 
 | |
|   output.
 | |
| + Documentation updates.  Added "Getting started" tutorial to explain 
 | |
|   the key points of using FMOD Ex, and explains the main concepts and gives 
 | |
|   examples to help the user get up and running.
 | |
| + System::setReverbProperties now enables reverb on FMOD_SOFTWARE based sounds!
 | |
|   The reverb parameters are going to be matched and improved to sound as close
 | |
|   to EAX as possible.  It is currently fairly rough, but will be better in 
 | |
|   future releases.
 | |
| + Added C# 'spectrum' example.
 | |
| 
 | |
| - Fixed memory leak with getWaveData.
 | |
| - Fixed FSB mixed format issue.
 | |
| - Fixed mixer bug where stereo sounds played through 5.1 output and using 
 | |
|   non front left / front right panning were causing corrupted noise.
 | |
| - Fixed WMA seeking returning an error sometimes on some files.
 | |
| - Fixed parsing issue with M3U files.
 | |
| 
 | |
| * Changed getWaveData to have a maximum numvalues limit of 16384.  This 
 | |
|   saves a few 100k of ram.
 | |
| 
 | |
| 10/11/05 4.02.01
 | |
| ----------------
 | |
| + Mono and stereo samples can now be mixed in an FSB stream (and even 
 | |
|   sentenced).  In this case the stream is created using a stereo buffer, and
 | |
|   mono sounds are upscaled to stereo in realtime.
 | |
| + Added Visual Basic 'spectrum' example.
 | |
| 
 | |
| - Fixed ALSA not initializing in some distros.
 | |
| - Fixed midi playback error where pitch wheel bends were bending erronously.
 | |
| - Fixed FSB adpcm seeking support.
 | |
| - Fixed playlist files being opened using FMOD_NONBLOCKING flag.  
 | |
|   (relevant to netstream redirects and asx's etc.)
 | |
| - Fixed glitch in some .it files using filters.
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| 
 | |
| 4/11/05 4.02.00 - Official release.
 | |
| -----------------------------------
 | |
| + Optimized fmod_event api to remove any allocs from getEvent if cacheevents
 | |
|   was specified.  Significant performance increase.
 | |
| + Xbox360 - more optimizations regarding System::update.
 | |
| + Linux - Add support for multichannel output in ALSA.
 | |
| + Custom memory system increased in speed meaning performance boost while 
 | |
|   loading.
 | |
| + Optimized 5.1 path for software mixer on all platforms (except for xbox360 
 | |
|   which is already optimized).   Speed increase of about 400%.  
 | |
|   More optimization to 5.1 path to come.  (win32/linux/xbox is not sse yet).
 | |
| 
 | |
| - Xbox360 - Fixed TRC requirement logic where FMOD "music" would resume 
 | |
|   if the user pressed pause in the Xbox360 dashboard.  FMOD "music" now
 | |
|   stays paused until the user returns music control to the game.
 | |
| - Xbox360 - XMA support fixes.  
 | |
| - Linux - ALSA output now cooperates with other applications better.
 | |
| - Mac - Coreaudio support not returning sample rate to system preference 
 | |
|   rate fixed.
 | |
| - Fixed FSB files containing wavs with syncpoints/markers in them from 
 | |
|   crashing when loading.
 | |
| - .IT codec - fixed porta command in volume column not sliding fast enough.
 | |
| - Fixed seeking to the near the end of some mp3 files incorrectly causing 
 | |
|   FMOD_ERR_FILE_EOF.
 | |
| 
 | |
| 21/10/05 4.01.07
 | |
| ----------------
 | |
| 
 | |
| + Xbox 360 - optimized 5.1 mixers.
 | |
| + Optimize mixer to not mix idle dsp units.  Good for channelgroups that only 
 | |
|   have hardware channels assigned to them.
 | |
| + X86 Mac version library added.  Not tested.  Give us feedback!
 | |
| 
 | |
| - Fixed crash on non SSE machines.
 | |
| - Removed clicks from DirectSound software buffers by lowering their mixing 
 | |
|   quality :|  Sounds a lot better now.
 | |
| - Huge memory saving on software mixing engine implemented.
 | |
| - Windows - Fixed issue with VST plugins.
 | |
| - Linux - Fixed cdrom TOC information error.
 | |
| - Xbox360 - Fixed quality issue in stereo sample resampler.
 | |
| - Xbox360 - Fixed clicks in optimized resamplers.
 | |
| 
 | |
| 
 | |
| 14/10/05 4.01.06
 | |
| ----------------
 | |
| 
 | |
| + Added support for 3D stereo/multichannel sounds!  Now stereo (and above) sounds 
 | |
|   can have EAX reverb and can be 3d positioned!  
 | |
|   The left and right part of a sound can even  be positioned in different places 
 | |
|   in 3D space.
 | |
| + Added Channel::set3DSubChannelOffset / get3DSubChannelOffset so that a 
 | |
|   multichannel sound can have each part of its signal positioned in 3d seperately.
 | |
| + Added 'OfflineDecoding' example.
 | |
| + FSB files now store markers out of wav files so that the syncpoint callback 
 | |
|   api automatically works with FSB files as they do with .wav.
 | |
| + Added FMOD_DSP pointer inside the FMOD_DSP_STATE structure, so the callback 
 | |
|   writer can get a handle to the actual instance of the DSP unit that was created 
 | |
|   by the user.  (oops should have been there in the first place!)
 | |
| + Linux now using SSE version of mixers and distortion filter.  Significant speedup.
 | |
| + Linux OSS output possibly more stable.
 | |
| + GameCube - Stereo GCADPCM compessed FSB files now supported.
 | |
| 
 | |
| - Xbox360 - 5.1 output not working fixed.
 | |
| - Xbox360 - Fixed various XMA streaming issues.
 | |
| - Windows - Fixed ASIO support.
 | |
| - Windows - Fixed wav file ACM windows codec support for non natively decoded file types.
 | |
| - Added support for MIDI pitch bend sensitivity message, so MIDI files with non 
 | |
|   default settings sound correct!
 | |
| 
 | |
| 04/10/05 4.01.05
 | |
| ----------------
 | |
| 
 | |
| + Win32, Xbox.  Linear interpolation resampler, mixer, and distortion 
 | |
|   filter optimized using SSE.  Significant speed improvements.
 | |
| + XMA support on Xbox 360 improved.
 | |
| 
 | |
| - Fixed Channel::setPan not working on streams.
 | |
| - Fixed build issues with Xbox 360 libraries.
 | |
| - Fixed fsbankex command line parser.
 | |
| - Fixed Channel::setLoopPoints not working correctly on streams.
 | |
| - Fixed Memory_Initialize crash when calling it multiple times in a row.
 | |
| - Fixed Channel::setMode not recoginizing FMOD_3D_LOGROLLOFF / 
 | |
|   FMOD_3D_LINEARROLLOFF.  fmod_designer log/linear event changes now work.
 | |
| - Fixed loop points not from .wav files that were exported to .FSB files not
 | |
|   being recognized when loaded.
 | |
| 
 | |
| 
 | |
| 29/09/05 4.01.04
 | |
| ----------------
 | |
| 
 | |
| + Huge optimizations on Xbox 360.   Commonly used mixers formats and effects
 | |
|   converted to use vmx128.  Now only taking a fraction of what it used to.
 | |
|   Distortion is the only effect currently optimized.  The rest will come soon.
 | |
| + Added support for Channel::SetSpeakerMix for gamecube, also 3d sound will
 | |
|   support prologic 2 now.
 | |
| 
 | |
| - !! Fixed skipping/'fastforward sound' bug.  This will improve peformance as 
 | |
|   well.
 | |
|   NOTE: UPGRADE NOW FROM VERSION 4.01.01, 4.01.02 OR 4.01.03 TO AVOID THIS BUG.
 | |
| - Fixed fmod.pas inconsistancies.
 | |
| - Fixed stream stopping when encountering corrupted mpeg frames in mpeg codec.
 | |
| - Fixed FLAC looping again?  It looks like there is a bug in libflac which 
 | |
|   corrupts the stack when seeking.  Worked around it for now.
 | |
| 
 | |
| 23/09/05 4.01.03
 | |
| ----------------
 | |
| + Upgraded to libflac 1.1.2.  Looping .FLAC files work better now, also 
 | |
|   decoding speedup.
 | |
| + Event API updated to allow retrieval of user properties in FMOD designer.
 | |
| 
 | |
| - Fixed .OXM files making white noise or crashing in some cases but only on 
 | |
|   big endian machines such as Mac, XBox 360, Gamecube.
 | |
| 
 | |
| * NOTE! - FMOD Ex binaries will not be backward compatible until the API 
 | |
|   design has settled down, which should be very soon.  (probably 4.02.00) 
 | |
| 
 | |
| 19/09/05 4.01.02
 | |
| ----------------
 | |
| + Added documentation for platform specific information for Xbox and Xbox 360.
 | |
|   More to come for the other platforms.
 | |
| 
 | |
| - Fixed System:setMaxHardwareChannels when using 0 to force software mode 
 | |
|   causing loading errors.
 | |
| - Fixed ogg crash and possibly other file format crashes.
 | |
| - Fixed delphi header issue.
 | |
| 
 | |
| * NOTE! - FMOD Ex binaries will not be backward compatible until the API 
 | |
|   design has settled down, which should be very soon.  (probably 4.02.00) 
 | |
| 
 | |
| 16/09/05 4.01.01
 | |
| ----------------
 | |
| + Added FMOD_OUTPUTTYPE_NOSOUND_NRT / FMOD_OUTPUTTYPE_WAVWRITER_NRT.  
 | |
|   Non-realtime versions of FMOD_OUTPUTTYPE_NOSOUND / FMOD_OUTPUTTYPE_WAVWRITER.
 | |
|   User can drive the FMOD mixer with System::update at a faster than realtime
 | |
|   update if they want.
 | |
| + Added FMOD_INIT_STREAM_FROM_UPDATE.  This allows the user to update the 
 | |
|   streamer synchronously from System::update instead of asynchronously from 
 | |
|   the FMOD thread.  Useful in conjunction with the FMOD_OUTPUTTYPE_NOSOUND_NRT /
 | |
|   FMOD_OUTPUTTYPE_WAVWRITER_NRT modes.
 | |
| + Added FMOD_DSP_STATE structure for plugin writers.  This is so plugin writers 
 | |
|   can now attach their own data to a plugin.  Now all 3 types of plugins have 
 | |
|   this functionality.
 | |
| + Upgraded Xbox 360 build to final kits only now, and added XMA sample support.
 | |
| 
 | |
| - Removed FMOD_INIT_NONREALTIME (it didnt do anything anyway).  See new
 | |
|   FMOD_OUTPUTTYPE_NOSOUND_NRT and FMOD_OUTPUTTYPE_WAVWRITER_NRT modes.
 | |
| - Fixed getSoftwareFormat not setting the resamplemethod variable.
 | |
| - Fixed System::setHardwareChannels not switching to software mixing if 
 | |
|   max was set to 0 or min was set higher than what the hardware had.
 | |
| - Fixed ParamEQ filter causing divide by 0 exception in delphi / VB.
 | |
| 
 | |
| * Output indicies have been shifted to allow insertion of new output modes.
 | |
| * Renamed FMOD_CODEC to FMOD_CODEC_STATE for plugin callbacks.
 | |
| * Renamed FMOD_OUTPUT to FMOD_OUTPUT_STATE for plugin callbacks.
 | |
| * Renamed FMOD_DSP * parameters in DSP plugin callbacks to FMOD_DSP_STATE *.
 | |
| * FMOD_OUTPUTTYPE_WAVWRITER behaviour now changed to be 'realtime'.  This
 | |
|   means the user does not update the wav writer with System::update at all,
 | |
|   but it writes out to the wav in realtime using the clock as a timer.
 | |
|   Use FMOD_OUTPUTTYPE_WAVWRITER_NRT for the old System::update style behaviour.
 | |
| 
 | |
| * NOTE! - FMOD Ex binaries will not be backward compatible until the API 
 | |
|   design has settled down, which should be very soon.  (probably 4.02.00)
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| 
 | |
| 9/09/05 4.01.00 - Official release.
 | |
| -----------------------------------
 | |
| + Added ability to change resample method. Added FMOD_DSP_RESAMPLER.  Contains
 | |
|     FMOD_DSP_RESAMPLER_NOINTERP, FMOD_DSP_RESAMPLER_LINEAR,
 | |
|     FMOD_DSP_RESAMPLER_CUBIC, FMOD_DSP_RESAMPLER_SPLINE.
 | |
| + Added more VB and C# examples.
 | |
| 
 | |
| - Fixed FMOD_NONBLOCKING crash with hardware samples.
 | |
| - Fixed midi crash on win98.
 | |
| - Fixed bad ogg internet stream crashing fmod.
 | |
| - Fixed releasing and creating system objects more than 15 times causing 
 | |
|   channel based errors.
 | |
| 
 | |
| * Changed System::setSoftwareFormat and System::getSoftwareFormat to include
 | |
|   interpolation type parameter.  
 | |
| 
 | |
| 25/08/05 4.00.37
 | |
| ----------------
 | |
| 
 | |
| + Added "Number of channels" tag to midi.
 | |
| + Added ChannelGroup::setPitch and ChannelGroup::getPitch
 | |
| + Added ChannelGroup::addGroup which allows nested channel groups.
 | |
| + Added ChannelGroup::getNumGroups and ChannelGroup::getGroup.
 | |
| + Added 'filecallbacks' example.
 | |
| + Added 'recordtodisk' example.
 | |
| 
 | |
| - Fixed user streams.
 | |
| - Fixed .it file crash with new echo filter code.
 | |
| - Fixed crash if buffersize was set to 0 in System::setFileSystem.
 | |
| * Renamed ChannelGroup functions from 'set' to 'override' for those functions 
 | |
|   that dont scale, but go through and overwrite the channel attributes with the 
 | |
|   specified value.
 | |
| 
 | |
| 23/08/05 4.00.36
 | |
| ----------------
 | |
| 
 | |
| + Added XBox 360 build for beta devkits!
 | |
| + Added .IT song message as a tag "Song message".
 | |
| + Added .MOD / .S3M / .XM / .IT channel count as a tag "Number of channels"
 | |
|   for information purposes.  This number does not affect fmod's channel 
 | |
|   allocation in  any way!
 | |
| + Improved 'percentbuffered' value from Sound::getOpenState so that it 
 | |
|   accurately reflects how much of fmod's buffer is filled at the time instead
 | |
|   of just the 'read progress' as it was before (not that useful).
 | |
| + Added support for 'chunked' http streams.
 | |
| + Added FMOD_DSP_TYPE_ITECHO.
 | |
| + Added cross platform support for .IT files that use the DirectX Media echo 
 | |
|   effect!  This is from .IT files written with Modplug Tracker.
 | |
|   FMOD emulates the DirectX echo filter so that songs with this effect will
 | |
|   play on ANY platform!  No other .IT player can claim this!
 | |
| 
 | |
| - Fix paused flag being ignored in System::playDSP.
 | |
| - Fixed ogg vorbis netstream stutter on startup.
 | |
| - Fixed oscillators and setFrequency with a negative value causing crash.
 | |
| - Fixed winamp plugins in ASIO mode.
 | |
| - Fixed netstreams stalling that used FMOD_ACCURATETIME.
 | |
| - Fixed ASF/WMA tags not returning certain entries as FMOD_TAGDATATYPE_INT 
 | |
|   or FMOD_TAGDATATYPE_BINARY
 | |
| - Fixed MIDI format detection so more midi files now load. (Thanks Mike Ulik
 | |
|   and his 200,000 midi files :| )
 | |
| - Fixed icecast streams not updating their tags when switching songs.
 | |
| - Fixed loading crash on certain .IT files.
 | |
| - Fixed echo filter.
 | |
| - Fixed documentation on callbacks.
 | |
| 
 | |
| * Renamed FMOD_DSP_TYPE_LOWPASS2 to FMOD_DSP_TYPE_ITLOWPASS.
 | |
| 
 | |
| 12/08/05 4.00.35
 | |
| ----------------
 | |
| 
 | |
| + Added 64bit Linux (AMD64) support.
 | |
| + More VB examples.
 | |
| + Added 3D listener functions to EventSystem class.
 | |
| + Gamecube version available.
 | |
| + XCode projects added to examples in Mac release.
 | |
| + Added FMOD_DSP_ECHO_DRYMIX and FMOD_DSP_ECHO_WETMIX parameters to 
 | |
|   echo filter.
 | |
| + Echo filter 20-30% faster.
 | |
| + Added support for special "3d distance" parameter in fmod_event 
 | |
|   library.  Now you can specify envelopes in the fmod designer tool
 | |
|   to react to 3d distance as the game runs!
 | |
| + Added http basic authentication support for icecast streams that have 
 | |
|   listener authentication.
 | |
| 
 | |
| - Fixed Channel::setMode not updating loop mode on streams properly.
 | |
| - Fixed Channel::setMute on channels not working when using FMOD_3D and 
 | |
|   FMOD_SOFTWARE based sound.
 | |
| - FSB bugfixes, including basicheaders support and ADPCM support.
 | |
| - FMOD_INIT_DISABLESOFTWARE fixed.
 | |
| - Fixed issues with creating and releasing new FMOD_SYSTEM/System objects 
 | |
|   while streams were playing in an existing object.
 | |
| - Fixed support for FMOD_DSP_TYPE_MIXER.
 | |
| - Removed FMOD_DSP_ECHO_FEEDBACK.  Just use FMOD_DSP_ECHO_DECAYRATIO which
 | |
|   does the same thing.
 | |
| - Fixed System::close/release related hang if the user did not release 
 | |
|   all channel groups they had created.
 | |
| 
 | |
| * Changed bitfield constants to #defines.  In C you can't define global
 | |
|   constants because the C compiler doesn't regard const ints as compile time 
 | |
|   constants.   C++ does, but we have to support both C and C++ :(
 | |
| 
 | |
| 1/8/05 4.00.34
 | |
| --------------
 | |
| 
 | |
| + Added support for S9F effect (backwards playback) in .IT format.
 | |
| + Added DSP::setInputLevels / DSP::getInputLevels.
 | |
| + Added ChannelGroup::set3DAttributes.
 | |
| + Added dsp_effectperspeaker example.  This shows some DSP network
 | |
|   manipulation.  A different dsp effect is put on each output speaker
 | |
|   and only one sound is playing!
 | |
| + Added loadfrommemory example.  This just shows how to load a file from 
 | |
|   memory rather than from disk.
 | |
| + Added FMOD_IGNORETAGS.  This enables the user to skip any redundant/extra 
 | |
|   disc access if loading from a slow medium such as CD.
 | |
| 
 | |
| - Fixed VBR MP3s ending prematurely. (unless FMOD_ACCURATETIME was used).
 | |
| - Fixed playlist example not loading files with relative paths.
 | |
| - Fixed mac thread issue causing high cpu usage.
 | |
| - Fixed linux compile issue.
 | |
| - Fixed FMOD_OUTPUT_WAVWRITER on big endian platforms. (mac/xbox360/gc)
 | |
| - Fixed WinMM output initialization on Windows 98.
 | |
| - Fixed crash on XM files with bidi loops.
 | |
| - Fixed mod, s3m & xm with speed = 0 freezing the mod playback,
 | |
|   it is now ignored.
 | |
| - Fixed MIDI issues, namely corrupted and badly written midi files!
 | |
| - Removed stack overflow issue in MPEG codec.
 | |
| - FMOD_NORMAL removed.  Just use FMOD_DEFAULT.
 | |
| - Broken AAC libfaad support removed.  We will have to work out a 
 | |
|   licensing agreement for the more improved libfaad2 before continuing 
 | |
|   support for this again.
 | |
| 
 | |
| * FMOD Ex now has 27 examples!
 | |
| * Changed bitfield enums to const ints so casting back to enum 
 | |
|   type isn't needed when combining flags.
 | |
| 
 | |
| -------------------------------------------------------------------------------
 | |
| 
 | |
| 16/7/05 4.00.33 - Official release.
 | |
| -----------------------------------
 | |
| 
 | |
| FMOD Ex is now NON BETA.
 | |
| 
 | |
| + Windows 64bit AMD64 build added!
 | |
| + Added good quality software reverb! FMOD_DSP_TYPE_REVERB.   
 | |
|   Now FMOD_SOFTWARE mixed voices can have reverb, AND 5.1 output!
 | |
| + Added recording support to ESD output in linux.
 | |
| + Added ChannelGroup class.  This allows channels to be grouped for parameter
 | |
|   control or effect submixing! (ie add an effect to a channel group)
 | |
| + Added channelgroups example.
 | |
| + Added submixing example.
 | |
| 
 | |
| - Fixed Sound::getName not working in v32 only.
 | |
| - Hopefully last speaker issue fix.  WAVEFORMATEXTENSIBLE channelmask support
 | |
|   is seriously broken on Creative and other sound cards.  Reasons:
 | |
|   1.  Audigy NX bluescreens if you use WAVEFORMATEXTENSIBLE even for plain PCM,
 | |
|       mono, 16bit data.
 | |
|   2.  SBLive value reported to go silent if dwChannelMask is 0, even though the 
 | |
|       Microsoft docs say 0 = direct out!
 | |
|   3.  Even if you specify SPEAKER_STEREO as is recommended by Microsoft in 
 | |
|       ksmedia.h, the panning biases towards the left on some cards.
 | |
|   FMOD now only uses WAVEFORMATEXTENSIBLE for greater than stereo or 24/32bit 
 | |
|   audio data.
 | |
| - Fixed .S3M files with 16bit samples.
 | |
| - Fixed .S3M files with stereo samples.
 | |
| - Removed FMOD_CHANNEL_ALL.  To affect all channels use the new 
 | |
|   System::getChannelGroup function which by default has all channels in 
 | |
|   its group.
 | |
| - Fixed MIDI playback with some bad files.
 | |
| - Removed System::setMasterVolume / System::getMasterVolume.  To make master 
 | |
|   volume use a System::getMasterChannelGroup then call ChannelGroup::setVolume.
 | |
| - Removed Channel::setVolumeAbsolute.  To do this just create a new 
 | |
|   ChannelGroup and add the channel to it that you don't want affected.
 | |
| 
 | |
| * System::playSound and System::playDSP change 'channelindex' parameter from
 | |
|   'int' to encourage more people to use FMOD_CHANNEL_FREE instead of raw 
 | |
|   channel indices.  To use a raw channel index you will have to cast the
 | |
|   number to the FMOD_CHANNELINDEX type, making it an 'advanced' feature.
 | |
|   If you are already using FMOD_CHANNEL_FREE you won't notice a difference.
 | |
| * Visual Basic only.  FMOD_System_CreateSound now removes the exinfo param,
 | |
|   and to pass it in a new function is created called FMOD_System_CreateSoundEx.
 | |
| * FMOD_OUTPUT_GETDRIVERCAPSCALLBACK parameter list changed.
 | |
| * Removed FMOD_OUTPUT_STARTCALLBACK.
 | |
| * Removed FMOD_OUTPUT_STOPCALLBACK.
 | |
| 
 | |
| 8/7/05 4.00.32 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added winamp DSP plugin support.
 | |
| + Added WAVEFORMATEXTENSIBLE style 'channelmask' variable into 
 | |
|   FMOD_CODEC_WAVEFORMAT.
 | |
| + Playlist support added. ASX, PLS. M3U and WAX.
 | |
|   Added FMOD_SOUND_TYPE_PLAYLIST, FMOD_TAGTYPE_PLAYLIST.
 | |
| + Added Synchronization point API.  These points can come from markers 
 | |
|   embedded in wav files, and can also generate channel callbacks.
 | |
|     Sound::getNumSyncPoints
 | |
|     Sound::getSyncPoint    
 | |
|     Sound::getSyncPointInfo
 | |
|     Sound::addSyncPoint    
 | |
|     Sound::deleteSyncPoint
 | |
| + Added support for FMOD_CHANNEL_CALLBACKTYPE_SYNCPOINT.
 | |
| + Added FMOD_3D_LOGROLLOFF and FMOD_3D_LINEARROLLOFF.  Now you can
 | |
|   treat min/max distance as volume = full and volume = 0 and FMOD 
 | |
|   will linearly fade between them if you choose FMOD_3D_LINEARROLLOFF.
 | |
| 
 | |
| + Multichannel WAV files with alternate/non default speaker mappings now 
 | |
|   map the speaker output correctly into a sound created with FMOD_HARDWARE 
 | |
|   under directsound.  FMOD_SOFTWARE based wavs are not affected at this time.
 | |
| 
 | |
| - Fixed 3rd party plugin support not seeking properly.
 | |
| - Fixed createSound with no loop flags setting sound to loop instead of oneshot
 | |
|   which should have been the default.
 | |
| - Fixed playing a sample from an end callback crash.
 | |
| - Speaker assignment fixes.
 | |
| - Soundcreate callback in a codec being called properly now for a stream that 
 | |
|   doesn't contain subsounds.
 | |
| - Removed FMOD_MPEGHALFRATE.
 | |
| 
 | |
| * Renamed Channel::setOcclusion / getOcclusion to set3DOcclusion / set3DOcclusion
 | |
|   so that it groups better with the other functions.
 | |
| * Shuffled channel and sound class functions around a bit to be more logical.
 | |
| 
 | |
| 24/6/05 4.00.31 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added FMOD_ERR_MEMORY_IOP, FMOD_ERR_MEMORY_SRAM.
 | |
| + Better AIFF support including AIFC (non compressed).
 | |
| + More documentation.  API reference now 'complete'.  More refining and 
 | |
|   additions most likely need to be made!
 | |
| 
 | |
| - Fixed pcmreadcallback in user streams not passing in the right sound pointer.
 | |
| - Fixed ogg vorbis not playing as a netstream.
 | |
| - Removed 'subsound' from FMOD_CODEC_GETPOSITIONCALLBACK.
 | |
| - Fixed Channel::setPosition inconsitancy when calling this function 2 times 
 | |
|   very quickly next to each other
 | |
| - Error checked getWaveData and getSpectrum for channeloffset being larger than
 | |
|   number of channels.
 | |
| 
 | |
| 9/6/05 4.00.30 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added FMOD_TIMEUNIT_MODPATTERN.
 | |
| + Added API documentation to Geometry class.
 | |
| 
 | |
| - Fixed mod/s3m/xm/it/midi crash.
 | |
| - Fixed C# dsp effect enum list.
 | |
| - Fixed FMOD_CHANNEL_REUSE bug.  (and therefore the generatetone example)
 | |
| - Fixed stream flushing its buffer twice sometimes.
 | |
| - Fixed some strange cases of stream playback causing new streams to play 
 | |
|   silent.
 | |
| - Removed FMOD_DSP_TYPE_FFT that didn't actually do anything?  Maybe later.
 | |
| 
 | |
| 6/6/05 4.00.29 BETA
 | |
| -------------------
 | |
| 
 | |
| + GameCube support added.
 | |
| + XBox 360 support added.
 | |
| + Tags embedded in http based streams now work! (As long as they are at the 
 | |
|   start of the file)
 | |
| + Sound::getName now returns name of sound by using tags or embedded song name.
 | |
| + Added name field to FMOD_CODEC_WAVEFORMAT.
 | |
| + Added Sound::setSubSoundSentence.  Gapless stream playback is now available!
 | |
| + Added FMOD_ERR_ALREADYLOCKED.
 | |
| + Added DirectX 3 support for FMOD software mixing only, so that pre-dx8 stuff
 | |
|   like VirtualPC don't fail.
 | |
| + Added 'decodebuffersize' to FMOD_CREATESOUNDEXINFO.
 | |
| + Increased code name size from 32 bytes to 256 bytes.
 | |
| + Added "Real-time stitching" example.
 | |
| + Added ability to create user sounds with subsounds.
 | |
| + More documentation.
 | |
| + .it loader several times faster on songs with stereo samples in them.
 | |
| + Added FMOD_TIMEUNIT_SENTENCE_MS, FMOD_TIMEUNIT_SENTENCE_PCM, 
 | |
|   FMOD_TIMEUNIT_SENTENCE_PCMBYTES, FMOD_TIMEUNIT_SENTENCE,
 | |
|   FMOD_TIMEUNIT_SENTENCE_SUBSOUND and FMOD_TIMEUNIT_BUFFERED.
 | |
| + Added System::setSoftwareChannels / System::getSoftwareChannels instead of
 | |
|   setting it in System::init.
 | |
| 
 | |
| - Fixed memory leak in createsound/stream if 'file not found'.
 | |
| - Fixed memory leak in createsound/stream if 'format not recognized'.
 | |
| - Fixed sub-sounds (ie CDDA, DLS or FSB) not displaying their names.
 | |
| - Fixed crash on certain .IT files.
 | |
| - Fixed silent samples on .S3M files.
 | |
| - Fixed bpm issue on .S3M files.
 | |
| - Fixed file offset bug.
 | |
| - Fixed Channel::getWaveData not working for streams.
 | |
| - Fixed certain mp3 netstreams with large amounts of redundant crap at the 
 | |
|   start.
 | |
| - Fixed Channel::setMode not taking effect on software based channels.
 | |
| - Fixed Channel::getPosition flickering on userstreams and maybe rare cases
 | |
|   on normal streams.
 | |
| - Fixed System::setFileSystem.
 | |
| - Fixed FMOD_CHANNEL_REUSE now returns same handle value instead of reference counting it.
 | |
| - Fixed (XBOX only) pausing related bug.
 | |
| - Fixed Streams hanging/crashing after 24 hours of playback.
 | |
| - Removed 'levels' from Sound::setDefaults.
 | |
| - Removed 'levels' from DSP::setDefaults.
 | |
| - Removed Channel::getLevels.  Just use Channel::getWaveData(level, 1, 0) 
 | |
|   instead.  Also you could use larger values than 1 and scan the array
 | |
|   for the largest value, or maybe average them out.
 | |
| - Removed Channel::setNextSound / getNextSound.
 | |
| - Removed FMOD_OPENSTATE_LOADINGSUBSOUND.
 | |
| - Removed numsoftwarechannels from System::init.
 | |
| - Removed System::setMaxInputChannels / System::getMaxInputChannels.  This is now a 
 | |
|   paramater to System::setSoftwareFormat / System::getSoftwareFormat.
 | |
| 
 | |
| * Sounds with multiple subsounds (CDDA/FSB/DLS etc) when opened as streams
 | |
|   now play as one long sentence containing every subsound, if the parent
 | |
|   sound is played.  To play just the first subsound, the user can call
 | |
|   parentsound->getSubSound(0, &subsound); and play the subsound.
 | |
| * Changed end callback behaviour to callback only when a sound ends,
 | |
|   and not when stopped by the user.
 | |
| * If FMOD_CREATESAMPLE is used with mod/s3m/xm/it, and FMOD_ACCURATETIME is not,
 | |
|   accurate time is forced so that it doesn't just fail with FMOD_ERR_MEMORY.
 | |
| * Changed FMOD_FILE_SEEKCALLBACK to only support offset.  SEEK_CUR and SEEK_END 
 | |
|   are pointless, FMOD works it out and always gives an absolute offset to the user.
 | |
| * Changed System::setStreamBufferSize / System::getStreamBufferSize parameters.  
 | |
|   Removed 'decodebuffersize'.  (now in FMOD_CREATESOUNDEXINFO)
 | |
| * Changed FMOD_TIMEUNIT_ORDER to FMOD_TIMEUNIT_MODORDER.
 | |
| * Changed FMOD_TIMEUNIT_ROW to FMOD_TIMEUNIT_MODROW.
 | |
| * Renamed CDDA example to cdplayer.  Updated some of the code and comments inside.
 | |
| * Changed System::setMinMaxHWChannels to System::setHardwareChannels.
 | |
| * Changed System::getNumHWChannels to System::getHardwareChannels.  Note! num2d
 | |
|   and num3d parameters have been swapped around.
 | |
| * Changed System::setOutputPlugin   / System::getOutputPlugin to 
 | |
|           System::setOutputByPlugin / System::getOutputByPlugin
 | |
| * Changed System::setOutputFormat / System::getOutputFormat to 
 | |
|           System::setSoftwareFormat / System::getSoftwareFormat and added a 
 | |
|           maxinputchannels parameter.
 | |
| * Changed FMOD_OUTPUT_INITCALLBACK to use void *extradriverdata instead of
 | |
|   const void *hwnd.
 | |
| 
 | |
| 
 | |
| 9/5/05 4.00.28 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added 'userdata' member to FMOD_DSP_DESCRIPTION structure.
 | |
| 
 | |
| - Fixed FMOD_OPENMEMORY not working after beta 27 file offset change.
 | |
| - Removed FMOD_DSP structure.
 | |
| - Fixed pointer in DSP callbacks not being the same as the one created with.
 | |
| 
 | |
| 6/5/05 4.00.27 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added 'controlpanelspeakermode' to System::getDriverCaps.
 | |
| + Added C# and VB versions of the 'effects' example.
 | |
| 
 | |
| - Fixed sounds returning invalid handle if a system object was released 
 | |
|   then re-created.
 | |
| - Fixed Sound::seekData giving wrong results.
 | |
| - Fixed file offset / length bug in System::createSound.
 | |
| - Fixed sounds with no FMOD_SOFTWARE or FMOD_HARDWARE specified crashing
 | |
|   when being swapped out in a virtual channel.
 | |
| 
 | |
| * Changed System::getDriverCaps to add an extra parameter.
 | |
| * Changed FMOD_SPEAKERMODE_NONE to FMOD_SPEAKERMODE_RAW.
 | |
| * Changed FMOD_OUTPUT_GETDRIVERCAPSCALLBACK to return the platform specific 
 | |
|   speaker setting based on the control panel or operating system.
 | |
| 
 | |
| 3/5/05 4.00.26 BETA
 | |
| -------------------
 | |
| 
 | |
| + Implemented Sound::setLoopCount / Sound::getLoopCount and 
 | |
|   Channel::setLoopCount / Channel::getLoopCount.  Works on static samples
 | |
|   as well as streams!
 | |
| + Added FSBankEXlib.  Available in Multithreaded, and Multithreaded DLL builds.
 | |
| + Added a few more docs.
 | |
| 
 | |
| - Fixed DSP crash on DSP units played with System::playDSP.
 | |
| - Fixed handling of wav files with bad and corrupted loop points stored within
 | |
|   them.
 | |
| 
 | |
| 2/5/05 4.00.25 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added FSBankEx.  FSBankEx uses the FMOD Ex engine for loading, so it could
 | |
|   support file format plugins.  It also supports multichannel wavs when 
 | |
|   encoding multichannel interleaved FSB files!  (no more needing 6 mono wavs 
 | |
|   or 3 stereo wavs for a 5.1 fsb.  Just one 6 channel wav/ogg etc will work).
 | |
| + Added FSB encryption.  Now sound designers can 'mangle' their data files
 | |
|   and only with the correct key on the application side will the correct
 | |
|   data be playable.
 | |
| + Sound::setLoopPoints / getLoopPoints and Channel::setLoopPoints / 
 | |
|   getLoopPoints fully implmented for samples and streams.  FMOD_HARDWARE
 | |
|   sounds that are samples do not support this.
 | |
| + Added makefile to linux release, to allow for "make install".
 | |
| 
 | |
| - Fixed Channel functions returning invalid handle error from channel end 
 | |
|   callbacks.
 | |
| - Fixed close crash when reusing a channel that was playing a DSP unit.
 | |
| - Fixed handling of truncated wav files.
 | |
| - Fixed delphi headers.
 | |
| 
 | |
| * Documentation cleanups, mainly in the 'get' functions.
 | |
| 
 | |
| 
 | |
| 28/4/05 4.00.24 BETA
 | |
| --------------------
 | |
| 
 | |
| + Added Channel::setNextSound.  This allows a channel to switch from one
 | |
|   sound to another mid playback without gaps.  Currently disabled.
 | |
| + FMOD_CREATESAMPLE added to FMOD_FLAGS to force codecs that open as a stream 
 | |
|   by default now (mod/s3m/xm/it/midi) to load as a sample.
 | |
| 
 | |
| - Fixed streams smaller than the file buffer size playback bug.
 | |
| - Fixed Channel::setOcclusion.
 | |
| - Fixed Channel::setVolumeAbsolute.
 | |
| - Changed VB header's boolean types to Int to be more binary compatible with 
 | |
|   the FMOD dll.
 | |
| 
 | |
| * Changed mod/s3m/xm/it/midi to load as a stream by default even when you 
 | |
|   call createSound.  To many people are trying to decode whole mod files into
 | |
|   memory and wondering why they run out of memory.  
 | |
|   To force the 'decode into memory' behaviour, the new FMOD_CREATESAMPLE can 
 | |
|   be used.
 | |
| * Changed channel handle passed into channel callbacks from being different 
 | |
|   from channel handle returned from playsound, to be the same.
 | |
| 
 | |
| 21/4/05 4.00.23 BETA
 | |
| --------------------
 | |
| 
 | |
| - Fixed file system bug.
 | |
| - Fixed crash when calling play or setposition when a stream was playing.
 | |
| 
 | |
| 20/4/05 4.00.22 BETA
 | |
| --------------------
 | |
| 
 | |
| - Fixed virtual voice swap callback.  Voices that are real now also get a 
 | |
|   callback when you first set the callback so you can accurately track which 
 | |
|   start off real and which start off virtual, then what happens after that.
 | |
| - Fixed channel end callback.  Voices that were stolen/reused before 
 | |
|   System::update was called weren't getting their callback.
 | |
| - Improved channel selector to stop it stealing playing channels if other 
 | |
|   channels had just stopped (and System::update hadn't been called yet).
 | |
| 
 | |
| 19/4/05 4.00.21 BETA
 | |
| --------------------
 | |
| 
 | |
| + Added backwards playback support.  Negative setfrequency is accepted with
 | |
|   FMOD_SOFTWARE sounds only, and samples (not streams) only.
 | |
| + Added FMOD_SOUND_NONBLOCKCALLBACK callback to FMOD_CREATESOUNDEXINFO
 | |
|   to allow a user to get a callback when a sound has finished loading.  
 | |
|   Used with FMOD_NONBLOCKING flag.  Error code is passed in as a parameter.
 | |
| + Added DSP::setBypass / DSP::getBypass.  This allows the user to disable
 | |
|   the effect of a dsp unit, without stopping all of its inputs, like 
 | |
|   DSP::setActive would.
 | |
| 
 | |
| - Macintosh thread usage changed from Carbon to Posix for mach-o build.
 | |
|   Now streams wont stutter when using the OSX gui!
 | |
| - Fixed a lot of crashes to do with virtual voices and streams.  (not 
 | |
|   nescessarily combined).  This should be a LOT more stable now.
 | |
| - Fixed squelching/chirping on mp3s and file errors on other formats.
 | |
| - Fixed stream stuttering on certain machines/file formats by increasing
 | |
|   stream decode buffersize default from 200ms to 400ms.
 | |
| - System::createSound now correctly returns FMOD_ERR_FILENOTFOUND instead of 
 | |
|   FMOD_ERR_FORMAT when failing to open the file.
 | |
| - Fixed FMOD_NONBLOCKING causing a memory leak and not working if the sound 
 | |
|   was a static sample.
 | |
| 
 | |
| * Changed System::setStreamBufferSize / System::getStreamBufferSize so user 
 | |
|   can now specify the decode buffer size and file buffer size separately.
 | |
| * Stream default file buffersize reduced from 64k to 16k to save memory.
 | |
|   For net streams/cdda, 64k or so would be recommended.
 | |
| 
 | |
| 
 | |
| 13/4/05 4.00.20 BETA
 | |
| --------------------
 | |
| 
 | |
| + Added Sound::set3DConeSettings / Sound::get3DConeSettings
 | |
|         Channel::set3DConeSettings / Channel::get3DConeSettings
 | |
|         Channel::set3DConeOrientation / Channel::get3DConeOrientation.
 | |
| + Increased speed of virtual voice swapping when going from emulated<->real.
 | |
| 
 | |
| - Fixed FMOD_SOFTWARE + FMOD_3D and streams not working.
 | |
| - Fixed crash in System::update if virtual channels were being swapped that
 | |
|   were streams.
 | |
| - Fixed FMOD_OPENONLY crash if stream was started with no seek.
 | |
| - Fixed bug in System::getNumDrivers if it was called after System::init
 | |
|   without having called System::getNumDrivers or System::getDriverName 
 | |
|   before System::init first.  (FMOD
 | |
| - Removed Geometry::flush.  Use System::update.
 | |
| - Fixed glitch in filesytem causing WMA to fail opening and WAV to click.
 | |
| - Added protection for if a user reads all of a file with Sound::readData
 | |
|   then mistakenly starts the stream looping, causing a hang.
 | |
| - Fixed crash when releasing a stream while it was playing.
 | |
| - Fixed delphi header mistakes.
 | |
| 
 | |
| 8/4/05 4.00.19 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added buffer underrun detection!  No more stream stuttering!  You can
 | |
|   now detect when underrun occurs and mute the stream or do whatever you 
 | |
|   want with it.  Netstream example has been updated to reflect this.
 | |
| + Added Geometry::save to save out an object to a binary format.
 | |
| + Added System::loadGeometry to load an object from a binary format.
 | |
| + Added recording support for FMOD_OUTPUTTYPE_COREAUDIO on mac.
 | |
| + Added some documentation.
 | |
| 
 | |
| - Fixed stream crash.
 | |
| 
 | |
| * Changed Sound::getOpenState to also have 'percentbuffered' and 'starving'
 | |
|   parameters.  This is good for watching network streams buffer and also
 | |
|   for error handling when a stream is starved.  
 | |
| * Changed System::setStreamBufferSize to pass unsigned int instead of int.
 | |
| * Changed System::getStreamBufferSize to pass unsigned int * instead of int *
 | |
|   and now the sizetype is a pointer.
 | |
| * Changed FMOD_DSP_SEEKCALLBACK to FMOD_DSP_SETPOSITIONCALLBACK.
 | |
| 
 | |
| 5/4/05 4.00.18 BETA
 | |
| -------------------
 | |
| 
 | |
| + New streaming code to hugely reduce memory usage compared to FMOD 3, and
 | |
|   also remove cpu 'spikes'.  FMOD now has a smooth consistant cpu usage while
 | |
|   streaming, and uses a fraction of the memory that it used to for compressed
 | |
|   formats.
 | |
| + Sound::getOpenState now returns an error code that reflects what went 
 | |
|   wrong in the async open thread (FMOD_NONBLOCKING) if there was an error.
 | |
| + Updated netstream example to show new openstate functionality.
 | |
| + Added 'userdata' member to FMOD_CREATESOUNDEXINFO.  This allows the use
 | |
|   of Sound::getUserData when getting pcmreadcallback and pcmsetposcallback
 | |
|   during System::createSound.
 | |
| + Added overloaded System::createSound to C# so FMOD_CREATESOUNDEXINFO isn't
 | |
|   needed if not wanted.
 | |
| + Added recording support for FMOD_OUTPUTTYPE_SOUNDMANAGER on mac.
 | |
| 
 | |
| - Fixed Sound::getOpenState not returning FMOD_OPENSTATE_CONNECTING or 
 | |
|   FMOD_OPENSTATE_BUFFERING.
 | |
| - Fixed crash in System::close if user tried to released a sound that was
 | |
|   still in the middle of opening with FMOD_NONBLOCKING.
 | |
| - Stopped denormalized floats getting into the lowpass/highpass/eq filters
 | |
|   causing huge cpu usage or exceptions.
 | |
| - Removed FMOD_FILE_TELLCALLBACK.
 | |
| - Fixed MP3 codec so that it doesnt skip the first frame or take extra time
 | |
|   than it needs to.
 | |
| - Fixed speaker levels not working because 3D code was resetting the levels
 | |
|   on 2D sounds.
 | |
| - Fixed FMOD_CREATESOUNDEXINFO not being used in FMOD_NONBLOCKING created
 | |
|   sounds, making things like non-blocking memory load calls fail.
 | |
| - Fixed MinGW and CygWin linking errors on windows.
 | |
| 
 | |
| * Changed FMOD_FILE_OPENCALLBACK to add filesize parameter.  This is better
 | |
|   than having FMOD do a seek end, tell, then seek 0, because the length might
 | |
|   already be present in a TOC or other filesystem structure.
 | |
| * Changed System::setFileSystem to remove FMOD_FILE_TELLCALLBACK.
 | |
| * Changed 'filelength' to 'length' in FMOD_CREATESOUNDEXINFO.
 | |
| * Changed FMOD_CODEC to remove FMOD_FILE_TELLCALLBACK filetell.
 | |
| * Changed FMOD_CODEC to provide filesize.
 | |
| 
 | |
| 1/4/05 4.00.17 BETA
 | |
| -------------------
 | |
| 
 | |
| + Added "FMOD Designer" sound tool.
 | |
| + Added multichannel output support to Mac build for surround sound.
 | |
|   (FMOD_OUTPUTTYPE_COREAUDIO only).
 | |
| + Added recording support to ALSA and OSS modes on linux.
 | |
| + Added VBR Xing header support.  Now Xing encoded MP3's won't need 
 | |
|   FMOD_ACCURATETIME to get accurate seeking and length of VBR mp3's.
 | |
| + Added fmodex_bc.lib import library for borland C.  C++ linking not supported.
 | |
| + Added libfmodex.a import library for MinGW/CygWin.  C++ linking not supported.
 | |
| + Implemented setMinMaxHWChannels.
 | |
| + Added Channel::getAudiblity.  This is just the audible volume of the channel
 | |
|   by multiplying 3d volume, volume, master volume and geometry occlusion 
 | |
|   together.
 | |
| + Added FMOD_TIMEUNIT_RAWBYTES for Sound::getLength and Channel::getPosition
 | |
|   only.
 | |
| + More functions documented, still not there yet!
 | |
| 
 | |
| - Fixed Virtual voice support for static sounds and streams.
 | |
| - Fixed race condition on Channel::setPan which causes NaN's and sound 
 | |
|   dropping out.  (FMOD_SOFTWARE only).
 | |
| - Removed Channel::setTime / getTime.  Use Channel::setPosition / getPosition
 | |
|   with FMOD_TIMEUNIT_MS instead.
 | |
| - Tremor fixed point ogg vorbis codec removed.
 | |
| - Fixed linux build not running in anything but root mode.
 | |
| - Fixed crash on bidi/pingpong music loops in samples.
 | |
| - Fixed stereo sounds not loading as FMOD_3D like they used to. 
 | |
|   (they automatically downmix to mono as they stream or load.)
 | |
| - VirtualVoices example memory GDI memory leak fixed.
 | |
| - Fixed divide by 0 in highpass and bandpass and possibly lowpass filters.
 | |
| - Removed FMOD_INIT_DSOUND_GLOBALFOCUS.  Now it is global by default, and you
 | |
|   specify a hwnd if you don't want it global.
 | |
| - Fixed sounds with subsounds and Sound::seekData seeking to entry 0 each time
 | |
|   instead of the entry they are supposed to be associated with.
 | |
| - 8bit PCM wav streams/sound loading - huge speedup.
 | |
| 
 | |
| * Changed pan from 0.0 -> 1.0 to -1.0 -> +1.0.
 | |
| * Changed distance factor to reflect documentation.  Currently it was taking 
 | |
|   1/3.28 for feet instead of 3.28 as it should have.
 | |
| * Min and Max distance now defaults to distance factor when a sound is created.
 | |
| * Changed setMinMaxHWChannels changed from int min, int max to 
 | |
|   int min2d, int max2d, int min3d, int max3d.
 | |
| * Changed FMOD_VBRACCURATE to FMOD_ACCURATETIME.  Now MOD/S3M/XM/IT can share
 | |
|   this flag.  FMOD will quickly and quitely play the mod until it finds the same
 | |
|   point in the song again (a where the song loops) and count that as the length
 | |
|   of the song.
 | |
| * Changed Sound::getLength to use position and FMOD_TIMEUNIT parameter instead
 | |
|   of 3 hardcoded ms, pcm, pcmbytes values.  This now allows things like number
 | |
|   of mod/s3m/xm/ut orders in a song to be reported for example.
 | |
| * Changed 3D example to have changable distance factor.
 | |
| 
 | |
| 
 | |
| 3/3/05 4.00.16 ALPHA
 | |
| ---------------------
 | |
| 
 | |
| + Added more tutorials to documentation.
 | |
| + Added WinMM recording to FMOD_OUTPUT_WINMM output mode.
 | |
| + Added VST plugin support.
 | |
| + Added System::lockDSP and System::unlockDSP in case the user wants to stop 
 | |
|   FMOD's dsp engine while doing a complex dsp network adjustment (ie moving
 | |
|   multiple units around and disconnecting / connecting).
 | |
| + Implemented System::getHandle for all platforms.
 | |
| + Added System::createDSPByIndex.
 | |
| + Added DSP::setParameter / getParameter.
 | |
| + Added DSP::getNumParameters.
 | |
| + Added DSP::getParameterInfo.
 | |
| + Added DSP::showConfigDialog.
 | |
| + Added DSP::getInfo.
 | |
| + Added dsp_gain example to show how to write a simple DSP plugin.
 | |
| + Added effect example to show how to use FMOD's built in effects.
 | |
| + Added dspviewer example to show how to use dynamic plugins, and also
 | |
|   draw a spectrum and waveform using System::getSpectrum, System::getWaveData.
 | |
| + Added System::getWaveData / Channel::getWaveData for plotting the 
 | |
|   waveform of the playing audio.  Much simpler than creating a dsp unit etc.
 | |
| 
 | |
| - Fixed ParamEQ filter and also fixed a heap of other filters to be more 
 | |
|   tolerant of extreme parameters.
 | |
| - Removed Channel::setWeight / getWeight.
 | |
| - Removed 'weight' from DSP::setDefaults / getDefaults.
 | |
| - Removed 'weight' from Sound::setDefaults / getDefaults.
 | |
| - Removed DSP::setParameters / getParameters.
 | |
| - Removed System::getDSP.
 | |
| - Removed DSP::getName
 | |
| - Removed DSP::getFormat
 | |
| - Removed reverb unit from header for now as it was disabled anyway.  
 | |
| - Fixed crash in System::close.
 | |
| - Fixed crash playing .it files.
 | |
| - Fixed .it loader.
 | |
| - Fixed crash when using fmodexp.dll
 | |
| - Fixed crash on some stream files.
 | |
| - Fixed sounds stopping if DSP::release was called during playback.
 | |
| - Fixed hang in MIDI loader on some files.
 | |
| - Fixed mistake in XM loader so stereo and 16bit samples sound ok now.
 | |
| - Fixed stream thread shutting down if second System object was created then 
 | |
|   closed.
 | |
| - Fixed record system getting out of sync if recordStop then recordStart were 
 | |
|   called.
 | |
| 
 | |
| * DSP parameters are now dynamic, meaning unknown DSP plugins can be added and
 | |
|   their parameter lists can be enumerated.
 | |
| * Changed System::setMasterVolume / getMasterVolume from int 0-1024 to float 0 to 1.
 | |
| * Changed Sound::setDefaults / getDefaults parameters from int 0-1024 to float 0 to 1.
 | |
| * Changed Sound::setVariations / getVariations parameters from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::setVolume / getVolume from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::setFrequency / getFrequency from int to float.
 | |
| * Changed Channel::setPan / getPan from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::setSpeakerMix / getSpeakerMix from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::setSpeakerLevels / getSpeakerLevels from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::setVolumeAbsolute from int 0-1024 to float 0 to 1.
 | |
| * Changed Channel::getLevels parameters from int 0-1024 to float 0 to 1.
 | |
| * Changed FMOD_OUTPUT_TYPE to FMOD_OUTPUTTYPE and all the types inside renamed.
 | |
| * Changed DSP::setInputMix / getInputMix parameters from int 0-1024 to float 0 to 1.
 | |
| * Changed DSP::setDefaults / getDefaults parameters from int 0-1024 to float 0 to 1.
 | |
| * Changed System::getSpectrum / Channel::getSpectrum to take number of floats being 
 | |
|   written rather than number of samples being analyzed. (which is always 2x the data 
 | |
|   written to the buffer)
 | |
| 
 | |
| 27/1/05 4.00 alpha 15
 | |
| ---------------------
 | |
| 
 | |
| + Added Geometry API.  
 | |
| + Added IASIG I3DL2 Reverb support.  Now some non EAX compatible cards can get
 | |
|   hardware reverb with the same fmod interface!.
 | |
| + Added Echo effect.  (FMOD_DSP_TYPE_ECHO, FMOD_DSP_PARAM_ECHO)
 | |
| + Added Flange effect.  (FMOD_DSP_TYPE_FLANGE, FMOD_DSP_PARAM_FLANGE)
 | |
| + Added Distortion effect.  (FMOD_DSP_TYPE_DISTORTION, FMOD_DSP_PARAM_DISTORTION)
 | |
| + Added Normalization filter.  (FMOD_DSP_TYPE_NORMALIZE, FMOD_DSP_PARAM_NORMALIZE)
 | |
| + Added ParamEQ filter.  (FMOD_DSP_TYPE_PARAMEQ, FMOD_DSP_PARAM_PARAMEQ)
 | |
| + Added Pitch shifting filter.  (FMOD_DSP_TYPE_PITCHSHIFT, FMOD_DSP_PARAM_PITCHSHIFT)
 | |
| + Added Chorus effect.  (FMOD_DSP_TYPE_CHORUS, FMOD_DSP_PARAM_CHORUS)
 | |
| + Added virtual voices example.
 | |
| + Added geometry example.
 | |
| + Added System::createStream.  This is identical to System::createSound but
 | |
|   just with the FMOD_CREATESTREAM flag added in.  It is to make it more obvious
 | |
|   so people don't go loading huge files into memory when they should be 
 | |
|   streamed by accident.
 | |
| + Added System::createStream which is exactly the same as System::createSound
 | |
|   but with the FMOD_CREATESTREAM mode bit added in, because I know people are
 | |
|   going to forget to add the flag unless it is right in front of them!
 | |
| + Added Visual Basic interface.
 | |
| 
 | |
| - Fixed DSP related issues with units having multiple outputs.
 | |
| - Removed "outputfrequency" from FMOD_DSP_PARAM_LOWPASS
 | |
| - Removed "outputfrequency" from FMOD_DSP_PARAM_LOWPASS2
 | |
| - Removed "outputfrequency" from FMOD_DSP_PARAM_OSCILLATOR
 | |
| - Priority and weight now work.
 | |
| - Voices are now swapped based on volume and 3d volume.
 | |
| - Fixed FMOD_SOFTWARE based 3d sounds appearing loud between System::playSound
 | |
|   when paused and System::update if the sound was positioned far away.
 | |
| 
 | |
| * Renamed "wetness" parameter in DSP::setInputMix to "volume".
 | |
| 
 | |
| 6/1/05 4.00.14 ALPHA
 | |
| --------------------
 | |
| 
 | |
| + Added EAX2, EAX3 and EAX4 support.  If the card supports EAX4, multiple 
 | |
|   reverb environments at once are possible.
 | |
| + Added 2 lowpass resonance filters. (FMOD_DSP_TYPE_LOWPASS, FMOD_DSP_TYPE_LOWPASS2)
 | |
| + .IT music support now supports resonant lowpass filtering.
 | |
| + Added FMOD_INIT_DISABLESOFTWARE to save memory if software mixing isn't 
 | |
|   needed.
 | |
| + Added FMOD_ERR_NEEDSSOFTWARE if a codec or feature is used that requires 
 | |
|   software mixing.
 | |
| + Added missing codec_dls.dll to make the plugin version of codec_midi.dll work.
 | |
|   DLS files can also be loaded without MIDI as well like a multi-sound bank and 
 | |
|   Sound::getSubSound can be used to play or get information on each sound.
 | |
| + Added System::addDSP.
 | |
| + Added Channel::addDSP.
 | |
| + Added FMOD_ERR_DSP_TOOMANYCONNECTIONS.
 | |
| + Added DSP::remove to unlink DSP effects added with System::addDSP or 
 | |
|   Channel::addDSP
 | |
| + Added maxpolyphony to FMOD_CREATESOUNDEXINFO structure to reduce memory/cpu
 | |
|   consumption on formats like mod/s3m/xm/it/midi if they use dynamic channel
 | |
|   allocation. (currently only .it and .mid do this)
 | |
| + Added DSP::reset to allow a user to reuse a filter but to reset it to its 
 | |
|   initial state.
 | |
| + Added FMOD_DSP_RESETCALLBACK to FMOD_DSP_DESCRIPTION structure.
 | |
| + Added System::isRecording
 | |
| + Enabled Channel::getSpectrum
 | |
| 
 | |
| - Fixed midi codec crash if 0 software channels were specified.
 | |
| - Fixed click on end of one shot samples in FMOD_SOFTWARE mode.
 | |
| - Fixed small memory leak in .IT codec.
 | |
| - Fixed System::close crash.
 | |
| - Fixed corruption in mp3 codec.
 | |
| - Fixed loop point clicking on PCM based hardware sounds on XBox.
 | |
| - Fixed min and max 3d distance being ignored on XBox.
 | |
| - Fixed streams not allowing 3d attributes or mode to be changed.
 | |
| 
 | |
| * changed System::loadPlugin parameters.
 | |
| * changed System::createDSPByID to System::createDSPByType
 | |
| * changed FMOD_DSP_DESCRIPTION::type to FMOD_DSP_DESCRIPTION::category
 | |
| * changed FMOD_DSP_TYPE to FMOD_DSP_CATEGORY
 | |
| * changed FMOD_DSP_ID to FMOD_DSP_TYPE
 | |
| * changed FMOD_DSP_READCALLBACK length parameter from a pointer to a normal int.
 | |
| * MOD/S3M/XM/IT panning made linear to sound more spatialized, and more like 
 | |
|   modplug tracker which doesnt use constant power panning like it should.
 | |
| * Changed System::recordStart to add a bool loop parameter.
 | |
| * Changed mod/s3m/xm/it/midi to target FMOD_SOUND_FORMAT_PCM16 instead of 
 | |
|   FMOD_SOUND_FORMAT_PCMFLOAT if FMOD_HARDWARE is specified.
 | |
| * Changed FMOD_DSP_FFT_WINDOW_TYPE to FMOD_DSP_FFT_WINDOW
 | |
| 
 | |
| 17/12/04 4.00.13 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| - Fixed FMOD_INIT_3D_RIGHTHANDED flag.
 | |
| - MIDI plugin corruption fixed.
 | |
| - Fixed C version of ripnetstream.
 | |
| - Clarified mode flags.  Now FMOD_2D and FMOD_HARDWARE are default.  
 | |
|   FMOD_3D always overrides FMOD_2D and FMOD_SOFTWARE always overrides FMOD_HARDWARE.
 | |
| - AAC will now open in a non accurate CBR calculation mode like MP3 does.  Use
 | |
|   FMOD_VBRACCURATE to get an accurate System::getLength / System::setTime.
 | |
| 
 | |
| * To use fmodexp.dll in C# use the new fmodp.cs.  It is the same as fmod.cs 
 | |
|   it just refers to a different DLL.
 | |
| 
 | |
| 
 | |
| 16/12/04 4.00.12 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added DLS MIDI support!  FMOD Ex now has its own native cross platform MIDI
 | |
|   playback codec which does not rely on any external libraries such as 
 | |
|   DirectMusic.  DLS 1 spec is now supported.  SF2 will come later.
 | |
| + Added AAC support.
 | |
| + Added C# Interface and examples!
 | |
| + Added FMOD_CREATESOUNDEXINFO structure to go with new System::createSound.
 | |
| + Added / Renamed some init flags to FMOD_INIT_DSOUND_GLOBALFOCUS, 
 | |
|   FMOD_INIT_DSOUND_DEFERRED, FMOD_INIT_DSOUND_HRTFNONE, 
 | |
|   FMOD_INIT_DSOUND_HRTFLIGHT, FMOD_INIT_DSOUND_HRTFFULL.
 | |
| + Added FMOD_UNICODE to mode flags to allow unicode filenames to load.
 | |
| + FMOD_3D + FMOD_SOFTWARE now supports multi-speaker output!  Use 
 | |
|   System::setSpeakerMode first of course.
 | |
| + Added System::setSpeakerPosition.
 | |
| + Added System::getSpeakerPosition.
 | |
|   These 2 functions allow you to physically describe the location of your
 | |
|   speakers and FMOD will skew panning based on this when in 3D!
 | |
| + Added FMOD_CAPS_HARDWARE_EMULATED flag.
 | |
| + System::getDriverCaps implemented.
 | |
| + Documented a lot more functions, and added "TERMINOLOGY / BASIC CONCEPTS"
 | |
|   page to the documentation.
 | |
| + Implemented System::getOutputHandle
 | |
| + Implemented System::setRecordDriver
 | |
| + Implemented System::getRecordDriver
 | |
| + Implemented System::getRecordNumDrivers
 | |
| + Implemented System::getRecordDriverName
 | |
| + Added System::getRecordHandle
 | |
| + Added recordStart
 | |
| + Added recordStop
 | |
| + Added recordGetPosition
 | |
| 
 | |
| - Removed System::createSoundEx
 | |
| - min/max distance working properly for hardware 3d sounds.
 | |
| - multispeaker stuff for hardware 3d sounds working again.
 | |
| - Fixed Channel::setPan not working on hardware 2d DirectSound buffers.
 | |
| - Fixed divide by 0 crash if a codec set the blockalign to 0.
 | |
| - Removed FMOD_SPEAKERMODE_PROLOGIC2 and made FMOD_SPEAKERMODE_PROLOGIC use
 | |
|   Prologic 2 encoding by default.  It will work on a Prologic 1 decoder as 
 | |
|   well so having 2 is redundant.
 | |
| - Fixed multichannel sound not working on some soundcards.
 | |
| - Fixed .it pitch envelope bug.
 | |
| - Removed FMOD_CREATESTATIC flag.  This is the default behaviour anyway.
 | |
| - Removed FMOD_OPENRECORD flag.
 | |
| - Fixed Sound::readData not reading 100% of the file.
 | |
| 
 | |
| * Renamed FMOD_MPEGACCURATE to FMOD_VBRACCURATE so more VBR formats that dont
 | |
|   store their PCM sample length somewhere can use this flag (like AAC)
 | |
| * Changed parameters in System::createSound to take a pointer to a 
 | |
|   FMOD_CREATESOUNDEXINFO structure.  To behave like the old System::createSound
 | |
|   just pass 0 or NULL as this parameter.
 | |
| * Worked around a bluescreen bug in creative labs driver due to them not 
 | |
|   supporting WAVEFORMATEXTENSIBLE properly.
 | |
| * Delphi header updated.
 | |
| 
 | |
| 10/11/04 4.00.11 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added output plugin support!  Now users can add their own output modes for 
 | |
|   FMOD Ex to software mix into.
 | |
| + Added DSound plugin.
 | |
| + Added WinMM support and plugin.
 | |
| + Added ASIO support and plugin.
 | |
| + Added NoSound support and plugin.
 | |
| + Added WavWriter support and plugin.  Supports multichannel and multiformat
 | |
|   wav files (ie 6 channel 32bit floating point wavs can be written from the
 | |
|   FMOD mixer output).  Supply a filename through 'hwnd' parameter.
 | |
| + Added System::setOutputPlugin / System::getOutputPlugin
 | |
| + Added System::getNumPlugins, System::getPluginInfo, System::unloadPlugin.
 | |
| + Added plugins/output_mp3 example.  Uses lame_enc.dll.  Realtime output of 
 | |
|   FMOD Ex is encoded and written to an mp3 file!
 | |
| + System::setSpeakerMode now sets output channel count to appropriate value.
 | |
| + Channel::setSpeakerMix / Channel::getSpeakerMix / Channel::setSpeakerLevels /
 | |
|   Channel::setSpeakerLevels added / implemented.
 | |
| + System::setMasterVolume now ignores absolute channels set with 
 | |
|   Channel::setVolumeAbsolute properly.
 | |
| + Added useplugins example.
 | |
| + Added multispeakeroutput example.
 | |
| + A bit more documentation added.
 | |
| 
 | |
| - Fixed crash in certain .IT songs.
 | |
| - MOD, S3M, XM, IT plugins now about 8k smaller.
 | |
| - fmodexp.dll now 5k smaller due to Directsound Output being moved into plugin.
 | |
| - removed limitation on 2d directsound buffers using same min/max frequency 
 | |
|   limitation as 3d directsoundbuffers.
 | |
| - Invalid handles for channels that have stopped or been stolen now return 
 | |
|   0 false or null in information functions to reduce accidental user bugs.
 | |
| 
 | |
| 24/10/04 4.00.10 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added .S3M codec.  Supports total click removal, 3D S3Ms, S3M as samples, 
 | |
|   100% accuate length calculation etc.
 | |
| + Added .XM / .OXM (ogg XM) codec.  Supports total click removal, 3D XMs, 
 | |
|   XM as samples, 100% accuate length calculation etc.
 | |
| + Added .IT codec.  Supports total click removal, 3D ITs, IT as samples, 
 | |
|   100% accuate length calculation etc.
 | |
| + Enabled FMOD_LOOP_BIDI support for software voices.
 | |
| + Added ability to let user decide what buffer format and frequency MOD/S3M/XM/IT 
 | |
|   should decode to.  By default it is the same as the output frequency and 
 | |
|   FMOD_SOUND_FORMAT_PCMFLOAT.   Simply specify a sound format and/or frequency 
 | |
|   in System::createSoundEx.
 | |
| + Added 'multiplesoundcard' example to show easy multiple sound card support.
 | |
| 
 | |
| - Removed click on looping FMOD_SOFTWARE samples from loopstart.
 | |
| - Removed random crackles from MOD/S3M/XM/IT support due to thread concurrency
 | |
|   issue.
 | |
| - Fixed Sound::setMode forcing sound to 3D if FMOD_2D or FMOD_3D wasn't 
 | |
|   specified.
 | |
| - Fixed Sound::getLength support for large files returning the wrong value.  
 | |
|   WAV and AIFF were affected.
 | |
| - Fixed crash on Sound::release with sounds with tags that werent created as a 
 | |
|   stream.
 | |
| - Worked around a DirectSound bug (hello Microsoft!).  IEEE 32bit floating point
 | |
|   buffers set to volume 0 would make a horrible buzzing noise.  Changed dsound
 | |
|   code to be 'almost silent' but not quite for float buffers, but to users ears
 | |
|   it will be silent.  Seemed to only happen if playback buffer frequency is the 
 | |
|   same as the frequnecy the source buffer was created in.
 | |
| - Fixed crash on FMOD_SOFTWARE based sounds being played at extremely high speeds 
 | |
|   and with small loops.
 | |
| - Fixed Directsound enumeration only enumerating 1 device.
 | |
| - Updated RAW codec plugin example.
 | |
| 
 | |
| * Changed FMOD_CODEC_OPENCALLBACK to take in usermode, userfrequency, userformat.
 | |
|   These parameters allow the codec to know what the user passed in via 
 | |
|   Sound::createSound
 | |
| * System::getNumDrivers and System::getDriverName now allowed to be called after
 | |
|   System::init.
 | |
| 
 | |
| 15/10/04 4.00.09 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added .MOD codec.  Improvements on FMOD 3 include.
 | |
|   - Click free!  Clicks from sounds that cut each other off on the same 
 | |
|     MOD channel are removed, for 100% click removal.
 | |
|   - Sound::getLength gives the exact length of a MOD in milliseconds no matter 
 | |
|     what!  Even backwards, infinite, or complicated looping MODs are no challenge.  
 | |
|   - Channel::setPosition / Channel::setTime allows sample accurate seeking
 | |
|     into a MOD, by time.  FMOD 3 only allowed seeking by 'MOD order'.
 | |
|   - MODs can be loaded as a sample!  You can load a mod as a sample, then grab 
 | |
|     the PCM buffer using Sound::lock/Sound::unlock and write it to a .wav file if 
 | |
|     you want!
 | |
|   - MODs can be played on hardware voices!
 | |
|   - MODs can be played in 3D!  They can be panned, volume scaled or even 
 | |
|     frequency adjusted.  They can do anything a normal stream could do.
 | |
| 
 | |
| - Removed click when FMOD_SOFTWARE based sound had its volume set to 0.
 | |
| - Plugged DirectSound memory leak.
 | |
| 
 | |
| 7/10/04 4.00.08 ALPHA
 | |
| ---------------------
 | |
| 
 | |
| + Added System::playDSP added.  Now tone generator DSP units can be played 
 | |
|   instantly without having to do any DSP network connection / disconnection.
 | |
| + Memory usage dropped by about 42kb.  After System::init with 100 virtual 
 | |
|   voices and software mixing turned off, total memory usage is about 54kb.
 | |
| + Updated ripnetstream example.  Rip shoutcast etc radio stations to mp3 files!
 | |
|   Supports Artist / Title tag broadcasts to name each mp3 by.
 | |
| + Added generatetone example.  Shows how to play generated sounds without
 | |
|   loading a sample!
 | |
| + Added FMOD_CHANNEL_REUSE so a channel can be re-used instead of a new 
 | |
|   channel being selected.  The channel re-used is the one passed into 
 | |
|   System::playSound / System::playDSP.
 | |
| + Added FMOD_CHANNEL_ALL support.  Use System::getChannel and use this 
 | |
|   handle as a channel handle that will affect all channels.
 | |
| + 'dataoffsetbytes' parameter implemented for System::createSoundEx.
 | |
| + Added FMOD_MPEGSEARCH so FMOD will search right through an MP3 for a correct 
 | |
|   header if the file is corrupt.  By default it searches for 4096 bytes 
 | |
|   then gives up.
 | |
| 
 | |
| - Fatal net stream errors now terminate stream playback.
 | |
| - Fixed System::attachFileSystem not being present in import library.
 | |
| - Fixed Sound::getFormat not returning the correct sound type.
 | |
| - Fixed netstreams always ending after about 137 minutes.
 | |
| - Fixed clicking/crackling if a filter DSP callback tried to change 
 | |
|   the output length/channels.  Filter units can now not change the length 
 | |
|   or channels going out.
 | |
| 
 | |
| * Net tags that don't contain any new information (such as regular shoutcast 
 | |
|   title/artist broadcasts that get transmitted every few seconds) are now 
 | |
|   ignored.  New tags are only available via FMOD if they are in fact 
 | |
|   unique.  Saves end user having to do string compares in their own app.
 | |
| * DirectSound volume and panning now smoother / more accurate.
 | |
| 
 | |
| 
 | |
| 1/10/04 4.00.07 ALPHA
 | |
| ---------------------
 | |
| 
 | |
| + Multi-channel ogg supported.
 | |
| + Added System::attachFileSystem to 'ride' on top of FMOD's file calls.
 | |
| + Added 'ripnetstream' example to show how to rip a stream from a url
 | |
|   to a file using System::attachFileSystem.
 | |
| 
 | |
| - vorbis comment corruption causing ogg problems fixed.
 | |
| - Fixed non seekable streams such as internet streams trying to loop or 
 | |
|   exhibiting weird behaviour if System::playSound while it was already 
 | |
|   or System::setTime.
 | |
| - Small streams (streams smaller than the stream buffersize) not 
 | |
|   restarting fixed.
 | |
| - Multichannel sounds playing on stereo output are now not scaled down
 | |
|   by the number of channels and just played at full volume.
 | |
| - Fixed click at end of software based sounds when playing more than 1
 | |
|   at once.
 | |
| 
 | |
| 
 | |
| 28/09/04 4.00.06 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added System::getSpectrum.  This spectrum analysis function is FAR more 
 | |
|   advanced than FMOD 3's function.  It has the following benefits.
 | |
|   - Allows 128,256,512,...,16384 sized FFT windows.
 | |
|   - Allows FFT window filtering such as rectangle/triangle/hanning/hamming/
 | |
|     blackman/blackman-harris to obtain more accurate frequency information.
 | |
|   - Allows per speaker analysis, so each speaker of a stereo signal can 
 | |
|     be analyzed individually.
 | |
|   - Doesn't need any initialization flags to enable.  Just call it.
 | |
| + Added user created sound support.  Create user streams or samples with 
 | |
|   System::createSoundEx.
 | |
| + Added ability to 'rip' PCM sound data from sounds by simply supplying
 | |
|   a read/seek callback in System::createSoundEx as you would with a user 
 | |
|   created sound.  Can also be used to overwrite data FMOD reads as it is 
 | |
|   loading.
 | |
| + System::setFileSystem now works.
 | |
| + Added createusersound example.
 | |
| + Added playsound example.
 | |
| 
 | |
| - Fixed 2d software mixed sounds only being 0 or full volume when 
 | |
|   Channel::setVolume was used in conjunction with System::update.
 | |
| - Fixed hang on sounds opened as samples with FMOD_SOFTWARE | FMOD_NONBLOCKING.
 | |
| - Fixed crash on FMOD_SOFTWARE based sounds when a channel was used twice.
 | |
| - Fixed click of FMOD_SOFTWARE based sounds when looping or for 
 | |
|   FMOD_CREATESTREAM | FMOD_SOFTWARE based sounds.
 | |
| - All plugins now around 4k smaller each.
 | |
| - Fixed channel management bugs to do with virtual channels stealing.
 | |
| 
 | |
| * API changes, variables and functions renamed / moved.
 | |
| * Changed DLL exports to be stdcall again.  Symbols are not stdcall mangled 
 | |
|   though so it should make delphi / VB headers easier.
 | |
| 
 | |
| 7/09/04 4.00.05 ALPHA
 | |
| ---------------------
 | |
| 
 | |
| + Added FMOD_OPENONLY.  This opens a sound, but doesnt read or prebuffer it.  
 | |
|   Useful for quick opens.
 | |
| + Added Sound::readData.  In conjunction with the above, a user can use it to 
 | |
|   read and decompress sound data into their own buffer.
 | |
| + Added FMOD_CDDA_FORCEASPI and FMOD_CDDA_JITTERCORRECT flags to mode bits.
 | |
| + Added lcc-win32 import libraries.
 | |
| + More documentation.
 | |
| 
 | |
| - Fixed plugins not working correctly due to incorrect calling convention.
 | |
| - Fixed 3D software mixed streams not allowing frequency or volume to be set on
 | |
|   them.
 | |
| - Removed FMOD_DONTPREBUFFER.  (use FMOD_OPENONLY instead).
 | |
| 
 | |
| * Sound::getLength now returns length in samples, length in milliseconds, and
 | |
|   length in bytes instead of just length in samples.
 | |
| 
 | |
| 3/09/04 4.00.04 ALPHA
 | |
| ---------------------
 | |
| 
 | |
| + Channel::setCallback support added, currently only FMOD_CHANNEL_CALLBACK_END 
 | |
|   supported.
 | |
| + More documentation.
 | |
| 
 | |
| - FMOD_SOFTWARE based sounds now allowed to be loaded, even if 0 is specified 
 | |
|   in maxsoftwarechannels in System::init.  (which turns off the software mixer).
 | |
| - Fixed FMOD_SOFTWARE static sounds not playing the last few samples of a sound.
 | |
| 
 | |
| 30/08/04 4.00.03 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Tag support added.
 | |
| + More examples.
 | |
| + More documentation.
 | |
| + Added support for weirder extensible multichannel multibitformat .wav files.
 | |
| + Addition Equivalent of "FSOUND_FORCEMONO" from FMOD 3, but is automatic!  No 
 | |
|   flags needed by the user, 3d stereo sounds are automatically downmixed, and
 | |
|   with far greater efficiency than fmod3.
 | |
| 
 | |
| - CDDA fixes.
 | |
| - Panning fixes in software engine.
 | |
| - 24bit sound / streaming / resampling and output support working properly.
 | |
| - Streamer bugs fixed.
 | |
| 
 | |
| * Some API changes / renames / additions / removals.
 | |
| * Software mixing / DSP engine overhaul and optimizations, now 2-3x faster and
 | |
|   no dynamic memory allocation when playing sounds.
 | |
| * Oscillator unit updated.
 | |
| * System::getCPUUsage now ignores I/O time so CDDA support doesnt say it is 
 | |
|   using 50% cpu when it is actually only using 1-2% :)
 | |
| 
 | |
| 27/07/04 4.00.02 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| + Added Delphi headers
 | |
| + Added some more documentation.
 | |
| 
 | |
| 26/07/04 4.00.01 ALPHA
 | |
| ----------------------
 | |
| 
 | |
| * Initial release
 | 
