Composers' Forum

Music Composers Unite!

The Marvellous, Modular Mouse Organ!

One of the things that many composers are called upon to do at some point is to write music that can be tailored approximately to a certain length. The other day I was asked to write some "beds" to go under voiceover, for example. As visual editing is now largely performed in workstation applications such as Final Cut Pro, the most convenient delivery format for such things is a modular one. In this instance, I sent the client two files: an intro and a loop. This enabled him to construct a bed of any length like this: INTRO-LOOP-LOOP-LOOP... A bit like Lego(tm) bricks! Sometimes it will also be desirable to provide an "end" brick to finish off the piece: ...LOOP-LOOP-END I was solving this problem for the first time, and I thought it might be useful to record how I did the job. The following diagram illustrates the basic approach.

I began by coming up with a suitable groove, which I made into an 8-bar loop. Then I added an intro bar. The diagram shows an ending too, which was not used on this occasion, but for the sake of argument, let’s assume that it was. The puzzle I had to solve was how to make the intro flow seamlessly into the loop, and the loop into either another copy of the loop or the ending. In terms of the actual notes/MIDI, this isn’t an issue. However, the problem is that audio is what is being delivered. The process of applying effects and mixing results in “release tails”: pieces of audio that persist for a short time after the MIDI section has ended. The end result is that these release tails effectively become part of the next section’s audio. Had I sliced up the audio the same way I sliced up the MIDI, using only one instance of the loop section, I would have the intro’s release tail on the front of the loop, which would not sound right on the first repeat of the loop, because the intro is long gone by then. The answer shown in the diagram is to use two loop sections, and use the first one as an extension of the intro. This means that the front of the actual audio loop section contains a release tail of its own final segment, which makes for a near-perfect fit. That’s actually what I delivered to the client. So far, so good. But then, I began to wonder about that “near-perfect” bit. You see, there is actually a problem here. If the same MIDI sequence always produced exactly the same audio, it would work fine. In practice, this doesn’t happen. Randomization of samples, for example, or effects plug-ins, can change the result each time – or free-running effects that are not synchronized to the song position (e.g. a free-running tremolo effect). So the final segment of the first loop would sound slightly different from the final segment of the second loop, and in theory this makes for a mismatch in the signals at the join point.

So, what is the answer? I’ve been puzzling over it all day, but I’ve come up with a way to make a set of building blocks that will always produce a 100% seamless piece of audio when stuck together. Here’s how it works:

The only drawback to this is that the intro and end pieces are relatively long, so it wouldn’t be very convenient for making a very short piece. That said, this method should produce a seamless result without fail, because the intro and loop sections both end with exactly the same waveform, and the loop and end sections both begin with exactly the same waveform. All the fiddling about with crossfades is done at the halfway point in the original loop, so that the intro and end music is not affected by it. I’ve yet to try this in practice, and it looks a little fiddly, so when I’m in a hurry, I’ll probably just use method 1. Any audible glitches can probably easily be masked anyway by judicious choice of sound at the start of the loop. However, it’s nice to know an answer to the problem. I’m the kind of person who would lose sleep wondering about it otherwise. If you are one of those people too, then I hope this has been interesting and/or useful to read! And if you know of a better way of solving the problem, I’d be very interested to hear about it.

Views: 38


You need to be a member of Composers' Forum to add comments!

Join Composers' Forum

Comment by Mike Torr on April 16, 2008 at 8:17pm
Just a quick note to say that I delivered another bed tonight and I used the new method. It works perfectly - I checked the waveforms and they all lined up beautifully. w00t!

Sign up info

Read before you sign up to find out what the requirements are!


© 2021   Created by Gav Brown.   Powered by

Badges  |  Report an Issue  |  Terms of Service