[rec.music.synth] ravel rides again

jrb@shamu.WV.TEK.COM (James Binkley) (05/30/90)

A number of years ago, I decided to try and create a jazz
based improvisation system. As a result I ended up first
creating a music programming language that runs on the IBM-pc(mpu 401)
called Ravel. Ravel is a C-like interpreted programming language
that supports MIDI actions in the language. The
main thing is that it is concurrent. It is also modular and supports
an import/export mechanism for encapsulation.

There is a jazz guitarist and jazz teacher named Jerry Hahn.
He has a set of books out now (Mel Bay no less) that contain
a rule-based system for jazz improvisation that he came up
with over many years of teaching. I felt that it was extremely
close to being totally algorithmic (but not quite naturally) 
and decided to use his rule base and my model.

The current jazz improv program basically has that rule set coded up. 
The structure of the program is that there is a user i/f that
has some runtime parameters that can be changed by the user. Basically
there are four players (a quartet),

			drummer
			bassist
		        lead
			piano

The drummer is fairly primitive and is not using anything I can
be proud of in terms of algorithms. The piano player basically
plays the chords on the beat (and can jam using a different ruleset
that is based on various harmonization principles, but I wouldn't
rate it too high, poor to bad). The bass player and the
lead both use the Jerry Hahn rule set. The base player uses it to
a lesser extent. One of the user i/f parameters you can change is
a percent of various time durations for notes; e.g, half, quarter,
jazz eighths, that sort of thing. The lead player is a much
better improviser than I am, but that may not be saying a whole
lot. It could be better; it's not bad though.

There is a set of known chords and known scales. It can be added to.
It's just kept in arrays as symbolic constants at the moment. 
A piece is an intro + a chord sequence which is looped on forever.

The main thing about the system is that it is useful to me as
a vehicle for studying improvisation. I can jam with it. The bass
and piano alone are enough to improvise with. The bass player doesn't
suffer from lack of variety.

On the down side: It could stand much work in the area of theme and
variation. The drummer arena could stand some real work. (I need more
cpu too...). The piano player is a hack but...

It's fun.

Ravel as a programming language system is now in the public domain 
as of May 15, 1990.  If you want more information, please send U.S. mail to:

Jim Binkley
5814 SW Taylor
Portland, Oregon 97221.

It's free but free with a catch. There is about 370 pages of documentation
at this point + 3 disks of tools + music source. It costs $22.30
to get the manual xeroxed (latest round at Kinko's). 
I am asking slightly more to cover the rest of the materials.
If you get a copy, you can distribute it locally. Again
write me for details.

				Jim Binkley
				jrb@jove.cs.pdx.edu