mail
Some favorite examples (click an icon for the midi):
Edna
Dornblazer Institute of Mad Secretarial Sciences and Theoretical
Cosmetology
New: A Java version of LMUSe (latest update 06/22/01) |
interprets 3-d Lindenmayer L-systems as MIDI files, or MIDI generated sound. L-systems recursively tranform a string of symbols according to a set of rules. The resulting string of symbols is then interpreted as a sequence of commands to move and turn a 'turtle' (a la the LOGO programming language) which draws (or writes music) as it moves. Originally designed by Aristid Lindenmayer and others to model the development of living organisms, L-systems are a fascinating tool for generating fractal forms.
In order to interpret the L-system as music, LMUSe maps any of the turtle's 3-d movement, orientation directions (forward, up, and left), its drawing line length, and thickness into musical pitches, note durations, and volume. The color is interpreted as the intrument or timbre. Parallel/polyphonic lines are built by using the turtle's push and pop commands. The transformation rules can be stochastic as well as context-sensitive. LMUSe can mutate the transformation rules so that generating variations is easy.
LMUSe is designed to run the "LS" files that Laurens Lapre's LParser program uses, and virtually the same symbol alphabet is used (though LMUSe's interpretation is musical rather than graphical). I highly recommend anyone with an interest in L-systems to download a copy of Lparser from Laurens Lapre's web page, which also contains many examples and links to valuable L-system tutorials.
System Requirements:
For DOS version: 386/486/Pentium, MS-DOS,
640x480 256 color graphics, mouse, midi capable sound card or
midi interface, speakers (or headphones).
For DOS commandline version: 386/486/Pentium, MS-DOS. (The source code has been successfully compiled under LINUX and UNIX using gcc.)
For the Java version: Requires a Java Virtual Machine (JVM) with javax.sound (Java 1.3, for example)
License and Distribution:
LMUSE is a free program without any guarantees. However,
please link to this page rather than redistribute LMUSe from
somewhere else. To redistribute please contact me at davidsharp@rcn.com, and
promise that your redistribution is for the purpose of glorifying
The GaLactic IndustriaL StrutGeAr.
Download the Java version of LMUSe 06/22/01 (approximately 300 kB)
Download LMUSe (DOS) v0.7b, 12/24/98 (approximately 650 kbytes). Latest changes
Here is a purely command line version of
LMUSe (12/03/98, 80k). (MSDOS, gcc) It takes the name of an L-system file
and, optionally, a map file name as command line
parameters and dumps a midi file at the end. (No graphics or
sound output). If you are interested in modifying, extending, or
porting LMUSe, you should probably start with this. It is also
almost sure to run on any 386+ PC. But if you get the command
line version, I recommend you to also download one of the 'GUI'
versions above, because the command line package doesn't contain
any examples and the documentation is less complete.
More Examples:
All MIDI file examples on this page are straight from LMUSe. That
is, no editing was done to prettify them or to get them to make
sense (not necessarily true for outside links). The links to '.LS',
'.LM', and '.L' files show what transformation rules were used.
The pictures are examples of LMUSe's rather sad drawing abilities.
L.mid L2.mid L5.mid L.l (adapted from CJ van der Mark) |
Alfonsec.mid alfonsec.l |
BoP08a.mid BoP08a2.mid BoP08a3.mid bop08a.ls (adapted from bop08.ls, LJ Lapre) |
Bush.mid bush.l (adapted from bush.l, Adrian Mariano) |
Circular.mid Circula2.mid Circula3.mid circular.l |
||||
Passie.mid Passie.ls (adapted from C.J.van der Mark) |
Ex1.mid Ex1b.mid ex1b.lm |
Lsys01.mid lsys01.ls (LJ Lapre) |
Lsys04a.mid lsys04a.ls (adapted from lsys04.ls by LJ Lapre) |
Lsys08.mid lsys08.ls (adapted from LJ Lapre) |
||||
|
A couple of amazing (and long!) pieces by Viejo Vilva are here
? 1001001 ?
I would like to show more LMUSe examples. Please send to davidsharp@rcn.com. If possible, include a MIDI file together with a rules file (.l, .ls, .lm), and other relevant information, or just a URL to link to.
Download the Java version of LMUSe 01/05/01 (approximately 300 kB)
The LMUSe Readme file (DOS version)
The LMUSe Documentation
(DOS version)
(The Readme, Documentation, and this page are included in the
LMUSe package).
Download LMUSe v0.7b (DOS version) (approximately 650 kbytes) Latest changes
Download DOS command line version.
Feedback
comments, questions, suggestions, etc, whatever: davidsharp@rcn.com
C van der Mark's excellent tutorial
for LParser.
Fractal
Music Software
CALResCo: The
Complexity & Artificial Life Research Concept for
Self-Organizing Systems has an astounding collection of
complexity, artificial life, and fractal type resources.
A list of L-systems
software for various OS's (this link often doesn't
work)
The Spanky Fractal Database
has loads of fractal related materials, including many
2-d L-system rules for Fractint
Guenter Nagler's MIDI
utilities.
Credits
Special thanks to:
D J
Delorie et al for DJGPP v2
DJGPP web site
Shawn Hargreaves for Allegro v3.0
The game programming library
shawn@talula.demon.co.uk
http://www.talula.demon.co.uk/
Laurens Lapre for LParser.
ljlapre@xs4all.nl
http://www.xs4all.nl/~ljlapre/
Tim Thompson and Michael
Czeiszperger for the midi file in/out routines in midifile.c
Tim Thompson page
visits since 8/29/98