LMUSe "Readme"

LMUSe v0.7b
12/24/98

Changes from v0:

Purpose:
LMUSE is intended to interpret Lindenmayer "L"-systems into MIDI files, or MIDI generated sound. More than 10 state parameters (from 3-dimensional turtle movement and direction) can be independently mapped to pitch, note duration, and volume. The state stack is used to build parallel/polyphonic lines.

So far as I know, LMUSE accepts any "*.LS" file that works with Laurens Lapre's LParser program since virtually the same symbol alphabet is used. Other L-system production program files can be used as well, though usually they require some modifications. I recommend anyone with an interest in L-systems to download a copy of Lparser from http://www.xs4all.nl/~ljlapre/

Equipment required:
386/486/Pentium, 640x480 256 color graphics, mouse, MS-DOS or Windows, midi capable sound card or midi interface, speakers (or headphones).

License, Status, Distribution:
LMUSE is a free program with no warranty. There are no restrictions on its distribution as long as the program and attendant files are intact without modification.

To redistribute with modification, please request permission from the author: David Sharp, dsharp@interport.net

Installing:
LMUSE.ZIP should all be unzipped into the same directory. Using pkunzip, use the -d (create subdirectories) option. To run LMUSE under plain DOS (i.e. not in a Windows DOS box), CWSDPMI.EXE needs to be in the LMUSE directory or in your PATH.

Getting Started:
After starting the program (run LMUS.EXE), open the 'Production' menu. Click on 'Make and Interpret'. A file selector dialog opens and displays files with 'L', 'LS', or 'LM' extensions. Just for an example, look in the EXAMPLES directory and select the file 'AIRHORSE.LS', and click on 'OK'. LMUSe reads the 'LS' file and shows you the recursion level, basic angle, axiom, and transformation rules that it just loaded from AIRHORSE.LS. Here you have the opportunity to change the recursion level or basic angle. For now, just click on 'OK'.

LMUSe then makes the production string from the axiom, using the transformation rules. The butterfly mouse cursor shows you that LMUSe is making the production string. The cursor switches to a flying saucer when LMUSe starts the 'interpreting' stage.

When LMUSe is ready to begin interpreting the production as MIDI messages, it presents you with the 'Map' dialog. Here you choose which state parameters should be mapped to note pitches, note durations, and note volumes. You can also use the slider bars to determine how strong the influence of the state parameters is. For a first run, just click on 'OK'. After clicking on OK, you watch LMUSe draw a picture from the rules. This is really just a 'progress indicator' as a list of MIDI messages is prepared.

When done, LMUSe switches to the 'Play' screen and plays the newly composed piece.

Included Files:

   LMUS.EXE
       - the main executable.
   LMUS.DAT
       - an attendant data file
   HELP.DAT
       - LMUSE help file. Not meant to be read outside
         of the LMUSE program.
   CWSDPMI.EXE
       - DPMI for running under DOS
   LMUSE.TXT
       - The LMUSE help files concatenated into one document
   examples/*.L, *.LS, *.LM
       - example L-system transformation rules
   examples/*.INI, *.MAP
       - example map files
   src/*.c, *.h, makefile
       - the source code and gcc makefile for compiling.
   html/*.htm, *.gif, *.mid
       - html version of documents. Examples,etc.

   A sparse tutorial is in the file `tut.txt'.

The Source Code:
To compile LMUSe `straight out of the box' you will need the C compiler DJGPP, as well as the Allegro v3.0 game library, both freely available. You are free to use the source code however you want except for claiming that it was written by anyone other than me or those credited in the LMUSe source code.

Questions, Problems, etc:
Please send questions, complaints, requests, etc, to: dsharp@interport.net