Rod Goodman
B.Sc., Ph.D., C.Eng., FIET, FIEEE.
ADvanced Music via Information Theoretic Rule
Evaluation (ADMIRE)
The ADMIRE team:
Rod Goodman, Randall R. Spangler, Tony Sheng-Te Change, Heather
Dean
Click the music to play
We are designing algorithms to automatically learn
rules representing a particular style of music (for example, the
harmony of J.S. Bach), then use those rules to generate new music
in the same style.
The
ADMIRE algorithms are capable of generating
accompaniment for a performing musician in real-time. For example,
given as input a melody such as this:
We would like ADMIRE to generate a harmony like
this:
ADMIRE is entirely written in software. It has
minimal hardware requirements and needs no custom-built hardware.
ADMIRE
accepts user input through the computer keyboard, and through any
synthesizer or musical keyboard connected to the computer via a
standard MIDI interface. ADMIRE's output is sent back across the
MIDI interface to a synthesizer for playback
Features of the ADMIRE System
Learns Musical Rules
From Examples:
ADMIRE is capable of learning all its musical knowledge
from sample pieces of music. This gives ADMIRE several important
characteristics. First, it provides flexibility in the application
of ADMIRE to musical styles not originally planned; no recompiling
of the software or detailed reconfiguration is necessary to use
a new style. Second, use of the package does not require much musical
background; rules are determined and prioritized automatically and
do not need to be input or tuned by hand. Third, the process is automated; a
series of industry-standard MIDI song files are provided to ADMIRE
as input, and a series of rulebases are produced as output. Greater
control over the rule generation process is available for advanced
users, but is not required.
Here are some of the rules generated by ADMIRE
using Bach chorales as input:
1. IF Melody0=E AND Function1=V THEN Function0=I
This is the strongest cadence (ending) in classical
Bach harmony (G Major -->C Major)
2. IF Melody0=F AND Function1=V THEN
Function0=IV
Another common transition (G Major --> F Major)
3. IF Function1=V AND Function0=IV THEN Inversion0=I1
Combined with rule 2 above, always places the V-->IV
transition in first inversion
4. IF Function1=V AND Function0=I THEN
Inversion0=I0
Combined with rule 1 above, always places the V
--> I cadence in root position (the strongest position for an
ending chord)
5. IF Function0=vii07 THEN Inversion0=I1
Always places diminished 7th chords in first inversion
(in classical Bach harmony, diminished 7th chords are always placed
in inversion).
These rules are some of the most commonly used
rules in classical Bach harmony, and appear in any first-year music
theory textbook. It is important to note that ADMIRE was not told
these rules, but learned them on its own.
Rule-Based Knowledge
Allows ADMIRE to Explain Itself
Since ADMIRE uses rules to determine which decisions
it will make, it is capable of explaining why it has made a decision
in terms easily understandable by the user. This is an important
distinction between ADMIRE and programs which use neural networks;
the latter are often completely unable to explain why a decision
was made or the important factors taken into consideration when
making that decision.
The ability to explain itself makes ADMIRE useful as an interactive
aid for teaching music theory, since it can not only suggest a way
of harmonizing an example but can also describe why it generated
the particular harmony it did. It is also useful for music historians
trying to understand what composers like Bach or Mozart might have
been thinking when they wrote particular pieces of music.
Real-Time Functionality
Use of new and efficient algorithms for generating and firing rules
allows ADMIRE to run in real-time on today's computers. ADMIRE can
be used as an accompaniment for a live musician. ADMIRE's ability
to rapidly respond to input is valuable for a wide range of other
interactive tasks, such as teaching music theory or real-time control.
What next? Well the rhythm is sort of boring. So how do we learn rhythm?
Working on it.
Sample Output
In the following two examples, ADMIRE was given common
melodies to harmonize. In each case, ADMIRE was capable of generating
suitable harmonies. While the harmonies do not match the traditional
western harmonies for the pieces, they are still consonant. Had
Bach written a harmony for "Happy Birthday," he might
very well have written these notes.
ADMIRE Bach-like harmony for "Happy Birthday"
ADMIRE Bach-like harmony for "Hark, the Herald
Angels Sing"
More MIDI files:
" Liberty
Bell", harmonized by ADMIRE.
J.S. Bach Chorale #2, harmonized
by ADMIRE (and by J.S. Bach, for comparison) Bach wins! (At the current state of our research)
NOTE: If your browser is capable
of playing MIDI files, you can click on any of the images in this
document to hear what these pieces of music sound like.
The ADMIRE system is covered by the following patents:
R.M. Goodman and R. Spangler, “Music Composition,” U.S. Patent
5,883,326, March 16, 1999.
R.M. Goodman and R. Spangler, “Music Composition,” U.S. Patent
5,736,666, April 7, 1998.
top
back to Caltech Research
|