Skip to content

Ideas 2013:FIFE soundmanager

Chris Oelmueller edited this page Mar 25, 2013 · 2 revisions

Re-implementation of the FIFE SoundManager in C++

Our problem

Currently the FIFE sound manager is implemented mostly in python. The FIFE library provides some basic interfaces to OpenAL to play sounds but it's lacking a lot of features you would expect. This is why the python sound manager exists in the first place. We would like the python sound manager to be replaced by a re-engineered C++ version within FIFE itself allowing more features and flexibility for clients like UH.

Our idea

Some features we would like to see implemented, but not limited to are:

  • Multiple types of sounds
    • sound fx
    • music
    • ambient
  • Better positional sounds
  • More accurate information about a playing sound
    • Total length of the clip in seconds
    • Total time played
    • Total time remaining
  • Callbacks for various events like:
    • When a sound has completed playing
    • Time updates
  • Better management of the OpenAL emitters
    • Play the same clip multiple times at the same time
    • Only a defined number of sounds can play at once
    • Determine which sounds should stop in order to play new sounds
  • Additional file format support
    • WAV, FLAC, etc etc
  • BONUS: You can completely re-design the sound manager if you see fit

What you need

  • Some python programming skills
  • Strong C++ skills (must)
  • Ideas and features you want to implement (must)
  • Finding problems and solutions to them independently (generally important)
  • Experience with OpenAL (must)
  • Estimated difficulty: Hard

What we provide

  • Existing base implementation

As a pre-GSoC task you could try some of the following:

  • Try any of the above ideas
  • Fix fife issue #767

What we expect

You can shift around release goals and target dates in the planning stage as you like. Once your mentor and you agreed on a rough timetable, only light modifications should occur if there happens nothing unforeseeable.

  • No milestones from our side. Propose some to your mentors!

What you can add

In general: If your mentor agrees, you can change almost everything in our descriptions. They are just meant to provide guidance if you are not sure where to start or which way to choose.

You are especially free to alter the following parts:

  • Features
  • Design of the SoundManager
  • File formats

Who looks after you

Your mentors for this task will probably be: vtchill, prock

These devs might also help out if your mentors are not around right now: helios

Clone this wiki locally