Next: , Previous: How it Works, Up: Top

3 Musical Examples

The simple examples given here demonstrate how the program can be used for different purposes. The database that produced them was compiled from two sources, the RWC Music Database and the University of Iowa Musical Instrument Samples library. Each database instrument/pitch/dynamic entry is the average of approximately three or four sound samples (the RWC sample library contains recordings of up to three different manufactured models of the same instrument). A small chamber orchestra was defined and callback functions were written in Lisp to enforce constraints on SPORCH's search process.

In this figure a tonal chord progression was orchestrated with the same source (a boat whistle) for each chord.


Figure 3.1: Sporchestrated Chord Progression

The harmonies were produced by applying constraints on the pitch classes allowed. It was up to the algorithm to decide which notes to include in the chords and how they should be spaced. Using the same source for each chord caused the algorithm to use a few common tones assigned with the same instrument and dynamic level throughout. Several interesting relationships exist—the trading off of the fortissimo double bass E3 to the fortissimo bassoon F4 in measures 1 and 2 and the E2/G2–E3–F3–(rest)–E3 melody that appears with fff markings for example. The notes also seem to cluster around the regions E2–D3 and C4–E4.

In the next figure, SPORCH was used to harmonize a double bass melody with pitches from other string instruments.


Figure 3.2: Harmony Derived from Sporchestrating the Melody

The double bass pitches were used as the input sound sources so that the resulting harmonies were based on the harmonics already present in the melody. The chords that emerged have partials that match or intersect with the double bass's. Some of the pitches in the harmony match partials that are around the 7th or 8th or higher. The general location of the pitches is at least partially determined by the spectral envelope of the double bass and how well the upper partials of the harmonizing instruments fit into it. Applying a lowpass or bandpass filter would be one method of moving them to a different range.

SPORCH also generated several different harmonizations using a modification of the search scoring by adding in small random numbers. Doing so allowed the algorithm to find different matches that were related to each other. The next figure shows another harmonization.


Figure 3.3: Another Harmony Derived from Sporchestrating the Same Melody

The source files were amplified as well to encourage SPORCH to use denser chords.

In the following figure a melody was randomly generated by matching a flute ensemble to a whistling sound.


Figure 3.4: Random Melody from a Sporchestrated Sound

The generation function used the weights that were output along with each pitch selection to determine how long each pitch should be sustained. The result is a flute melody that proportionally emphasizes the partials in the whistle chord. Grace notes were used for extremely small durations. Another version of the melody is shown here:


Figure 3.5: Another Random Melody from a Sporchestrated Sound

The final figure shows an interpolation between two sounds (the car horn examples and the boat whistle from the previous examples).


Figure 3.6: Sporchestrated Interpolation Between Two Neighboring Sporchestrated Harmonies

The car horn chord is the first, the interpolated chord is the second and the boat whistle is the last. The interpolation was created by simply mixing the two sources together. The result contains anticipations of the F2 and E4 notes in the final chord and a cluster in the bass that appears to be a thinning out of the chord in the lower staff of the first chord towards the two low notes in the last chord. The Viola E5 and F5 pitches in the first chord that appear to be missing in the interpolated chord are actually replaced by the fortissimo Viola E4 an octave below. A similar relationship appears between the bassoon A2 and A3 between the middle and last chords.