Book Image

Getting Started with C++ Audio Programming for Game Development

By : David da L Gouveia
Book Image

Getting Started with C++ Audio Programming for Game Development

By: David da L Gouveia

Overview of this book

Audio plays a fundamental role in video games. From music to sound effects or dialogue, it helps to reinforce the experience, convey the mood, and give feedback to the player. Presently, many games have achieved commercial success by incorporating game sounds that have enhanced the user experience. You can achieve this in your games with the help of the FMOD library. This book provides you with a practical guide to implementing the FMOD toolkit in your games. Getting Started with C++ Audio Programming for Game Developers is a quick and practical introduction to the most important audio programming topics that any game developer is expected to know. Whether you need to play only a few audio files or you intend to design a complex audio simulation, this book will help you get started enhancing your game with audio programs. Getting Started with C++ Audio Programming for Game Developers covers a broad range of topics – from loading and playing audio files to simulating sounds within a virtual environment and implementing interactive sounds that react to events in the game. The book starts off with an explanation of the fundamental audio concepts, after which it proceeds to explain how to use the FMOD Ex library, how to implement a 3D audio simulation, how to use the FMOD Designer toolkit, and how best to work with multi-layered sounds with complex behaviors attached to them. The final part of the book deals with working with audio at a much lower level by manipulating audio data directly. This book will provide you with a good foundation so that you can successfully implement audio into your games and begin pursuing other advanced topics in audio programming with confidence.
Table of Contents (13 chapters)
Getting Started with C++ Audio Programming for Game Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Controlling the pitch


Controlling the pitch is not as straightforward as controlling the volume. We already know that modifying the frequency of a sound, changes its pitch and the channel handle actually has a setFrequency() method just for that:

channel->setFrequency(261.626f);

However, it does not work the way some of us might expect. For example, the middle C note on a piano has a frequency of approximately 261.626 Hz, so we might expect that setting the frequency to that value, would make the sound assume a pitch close to the middle C note, but this is not the case.

In order to understand this problem, let us first turn our attention to the getFrequency() method. If we call this method on a channel with its original frequency, what we get in return is actually the sampling rate of the sound. This means that any frequency values that we set must be relative to this value, or in other words, that any values above the original sampling rate of the sound will increase its pitch, and vice...