home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.ee.pdx.edu
/
2014.02.ftp.ee.pdx.edu.tar
/
ftp.ee.pdx.edu
/
pub
/
music
/
ravel
/
rdata.txt
< prev
next >
Wrap
Text File
|
1991-06-28
|
8KB
|
263 lines
Ravel - version 3.0 for MIDI/IBM-pc
------------------------------------------------------------
Ravel is a C-like interpreted programming language that
directly supports MIDI music constructs. It combines C-like
features with MIDI facilities built into the language. The
system is intended to be used for building algorithmic
based music systems. The system consists of three
principle programs, mos, mc, and ml. mos is a command
shell and program executor. mc is the Ravel compiler
and is a fast one-pass compiler. With mos and mc, edit,
compile, play cycles are very short. ml is the Ravel
linker. Using the Ravel export/import mechanism, modules
or libraries can be constructed and linked together with
the linker to produce a final executable. ml and mc
together can be used to build larger applications. mc can
be used by itself to build small programs.
------------------------------------------------------------
Features
------------------------------------------------------------
1. Programming Language:
. concurrency, parallel main threads (programs) that run
against one event clock.
. functions
. include files
. if-then-else; switch statement
. for loop and break
. note and time constants for music
. almost all C expression operators supported
. MIDI action statements, including note, rest, and
tie operators plus ways to build chords.
. predefined function library
. one and two dimensional arrays. Integer and byte data
types.
. data may be put in global arrays and variables with C
like initializers.
. MIDI event aggregate data structure called a data
action. This is a Ravel language subset that can be
used for data import/export to sequencers.
. data hiding/abstract data types with import/export
mechanism.
This is referred to as "encapsulation"; i.e., it is possible
to build modules or packages with Ravel.
2. MIDI actions (events):
Most actions take expressions as operators; e.g.,
riff lousyMelody()
note C q forte
note 60 24 100
note mrandrange(C,HC) mchoose(q,e) mrandrange(100,120)
note ar[3] q*2 forte-x
tie w
rest w
end
would be note, tie, and rest statements in a riff or
function. Each note action statement takes note, time, and
velocity expressions.
. notes include simple notes (event time = duration) and
duration notes if elapsed time and note duration do not
match. Complex chords can be built from duration
notes.
. simple chord statements
. patch (program), pitch bend, continuous controller
. dx7 param changes
. metro - clock change
. and others
MIDI actions may be declared as statements (code) or may be
put in special arrays and treated as data. Actions as data
represent a special action data type that is a union of
action statement types.
3. Built-in predefined functions:
. strong random number package including fractal
generator and drunken walk routine
. motif manipulation functions
. console i/o
. raw MIDI i/o
. vector (scalar) array manipulation
. MIDI oriented functions (linear scaled pitch bend)
. action data executor
. dynamic parallel mains (voicelist) may be spawned to
run concurrently along with static voicelists.
. built in window package for runtime manipulation and
display of data.
4. Mos features:
. UNIX(tm)-like ls, cp, rm, mv.
. can execute DOS programs (editors...).
. can save current music setup in ASCII mos command file.
. can execute commands from mos command file.
. control tempo, set startoff patch, change per channel
transpose or overall transpose.
. can set simulation feature and save MIDI actions.
in per channel ASCII file. Subset of Ravel language.
. timebase can be set from 24 beats per quarter to 240
beats per quarter in increments of 24.
5. New features:
Translation to and from CAKEWALK sequencer ASCII format.
Ravel is now modular with a linker ml. The compiler mc
has the ability to import/export global data and functions
and build modula like libraries.
There is a new beta-test utility mtor that translates MIDI
File Format files into Ravel files.
------------------------------------------------------------
Machines
1. IBM PC/ mpu-401 only.
Distribution disks are 9 sector 48tpi dsdd.
------------------------------------------------------------
Reviews
1. Music Technology. July 1988. p. 74.
2. Keyboard. Nov. 1988 p. 86.
3. Music Technology. July 1989. p. 57 (review of tape
made using Ravel).
------------------------------------------------------------
Cost
Ravel is free. However, you must send either 3 360k 5 1/4"
floppies or 1 1.2M floppy + 2 1.2M floppies for documentation
plus postage, and a self-addressed mailer in order to get
the Ravel distribution plus on-line documentation.
If you don't do this, you won't get it...
Ravel is available via anon. ftp at:
131.252.20.145 potemkin.cs.pdx.edu
I will no longer distribute the manual except on-line.
Ravel is now in the public domain. Feel free to
give it to a friend. However, please try and provide that
friend with the manual. The manual may be copied. A
loose leaf programming manual of about 300 pages + a 90
page appendix that describes new features and software
is provided on disks. Of the 3 Ravel music software disks,
disk one contains executable programs, disk two contains
more executables and simple Ravel music programs and
example code, and disk three contains a jazz improvisation
system built with Ravel and other more complex pieces.
One 1.2M floppy contains the Ravel documentation in both ASCII
and nroff form. The second 1.2M floppy contains the Ravel
documentation in hp laserjet form.
------------------------------------------------------------
Source
Source is available for the seriously inclined. I would
estimate about 3 1.2 megabyte floppies are needed. That is
the only media I will ship source on. I would be very
interested if someone wanted to port it to the Mac or a
Cray or to UNIX. The latter is quite possible.
+-----------------------------------------------------------+
Mail:
Jim Binkley
5814 SW Taylor
Portland, Or. 97221
Internet: jrb@jove.cs.pdx.edu
+-----------------------------------------------------------+
UNIX is a trademark of A.T.T., Bell Labs.