Specific Elements of the Interactive Music in Anarchy Online
We created a tool specifically to handle the music in the game. We had listed the requirements for the music, and designed a program that would allow us to meet all those requirements. This tool, the SIM tool (SIM stands for Sample-based Interactive Music), could do all this for us.
Before the description of the tool itself, there are a few things to be mentioned about the composition process. The tool required short pieces of music, which, in the end, would be played sequentially to create the interactive track. The composer had to compose all the short pieces of music and sample them. It was important to sample each piece separately and make sure the reverb at the end of the sample was retained. This was important to ensure continuity in the music. Once this was done, the pieces could be put into the SIM tool.
The SIM tool allows the composer to define the rules for playing back the music. Each sample has a list of possible new samples which can be played after it; possible transitions. The composer must enter the tempo and meter of each sample. This way the tool will start the new sample at exactly the right beat, but allowing the reverb from the previous sample to be played to the end. The new sample then has its own list of possible new transitions, and so on. In the end, this creates an endless string of samples. See the diagram (figure 1) for a visual representation of how this works. Each one of these tracks is called a "layer".
Each layer can change into any other layer at any time. For example: The player moves from a forest and into a desert area. It is daytime. The "forest day" layer is currently playing. Once the player enters into the desert, the SIM tool will find out if the current sample playing has a transition to a sample in the "desert day" layer. If it does, then this is the sample that will play next. If the sample has no transition to the "desert day" layer, the tool will find the shortest possible path to the "desert day" layer via other "forest day" samples.
This system is fairly easy to understand. Working with it is an entirely different thing. In AO there are over 750 individual musical samples. All of these are connected to a number of other samples that are again connected to a number of other samples. A typical sample has 3-5 transitions within its layer and a fair number of transitions to other layers. The amount of transitions the composer needs to oversee is vast, not to mention the testing of these.
The layers function is used primarily in the combat music, which changes to reflect how well -- or badly -- the player is doing in combat, as well as illustrating the strength of the opponent. The combat music has 14 layers which can be activated and stopped at any time, depending on the situation. Mostly it reflects if the player is winning or losing, but it also reflects the size of the enemy. If it's a huge monster, the battle music will be more intense, and if the opponent is tiny, the music will be less intense.
Each layer of music in AO is endless, meaning that unless it is stopped, fades out, or changes into another layer, the music will keep playing forever, jumping from one individual sample to another. Each sample has multiple transitions and will rarely move into the same next sample twice, and so the music is never played the same way twice. In linear time, AO contains about two hours of music, but when played back with the SIM tool, the amount of unique music is almost infinite.
There are certain obvious drawbacks to this system. Since the music samples are set to change only at certain points during playback, it takes a few seconds to change into a different layer. As long as the music is playing within the same layer, everything is fine. This is especially evident in the combat music. In certain cases, the music will keep playing a few seconds after the enemy has been killed, or if the player has been killed, the combat music will keep going for a few seconds before changing into the "death" layer. These were limitations we were aware of, and chose to live with. In our opinion the advantages of the system greatly outweighed the drawbacks.
Even though the tool was designed for Anarchy Online, the game doesn't utilize all of its functions. The fact is that while developing and working with the tool, a number of ideas and uses came up which we were not able to implement for technical and time reasons. One of the features - that is in the current tool, but not in the game - is the ability to cross-fade samples based on chord progression. This is defined by markers in the sound file. This will allow for more rapid changing of layers.