The main assumption in the design is that you have created a 3-D world, with objects moving around within that world. These objects make a variety of noises: there are environmental effects, there is atmospheric music, and there are some ambient and random sounds. With this scenario, you do not know exactly how many times any one sound will need to be played, and in particular, how many buffers of the same sound that might need to be played at once.
For this reason, the Concertina framework operates using a table of best guesses at how many buffers you need for each sound, but includes an overflow set of buffers that can be used when your guess is wrong. It also prints out a report at the end of the program letting you know the actual requirement for sound buffers. The idea is that you can improve your best guesses with the testing of your game, but that you need never get it exactly right as the overflow area will take care of most of the excesses as they occur.
Another design decision is that there are a small number of streaming buffers to handle the music that may be required. We have not enabled applying 3-D or special effects processing to the streaming buffers, although you could amend the code to do this.
Of course another design decision is that you want the full range of 3-D and special effects that have been demonstrated in the Cacophony, Rumpus and Circular Streams samples.
To include the Concertina framework in your own project, go through the following steps.