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.