Lemur Pro Splash Page

Timbre Morphing in Lemur


Overview

Timbre Morphing is the process of combining two or more Lemur files to create a new Lemur file with an intermediate timbre. For instance, if a long loud tone with a fast and narrow vibrato is morphed with a short quiet tone with a slow and wide vibrato, the morphed result should be a medium length, medium loudness tone with an intermediate vibrato speed and width. This process differs from simply mixing the two tones; only a single tone, with some of the characteristics of each of the original tones, is audible in the morphed tone.

The Lemur Morphing Algorithm

The amplitude envelopes and frequency envelopes of corresponding tracks (or partials) of the two Lemur files to be morphed are averaged together. Tracks are matched by looking for tracks in each of the Lemur files in which the ratio of analyzed frequency to that file's fundamental frequency is approximately equal. If there is a track in one file with no corresponding track in the other file, it is morphed with zero magnitude and a frequency determined by the ratio of the fundamentals.

Interpolation of both frequency and amplitude is done in a log scale.

We consider Lemur files which have any number of features. We distinguish between two different types of features:

Unique features
Specific points in each Lemur file such as the start of the attack, the peak of the attack, the loudest point, the start of the decay, etc. Each of these points in the original Lemur files should be algorithmically aligned to create the morphed Lemur file.
Repeatable features
Features in one Lemur file which don't necessarily correspond exactly to a specific feature in the other file. For instance, it is not necessary that the fifth vibrato cycle from one file is interpolated with the fifth vibrato cycle in the second file. It is important, however that vibrato peaks in the two files match up in the interpolation so the morphed file has a single vibrato rate. It is assumed that repeatable features may be skipped or repeated as necessary. This implies that the frequency and amplitude at the beginning of each repeatable feature should be approximately equal to the frequency and amplitude at the beginning of adjacent features.

When morphing, the length of the current morphed feature is calculated as a weighted average of the length of the current feature in the two original Lemur files. The track envelopes for the two original files are then stepped through at a rate such that the ends of the current feature in each file are reached at the same time. The same principle is applied at a larger scale when the end of a repeatable feature is reached. At this point, the number of repeatable features before the next unique feature or the end of the morphed file is calculated. This number is a weighted average of the number of repeatable features remaining in each of the original files before the next unique feature or the end of the file. If a file doesn't have enough repeatable features remaining, the most recent feature may be repeated. Conversely, if a file has too many features, the next feature(s) are skipped.

Files Required for a Morph

The control file is used to determine what proportion of each of the Lemur files is used at each point in the morph. An example control file is a ramp file in which the samples increase linearly from zero to the maximum sample. At the start of the morph, the morphed file is composed of 0% of the first file and 100% of the second file. As the morph proceeded, an increasing percentage of the first file is used. At the conclusion of the morph, 100% of the first file and 0% of the second file is used. The effect is of the second file gradually changing into the first file.

All samples in the control file are expected to be greater than or equal to zero. If a negative value is encountered, it is treated as zero.

There is no relationship between the length of the control file and the lengths of each of the Lemur files to be morphed. Longer control files allow you to create "smoother" morphs without audible discontinuities in the transitions between timbres. Excessively long control files, however, will result in increased processing time with no audible improvement in the resulting Lemur file. Control files containing a few hundred samples should be adequate for most morphs.

(See also Lemur Synthesis Control Files.)

Performing a Morph

  1. Prepare each analysis file by opening it in Lemur and marking features and the fundamental track(s):
  2. Close one of the analysis files and bring the other analysis file to the foreground.
  3. Select Morph from the Edit menu.
  4. Locate the second file to be morphed and press OK.
  5. Locate the control file and press OK.
  6. The morphing process will commence. The length of time required for morphing will vary greatly depending on the speed of your Macintosh(TM).
  7. After the morph completes, select Synthesize from the File menu to generate a samples file from the morphed Lemur file. (See also Lemur Synthesis Parameters.)

For more information about the morphing algorithm in Lemur, see Tellman, Haken, and Holloway 1994 or 1995.


Forward to Real Time Sinusoidal Synthesis
Back to Time Cutting
Up to Lemur Documentation Index

lemur@uiuc.edu