Download FMOD: Advanced Usage

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Sound Tech Group
Joey Brinkmeier
Joe Handzel
Jerry Hsieh
Kyle Moore
Goal For Sound
• Sound should communicate effectively
what we want the listener to know or
experience -- it should focus the player's
attention. In order to meet this goal we
must always approach sound from the
player's viewpoint.
• http://www.gamasutra.com/features/sound
_and_music/081997/sound_effect.htm
Issues to consider with Sounds
• Sounds should only be played if audible. Tree
falls in forest does not make a sound.
• Player ought to be able to determine direction
and distance of sound
• Make sure soft sounds are not drowned out by
other background noises
– Soft sound before louder sound easier to hear than
soft sound after louder
• Voice communication ?
• Aliasing – don’t want noises to cancel each other
out
Issues involving sound system
• Proper sampling between analogue signal to
digital signal
• File format – RAM issues/load time/Quality
• API’s available for system
• Sample – small sound, loaded into memory
• Stream – long sound/music
• speaker modes with higher channel counts
leads to higher memory usage
• pointless to create 5.1 sound if system does not
support 5.1
• Number of channels may be limited.
OpenAL
• By Creative Labs (maker of Sound Blaster
audio hardware)
– Official site: www.openal.org
• Free to use (including commercially)
• Cross Platform
– available for Windows, Mac, Linux, Unix,
Xbox, Xbox 360
Features
• Similarity to OpenGL
– Function names and type definitions similar
• Device Enumeration
– Allows possibility for user to indicate which
audio device in their system to use
• Uses buffers to store sound information
• Play the buffers with Sources
Listener
• How sound is output depends on where
the Listener, typically the main character
or camera, is in relation to a source
• Can have a position, velocity, and
orientation
• Must update the parameters as the user
moves the character or camera around
Source
• Can have position, velocity, direction
• Again, must update the parameters if the
object that is making the sound is moving
around
ALUT
• A utility toolkit similar to GLUT for OpenGL
• Instead of a Window in glut, alut uses a
Context
• Handles loading of a .wav file (and
unloading once stored in a buffer)
Problems
• I used a sound manager for OpenAL written to use with
Ogre
– http://www.ogre3d.org/wiki/index.php/OpenAL
• But has problems with some system configurations
(sound just won’t play/be heard)
– Have tried the different enumerations to specify devices, but still
won’t work. Not really sure what the problem is, and couldn’t
find others with a similar problem
• So have moved to using a sound manager for fmod
written to use with Ogre
– http://www.ogre3d.org/wiki/index.php/FMOD_SoundManager
FMOD Features
• FMOD comes in two varieties:
– FMOD Ex
– FMOD 3
• Advantages of FMOD Ex vs. FMOD 3
–
–
–
–
–
–
–
–
–
Obstruction and Occlusion
5.1 and 7.1 output support
Stereo and multichannel sound in 3D
Virtual Voices
native ADPCM, MPEG sample support
Various DSP filters (flange, chorus, low pass filter, echo..)
FMOD Designer tool
Support for Xbox 360 and Playstation 3 platforms
Unified API (Cleaner interface / Easier to use)
FMOD Licensing
• Free for evaluation
• Commercial licensing:
– $6,000 – FMOD Ex
– $3,000 – FMOD 3
• Hobbyist Licensing: $100
– Any software that has no expectation of large
a large volume of sales, such as something
sold strictly over the internet
Game Companies that use FMOD
• Bethesda Softworks
– Elder Scrolls series
• Blizzard Entertainment
– WarCraft series
– Worlds of Warcraft
• Nixxies Software
– Tomb Raider Legends for Xbox and PC
• Red Storm Entertainment
– Ghost Recon
Other Companies that use FMOD
• AquaSoft
– DVD authoring software
• AutoMapa
– PocketPC satellite navigation software
• Diebold
– Elctronic voting systems
• HP
• JVL
– Countertop game systems (seen in bars)
• nVidia
• Samsung
• Thales Naval
Games that use OpenAL
•
•
•
•
•
•
Battlefield 2
Doom 3
Jedi Knight 2
Quake 4
Soldier of Fortune 2
Unreal Tournament 2003
FMOD Basic Usage
• Create System object
• Initialize system – Right-Handed 3d env,
etc
• Create Sound – default 2d, non-looping,
hardware acceleration
• PlaySound – attaches to channel object
• Control playback through channel object
– Set volume, pause, etc.
FMOD: Advanced Usage
•
•
•
•
•
Nonblocking Loading
3D Positional Sound
Sound Occlusion
DSP Effects
FMOD Designer
Nonblocking Loading
• For loading sound files in the background
without stopping the entire process
• New thread is used to load sound into
memory
• Useful for in-game sound effect loading
3D Positional Sound
• Enhances audio realism
• Listeners & Objects relationship
– Listeners = Cameras
– Objects = playing sound
• FMOD automatically splits PCM into
multiple channels in mono
– i.e. stereo, 5.1, 7.1
• Need world position of Listener & Objects
3D Sound (Continued)
• Doppler effect
– Change in frequency (pitch) of sound source
while passing a listener
– Need velocity to get the effect
– Must calculate frame-rate independent
velocity
• Units important (feet/sec, m/s, mph)
– Useful for high-speed sound travel
• Racing, spaceships, fight sims
Sound Occlusion
• Mentioned in Prof. Crawfis’ sound slides
• Sound waves blocked by occluders similar
to optical shadows
– Walls, buildings, giant fire-breathing lizzards
• Use setOccluderGeometry to simulate
occlusion
• Demo?
DSP Effects
• Commonly used for environmental sound
• Examples
– Reverb (caves)
– High Pass Filter (moisture)
– Low Pass Filter (muffled sound)
– Echo, Chorus (cathedral)
– Software mixed by FMOD
• FMOD supports HW-specific effects
– EAX, EAX2
FMOD Designer
• Event-Based Sound Designer
– Simplifies programming, decouples sound
files from logical “sound events”
– Allows complex sound layering and stitching
• Randomization
• Parameterization
• DSP effects, 3D support, Occlusions
– Data-driven approach
• Demo: Car Engine