Through the years I have developed some techniques which may apply as well to complex algorithmic musical situations as they do to simple interactive music or even linear music designed for use in an interactive product.
Although music is usually only used at key points in a game you may be asked to provide music for every situation. In this case it is important to note that the player will have different levels of concentration in different parts of the game. For example browsing in a menu will require much less attention than managing a real-time battle. The player is also likely to spend much less time in menus than in the main game area. If you write a long piece of music for use while a player is browsing in a menu then they may never hear more than ten or fifteen seconds of it and may grow tired of hearing that same fifteen seconds over and over again. On the other hand a thirty second piece of music may get tiring if the player spends five hours on the main game screen and has to hear that theme 600 times.
When I am playing a strategy game the last thing I want is to be distracted by music. But I have still been asked to provide music to play in the background in just such situations. My solution is to make the music much less unique or catchy thereby causing the player not to notice it as much. The more noticeable a phrase is the more likely the player will notice it each time it plays. This gives the player a clear idea of how often the piece of music is repeating. Excessive repeating tends to be irritating especially over long periods of time. We don't complain that the wind is too repetitive even though we can simulate it with a white noise generator. That is because there is nothing distinct in that sound that stands out for us to notice each time it happens. A short piece of music designed to blend into the background can be much more effective than a long piece that has too many noticeable characteristics. This is probably totally contrary to your typical approach since you are essentially being asked to make your music dull. I began with that impression but I eventually realized that variety of textures is just as pleasing as, and less annoying than, a catchy phrase. This has the added benefit of allowing your important transitional themes to stand out much more than they would if all of the music stood out just as much.
If you are not writing a theme that needs to be played constantly but still feel that you have not been allotted enough time for your loop then avoid repeating phrases and verses. These segments will be repeated automatically when the loop repeats. On the other hand if you are designing short segments of music that will be added together like box cars you might want to use repeating themes and motifs as a way of making all the different pieces seem to belong together. In this case be careful not to over use a motif so that it gets pounded into the ground.
In many interactive music situations you will not be given the luxury of the clear beginning and ending to a tune. Nonetheless a musical structure can be very helpful in conveying emotion and change so you might try making transitions that feel like something is ending and something else is beginning. This will keep your music from feeling like one gigantic single tune playing on forever. An occasional change of instrumentation can help provide variety in an otherwise repetitive situation. Even very different tunes can all seem to run together if played on the same set of instruments.
Composing a piece of music with many layered elements can be tricky. The best way to begin is by writing a single piece of music with all the layers in place at the same time. If the piece sounds good with all the layers in place then it will usually be able to stand having some of them removed. On the other hand if you try to write a base structure with the idea of adding layered instruments later as needed you will usually find yourself painted into a corner before you have more than one or two layers added. This is because a multi-layered environment usually requires that you pull and tug at a note here or a chord there before everything fits. This means that nothing can be finalized until you are done with all of the layers. In this kind of situation you must also be careful when allowing for changes in instrumentation since a rise or drop of an octave can change a major seventh interval into a minor second and give you a lot more dissonance than you had intended.
Try to evaluate how critical the relative volumes are between your different layers. If a lead instrument is changed from something loud and clear like a trumpet or sax into something quiet like a clarinet or a flute it can virtually disappear since you were not there to adjust its volume accordingly. If the presence of that lead instrument is critical to the sound of your music then you need to take steps to assure that this situation does not arise. Drum sets and individual drums tend to vary greatly from one sound set to another. It is very easy for a subdued tom-tom to turn into an infernal racket when changing from one sound set to another. The only solution I can offer is either to avoid situations where the drums need to be soft or to use a downloadable sound set so that you are certain what the drums will sound like. A lot of multimedia composers seem to stick to safe instruments that are usually very similar from one sound set to another. These include piano, organ, and most of the common wind instruments. Anything that is synthesized and that is open to interpretation will likely vary a great deal from one sound set to another and should probably be avoided when you do not control the sound set. When looking for a reference sound set it is probably safer to use the Roland General MIDI sound set that is found in their Sound Canvas series of synthesizers. The Roland Sound Canvas has probably the best all around General MIDI instrument set. When other manufacturers are trying to make their general MIDI synthesizer sound good with existing MIDI files they tend to imitate the Sound Canvas. Because of this it will be good news to some that Microsoft has licensed a general MIDI sound set from Roland to be used with Microsoft's own software synthesizer in DirectMusic.
When working on interactive music projects composers often overlook the fact that the short segments of music or boxcars can be of any length at all. Most people think of them as being between four measures and one verse in length but they can be as short as one beat.
I have done a lot of composing on a sequencer that imposes a one track one channel restriction so it is easy for me to forget that an interactive music segment can contain up to sixteen channels worth of information. In other words one segment can contain an entire composition. Because of this it is important to make sure that conflicting information is not contained in two segments that will be played at the same time. If there is a sax solo on channel two in both sections that you are playing back simultaneously you may not simply get two voices. A conflict in pitch bend could make both saxes do a weird trembling that also carries them off the intended pitch as the pitch bend messages alternate between the two segments and you get a zig zag effect in the data. This can get especially nasty if you are using pitch bend to achieve slurs from one note to another.
Beware that a synthesizer may have been left in a state that is not compatible with your music. If the last tune it played was cut off in the middle of a pitch bend then anything you subsequently play on that channel will be out of tune. This is one good reason for always resetting all of the critical controllers at the beginning of a tune but this can take long enough to create a stutter in playback as you finish one segment and play the next. In an interactive product where you are never certain what tune or segment will play first in each game session you may want to tell the programmer to always play a 'reset' segment at the start of each game session. You may have a situation where there is a chance of a segment being interrupted by the player without a subsequent 'reset' segment when the player returns. In this case you will have to either place data at the start of each segment that will reset only what is relevant to that segment or you may find a General MIDI reset message is fast enough to avoid a hiccup as each segment starts. Check to see if the driver software being used in your project does this for you.
For questions or comments contact the webmaster at