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