1 / 21

Sound Engine Evaluation for Computer Games

Sound Engine Evaluation for Computer Games. Case Study: fmod Jyun-Ming Chen. Typical Game Loop. Roles of music/sound BGM (background music) Sound effect. Microsoft SDK. Need more sophisticated tools!. BGM (Midi) mciSendCommand ( … ) Sound (Wave) sndPlaySound See msdn for details

mae
Télécharger la présentation

Sound Engine Evaluation for Computer Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sound Engine Evaluation for Computer Games Case Study: fmod Jyun-Ming Chen

  2. Typical Game Loop Roles of music/sound • BGM (background music) • Sound effect

  3. Microsoft SDK Need more sophisticated tools! • BGM (Midi) • mciSendCommand (…) • Sound (Wave) • sndPlaySound • See msdn for details • Ex: midi_wav.zip on webhd2/game-ex

  4. BGM File formats supported: mid, mp3, mod, … Looping Early termination Volume control Sound effects File formats supported Trigger mechanism Reverb and other DSP FX (e.g., room effects) Pre-load to avoid delay in first play General Mixing capability (how many sounds can be mixed at one time) Spatial sound Position: 3D vs. panning Velocity: Doppler supported? Occlusion?! Sync capability sound to action Action to sound Others CPU overhead Check List

  5. Case Study: fmod • Cross platform audio library (Win32, Linux, mac, WinCE, PS2, Xbox, …) • Free unless for commercial use

  6. Documentation FSOUND: for sound effect FMUSIC: for bgm

  7. FSOUND API

  8. Initialization Required for both FMUSIC & FSOUND

  9. FSOUND_Sample • Load, Free • SetMode: LOOP normal | bidi | off • Get/SetLoopPoints • GetLength • Get/SetMinMaxDistance (min is the distance where the sound starts to attenuate) • increase the min_distance of a sound to make it 'louder' in a 3d world, and decrease it to make it 'quieter' in a 3d world.

  10. FSOUND_Stream • If the PCM data (wav) or compressed file (ogg, mp3, …) is too big to be read in as a sample, we can use stream functions to read it (decompress it on-the-fly) • Certain functionalities are restricted

  11. Channel Functions • FSOUND_PlaySound, PlaySoundEx • FSOUND_FREE: Choose a free channel to play in • Returns the channel selected • Extended version can play paused (allow attributes to be changed, then play) • FSOUND_SetFrequency (channel, 11025); • FSOUND_SetVolume(channel, 255); • FSOUND_SetPan(channel, 255); • FSOUND_SetPaused(channel, FALSE); • FSOUND_StopSound

  12. FMUSIC (mid, mod; mp3) • LoadSong • PlaySong: can play more than one music (yes, but why?) • SetPaused • SetLooping: default TRUE • SetPanSeparation, SetMasterSpeed, SetMasterVolume • StopSong, StopAllSongs • FreeSong • SetReverb (midi only)

  13. OpenGL Tests Webhd2/game-ex/fmod_opengl_tests

  14. Basics

  15. FMUSIC PLAYS S3M AND MID; NOT MP3 (sequenced file, not PCM-type) Bgmusic OK for mod files

  16. Works for mp3, ogg, wav Only wav can store cue point (for sync) Stream

  17. 3dsound • FSOUND_Update(): • This updates the 3d sound engine, and should be called whether sound source or listener changes position

  18. Float *pos Float *Vel (per second) NULL to ignore Fx, fy, fz (forward orientation unit vector) Tx, ty, tz (top-up orientation unit vector) y z x Global Axes in Fmod Left-handed Listener Attributes

  19. Doppler FSOUND_3D_SetDopplerFactor (4.0);

  20. Commonly Used APIs Init and Close Load and Free sample

  21. Sound API

More Related