MMD > Archives > November 1995 > 1995.11.12 > 09Prev  Next


Re: Genetic Programming and Analog to Midi
By John Rhodes, forwarded by Robbie Rhodes

My brother John is an industrial designer and manufacturing engineer at Hewlett-Packard in Vancouver, Wash.  He reports here about his own experience with genetic evolution.

-- Robbie Rhodes

attachment:

> From: "John D. Rhodes" <jrhodes@teleport.com>
> To: rhodes@foxtail.com (Robbie Rhodes)
> Date:          Sun, 5 Nov 1995 09:43:02 +0000

Hi, Rob.   This thread is fascinating.  Thanks for copying me on it.

Larry Smith sounds pretty sharp.  The "evaluator" he speaks of, of course, *is* the crux of the genetic programming problem.  Here are a couple of additional thoughts:

#1.  It seems to me genetic programming could be used to develop the evaluator.

#2.  I would use a sampled-sound library (from the target music box [or piano] if possible) instead of a MIDI synth.

More on #1, genetic programming:  I played with a Mac-based program at Oregon Museum of Science and Industry some 5-6 years ago which produced computer shape/color "globs" in a series of generations. The program was written by a geneticist, who wanted to illustrate genetics principles to his students. It operated roughly as follows:

  I first imagined a target object which I wanted to selectively breed.
  Let's say it was a symmetrical butterfly shape, black, with
  large yellow spots.

  The program presented me with a field of 8 roughly circular, randomly
  color-speckled shapes.  I selected a "breeding pair" from this field
  of 8, based on resemblance to the target object.  This pair then
  produced 8 new offspring, and I (playing god) again selected the next
  breeding pair.  It was surprising how rapidly I could produce
  relatively arbitrary shape/color targets.

  The underlying genetic traits, I speculate, were things like:
  symmetry, perimeter roughness, color "globbiness" (i.e., speckles
  or patches), color preferences, aspect ratio, etc.

So, how 'bout using this approach to develop the evaluator:  Start with the genetic traits -- which must be both *quantifiable* and *controllable*.  Maybe -- and this gets tough: it's like specifying position based on rate-of-change of acceleration! --  how to employ number and complexity of "voices"; harmony rules; dictionary of standard moves; etc.  Then let "god" grade the evaluator on its ability to converge on target sounds. We evolve the evaluator!

[ John is declaring that the programmer_person is actively guiding the evolution of the evaluator.  Hmmm ... does the buck stop here? --Rob]

More on item #2:

a.  I assume the objective is to create sheet music of the original performance, not simply produce a combination of MIDI-notes/voices which "sounds like" the original.  So let's get the "sounds-like" out of way with sampled notes, and concentrate on combining the notes to produce the target timing and harmony. [ No: the major objective is something like Midi control of a dynamic waveform synthesizer. --Rob]

b.  I think you should be able to extract samples of *individual* notes from a disk recording.  Take advantage of the slight attack descrepencies on simultaneous notes.  Once you have the attack/decay signature isolated for a given note, you should be able to remove it from a chord (within reason) to assist isolating the signature of other notes.

Further thoughts:

Computer scientists (like some manufacturing automation engineers I work with) sometimes produce overly-complex solutions by attempting to program/automate everything.  Some problems (e.g. pattern recognition) are extremely tough to find programmatic solutions for; but humans (in fact, most animals) are *extremely* good at pattern recognition -- in more than the visual domain, I should add. So, swallow some inventor's pride, save lots of time, and put a human in the loop.

For example, Rob, you and brother Doug can listen to a piano recording and play it by ear and write out the notation.  You are bringing far more to bear on the problem than simple aural analysis. You are including:  how many notes can one hand play, what is the intended harmony, how would one voice this, etc.  Use your knowledge to supplement (and teach) the program.

-- John

(Message sent Mon 6 Nov 1995, 03:23:06 GMT, from time zone GMT-0800.)

Key Words in Subject:  Analog, Genetic, Midi, Programming
Enter text below to search the MMD Website with Google

Please Support Publication of the MMD with your Generous Donation
No PayPal account required
SSL Certificate
by
Let's Encrypt