Up to this point, we have played sounds in a very linear fashion; we load an audio file from a disk and play it when needed, optionally controlling some of its parameters during playback. Even when we used advanced features such as 3D audio, there was still a one-to-one relationship between the sound and the audio file.
However, a sound does not necessarily correspond to a single audio file. In many scenarios we can benefit from using multiple audio files for a single sound. For example, we can often reduce repetition by providing several variations of the same sound as separate audio files, or we can build complex soundscapes by combining several smaller sound fragments.
For other sounds, the modifications we apply at runtime to their parameters are just as important as the audio files that compose them. For example, we cannot realistically simulate the sound of a car engine without constantly updating its pitch and volume based on the engine's rpm and load values...