Chili Sound Pack
The Chili Sound Pack is an optional pack of code and .dlls you can add to Chili Framework projects to enable the use of sound effects.
Here is a link to a video explaining how to integrate the sound module into a framework solution and how to use the
SoundEffect classes. Check the downloads section below for the necessary stuff to follow along. (Note that newer versions of the framework already have the sound stuff included by default.)
Extra Notes / Errata
- In the tutorial video, the constructor for
SoundEffectis not fully explained. There are 3 parameters. The first parameter is, as shown in the video, a list of
std::wstrings which are the names of .wav files to be loaded. The second parameter is a
bool, and if passed in as true, it allows the loading of .wav files to soft-fail (failure to load the file will cause a silent
Soundobject to be used instead). The third parameter is a
floatwhich is the standard deviation used to generate the pitch shift for each playback. Larger values create more dramatic swings in pitch.
- In the portion where I demonstrate soft-fail loading of a
catchblock, in the body of the
catchI assign a default-constructed
Soundobject, but this is unnecessary (if the constructor
throws, the object will be put into a default-constructed, i.e. empty sound, state).
- Never EVER create a
SoundEffect) object in the global scope. If you do so, the
SoundSystemobject will end up getting destroyed before the Sound object, and then you're FUCKED. I warned you.
Here is the sound module zip file with the code and .dll files for the sound module.
To follow the tutorial on the sound module, you will need the following zip files as well:
Inner Workings of the Module
The inner workings of the XAudio2 code are explained in the H.U.G.S. series. The code discussed there is somewhat different than the code in the sound pack, but the fundamentals are the same. If you want the details, see the video links below. Note that these tutorials assume a relatively strong command of the C++ language.