(counter)visits since 8/29/98 [hogeweg.mid] [lsys02b.mid] [spiral3m.mid] [lsys00b.mid] [cjvdm.mid] [airhorss.mid] [s.mid] [lsys07bm.mid]
LMUSe [beckera.gif]

[Calresco] interprets Lindenmayer L-systems as MIDI files, or MIDI generated sound. L-systems recursively rewrite strings of symbols according to a set of transformation rules. The symbol strings are then, usually, interpreted as a sequence of turtle (a la LOGO) drawing commands. Originally designed by Aristid Lindenmayer and others to model organism development, they are a fascinating tool for generating fractal forms.

In order to interpret the L-system as music, LMUSe maps the turtle's 3-d movement, [connection dialog screen shot]orientation directions (forward, up, and left), its drawing[play screen shot] line length, and thickness into musical pitches, note durations, and volume. Color becomes intrument/timbre. You can build parallel/polyphonic lines using the turtle's state stack. Transformation rules can be stochastic as well as context-sensitive. LMUSe will also mutate the transformation rules so that generating lots of variations is easy.

[tree06p.gif]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. (Production rules from other L-system programs usually require some modifications for them to be parsed correctly by LMUSe).

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

License and Distribution:
LMUSE is a free program without any guarantees. To redistribute with modifications to the program or attendant files, please notify me at dsharp@interport.net, and promise that your redistribution is only for the purpose of glorifying the galactic industrial strutgear.

Download LMUSe v0.7b, 11/22/98 (approximately 680 kbytes). Latest changes

Here is a purely DOS command line version of LMUSe (11/19/98, 80k). 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 extending or porting LMUSe, you should probably start with this. I recommend that you download the 'regular' version above first, and then get the command line version if you want it, because the command line package doesn't contain any examples and the documentation is less complete.

Some Examples:
The 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 or if noted otherwise). The links to '.LS', '.LM', and '.L' files show the transformation rules used. The pictures are examples of LMUSe's rather sad drawing abilities.

L.mid
L2.mid
L5.mid
[L graphic]
L.l
(adapted from CJ van der Mark)
Alfonsec.mid
[alfonsec graphic]

alfonsec.l
BoP08a.mid
BoP08a2.mid
BoP08a3.mid
[bop08a.gif]
bop08a.ls
(adapted from bop08.ls, LJ Lapre)
Bush.mid
[bush.gif]
bush.l
(adapted from bush.l, Adrian Mariano)
Circular.mid Circula2.mid Circula3.mid
circular.l
Passie.mid
[passiem.gif]
Passie.ls
(adapted from C.J.van der Mark)
Ex1.mid
Ex1b.mid
[ex1b.gif]
ex1b.lm
Lsys01.mid
[lsys01.gif]
lsys01.ls
(LJ Lapre)
Lsys04a.mid
[lsys04a.gif]
lsys04a.ls
(adapted from lsys04.ls by LJ Lapre)
Lsys08.mid
[lsys08.gif]
lsys08.ls
(adapted from LJ Lapre)


Cantor dust


cantor.l
dragon.mid generated from dragon.l

2-d dragon curve

[dragon.gif]

twisted dragon curve [dragon2.gif]


Improvising on C J van der Mark's "Airhorse" :
"An oboe lost in the fractals" by David W Solomons

Lj Lapre's "Spider" rules were used to make:
"Spinnenmusik" by David W Solomons


I would like to show more LMUSe examples. Please send to dsharp@interport.net. 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.

[bop.gif]

The LMUSe Readme file

The LMUSe Documentation
(The Readme, Documentation, and this page are included in the LMUSe package).

Download LMUSe v0.7b (approximately 680 kbytes) Latest changes


Download DOS command line version.

Feedback
comments, questions, suggestions, etc, whatever: dsharp@interport.net



Some related links:
C van der Mark's excellent tutorial for LParser.
Fractal Music Software
CALResCo: The Complexity & Artificial Life Research Concept for Self-Organizing Systems. An astounding collection of complexity, artificial life, and fractal type resources.
A list of some L-systems software (unfortunately, this link rarely works)
The Spanky Fractal Database has loads of fractal related materials, including many 2-d L-system rules for Fractint


Credits

Special thanks to:

D J Delorie for DJGPP v2, C compiler
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 `midifile.c'