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 >
Text File  |  1991-06-28  |  8KB  |  263 lines

  1.  
  2.  
  3.  
  4.                         Ravel - version 3.0 for MIDI/IBM-pc
  5.             ------------------------------------------------------------
  6.  
  7.             Ravel is  a C-like  interpreted  programming  language  that
  8.             directly supports MIDI music constructs.  It combines C-like
  9.             features with  MIDI facilities built into the language.  The
  10.             system is   intended  to be  used for  building  algorithmic
  11.             based   music   systems.    The  system  consists  of  three
  12.             principle programs,   mos,   mc,   and  ml. mos is a command
  13.             shell and  program executor.     mc  is  the  Ravel compiler
  14.             and is  a fast  one-pass compiler.   With  mos and mc, edit,
  15.             compile, play  cycles  are  very  short.  ml  is  the  Ravel
  16.             linker. Using  the  Ravel  export/import  mechanism, modules
  17.             or libraries  can be  constructed and  linked together  with
  18.             the linker  to produce  a  final  executable.    ml  and  mc
  19.             together can  be used  to build larger applications.  mc can
  20.             be used  by  itself to build small programs.
  21.  
  22.  
  23.             ------------------------------------------------------------
  24.                                       Features
  25.             ------------------------------------------------------------
  26.  
  27.             1. Programming Language:
  28.  
  29.             .  concurrency, parallel main threads (programs) that run
  30.             against one event clock.
  31.             .  functions
  32.             .  include files
  33.             .  if-then-else; switch statement
  34.             .  for loop and break
  35.             .  note and time constants for music
  36.             .  almost all C expression operators supported
  37.             .  MIDI  action  statements,  including  note,  rest, and
  38.             tie operators plus ways to build chords.
  39.             .  predefined function library
  40.             .  one and two dimensional arrays. Integer and byte data
  41.             types.
  42.             .  data may be put in global arrays and variables  with  C
  43.             like initializers.
  44.             .  MIDI event aggregate data  structure  called  a  data
  45.             action. This is a Ravel  language  subset  that  can  be
  46.             used  for  data import/export to sequencers.
  47.             .  data hiding/abstract data types with import/export
  48.             mechanism.
  49.  
  50.             This is referred to as "encapsulation"; i.e., it is possible
  51.             to build modules or packages with Ravel.
  52.  
  53.             2. MIDI actions (events):
  54.  
  55.             Most actions take expressions as operators; e.g.,
  56.  
  57.             riff lousyMelody()
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                 note C q forte
  71.                 note 60 24 100
  72.                 note mrandrange(C,HC) mchoose(q,e) mrandrange(100,120)
  73.                 note ar[3] q*2 forte-x
  74.                 tie  w
  75.                 rest w
  76.             end
  77.  
  78.             would be note, tie, and rest statements in a riff or
  79.             function. Each note action statement takes note, time, and
  80.             velocity expressions.
  81.  
  82.             .  notes include simple notes (event time = duration) and
  83.             duration notes if elapsed time  and note duration do not
  84.             match.   Complex chords  can  be  built  from duration
  85.             notes.
  86.             .  simple chord statements
  87.             .  patch (program), pitch bend, continuous controller
  88.             .  dx7 param changes
  89.             .  metro - clock change
  90.             .  and others
  91.  
  92.             MIDI actions may be declared as statements (code) or may  be
  93.             put in special arrays and treated as data. Actions as data
  94.             represent a special action data type that is a union of
  95.             action statement types.
  96.  
  97.             3. Built-in predefined functions:
  98.  
  99.             .   strong  random  number   package   including   fractal
  100.             generator and drunken walk routine
  101.             .  motif manipulation functions
  102.             .  console i/o
  103.             .  raw MIDI i/o
  104.             .  vector (scalar) array manipulation
  105.             .  MIDI oriented functions (linear scaled pitch bend)
  106.             .  action data executor
  107.             .  dynamic parallel mains (voicelist) may  be  spawned  to
  108.             run concurrently along with static voicelists.
  109.             .  built in window package for  runtime  manipulation  and
  110.             display of data.
  111.  
  112.             4. Mos features:
  113.  
  114.             .  UNIX(tm)-like ls, cp, rm, mv.
  115.             .  can execute DOS programs (editors...).
  116.             .  can save current music setup in ASCII mos command file.
  117.             .  can execute commands from mos command file.
  118.             .  control tempo, set startoff patch, change per channel
  119.             transpose or overall transpose.
  120.             .  can set simulation feature and save MIDI actions.
  121.             in per channel ASCII file.  Subset of Ravel language.
  122.             .  timebase can be set from 24 beats per quarter to 240
  123.             beats per quarter in increments of 24.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.             5. New features:
  138.  
  139.             Translation to and from CAKEWALK sequencer ASCII format.
  140.  
  141.             Ravel is now modular with a linker ml.   The  compiler  mc
  142.             has the ability to import/export global data and functions
  143.             and build modula like libraries.
  144.  
  145.             There is a new beta-test utility mtor that translates MIDI
  146.             File Format files into Ravel files.
  147.  
  148.  
  149.  
  150.  
  151.             ------------------------------------------------------------
  152.                                       Machines
  153.  
  154.             1.  IBM PC/ mpu-401 only.
  155.             Distribution disks are 9 sector 48tpi dsdd.
  156.  
  157.             ------------------------------------------------------------
  158.                                       Reviews
  159.  
  160.             1.  Music Technology.  July 1988.  p.  74.
  161.             2.  Keyboard.  Nov.  1988 p.  86.
  162.             3.  Music Technology.  July 1989.  p.  57 (review of tape
  163.             made using Ravel).
  164.  
  165.             ------------------------------------------------------------
  166.                                         Cost
  167.  
  168.         Ravel is free. However, you must send either 3 360k 5 1/4"
  169.             floppies or 1 1.2M floppy + 2 1.2M floppies for documentation
  170.             plus postage, and a self-addressed mailer in order to get
  171.             the Ravel distribution plus on-line documentation.    
  172.             If you don't do this, you won't get it...
  173.         
  174.         Ravel is available via anon. ftp at:
  175.         131.252.20.145        potemkin.cs.pdx.edu 
  176.  
  177.             I will no longer distribute the manual except on-line.
  178.             Ravel is  now in the public  domain.   Feel  free  to
  179.             give it  to a  friend.  However, please try and provide that
  180.             friend with  the manual.   The  manual  may  be  copied.   A
  181.             loose leaf  programming manual  of about 300 pages  +  a  90
  182.             page appendix  that describes  new features and software  
  183.             is provided on disks.   Of the 3 Ravel music software disks,
  184.         disk  one  contains  executable programs,   disk two  contains 
  185.         more executables  and  simple Ravel   music   programs  and  
  186.         example  code, and  disk   three contains a  jazz improvisation  
  187.         system built with Ravel  and other more complex pieces. 
  188.         One 1.2M floppy contains the  Ravel documentation in both ASCII 
  189.         and nroff form. The second 1.2M floppy contains the Ravel 
  190.         documentation in hp laserjet form.
  191.  
  192.             ------------------------------------------------------------
  193.                                        Source
  194.  
  195.             Source is available for the seriously inclined. I would
  196.             estimate about 3 1.2 megabyte floppies are needed. That is
  197.             the only media I will ship source on. I would be very
  198.             interested if someone wanted to port it to the Mac or a
  199.             Cray or to UNIX. The latter is quite possible.
  200.  
  201.  
  202.             +-----------------------------------------------------------+
  203.              Mail:
  204.  
  205.              Jim Binkley
  206.              5814 SW Taylor
  207.              Portland, Or.  97221
  208.  
  209.          Internet: jrb@jove.cs.pdx.edu
  210.             +-----------------------------------------------------------+
  211.  
  212.             UNIX is a trademark of A.T.T., Bell Labs. 
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.