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
- Added parameters to Channel::setDelay/getDelay and added
as the delay types. Sounds can not 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
- Added support for multiple software based reverbs.
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
- 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.
- 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
- 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
- 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
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
- 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.
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
!* PS3 – spu_mixer_elfname_or_spursdata, spu_streamer_elfname_or_spursdata,
spu_load_from_memory, force5point1 and attenuateDDLFE members removed
- 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
- PS3 – Now built with SDK 210.001
- You must login to post comments