music of the mycelium of Mucor
music generated by L-system models based on measurement of
experimental data of the growth of strain M41 of the filamentous fungus Mucor

[home] [what] [mapping] [software] [bushes] [microbes] [music] [credits]

Collecting experimental data
The fungus Mucor M41 was grown on plates of malt extract agar and its growth was photographed when viewed under a microscope every 15 minutes. The growing filaments were then measured (lengths and branching angles) at each time interval using an image analysis system.

Creating MIDI files
Fran wrote a parametric L-system to represent this growth (below). A MIDI file was then produced from this. The piece Mucorales uses this Mucor MIDI sequence. Since this parametric L-system is also stochastic, each run can produce a different image and MIDI file (illustrated below).

Mucor images
(click on image for larger, more accurate, image)

 

run 1 generation 100

run 2 generation 100

run 2 generation 250

Mucor sounds

A number of files are presented, a MIDI file using general MIDI harp as the default), and a recording of XG harp, as well as 3 recordings using different cs1x performances - producing quite different sounds from the same MIDI file.

Two runs of the L-system produced different MIDI files because the L-system was stochastic. In this example we present two runs played simultaneously to show the difference.


L-system
/* L system set up to enter observed data of Mucor M41. Adapted for both lsys and Lsys2midi Fran Soddell 03/02/00 */

#define maxgen 200
#define step 0.5
#define maxLength 4
START : H(1,1,1,0)
p1:A(x,b,c,y)
->F(step*x) BC H(1,1,1,0)

p2:B(x,b,c,y)
->F(step*x) B H(1,1,1,0)

p3:C(x,b,c,y)
->F(step*x) C H(1,1,1,0)

p4:D(x,b,c,y):x=maxLength
->F(step*x) H(1,b+1,c+1,0)

p5:D(x,b,c,y)
->H(x+1,b+1,c+1,0)

p6:H(x,b,c,y):c=1
->(0.33) Y(x,b,c,1)
->(0.67) Y(x,b,c,0)

p7:H(x,b,c,y):c=2
->(0.52239) Y(x,b,c,1)
->(0.47761) Y(x,b,c,0)

p8:H(x,b,c,y):c=3
->(0.40625) Y(x,b,c,1)
->(0.59375) Y(x,b,c,0)

p9:H(x,b,c,y):c=4
->(0.68421) Y(x,b,c,1)
->(0.31579) Y(x,b,c,0)

p10:H(x,b,c,y):c=5
->(0.5) Y(x,b,c,1)
->(0.5) Y(x,b,c,0)

p11:H(x,b,c,y):c=6
->(0.66667) Y(x,b,c,1)
->(0.33333) Y(x,b,c,0)

p12:H(x,b,c,y):c=7
->Y(x,b,c,1)

p13:Y(x,b,c,y):b=1&y=1
->(0.07407) A(x,b,c,y)
->(0.92593) C(x,b,c,y)

p14:Y(x,b,c,y):b=1
->(0.07407) B(x,b,c,y)
->(0.92593) D(x,b,c,y)

p14:Y(x,b,c,y):b=2&y=1
->(0.04) A(x,b,c,y)
->(0.96) C(x,b,c,y)

p15:Y(x,b,c,y):b=2
->(0.04) B(x,b,c,y)
->(0.96) D(x,b,c,y)

p16:Y(x,b,c,y):b=3&y=1
->(0.16667) A(x,b,c,y)
->(0.83333) C(x,b,c,y)

p17:Y(x,b,c,y):b=3
->(0.16667) B(x,b,c,y)
->(0.83333) D(x,b,c,y)

p18:Y(x,b,c,y):b=4&y=1
->(0.15) A(x,b,c,y)
->(0.85) C(x,b,c,y)

p19:Y(x,b,c,y):b=4
->(0.15) B(x,b,c,y)
->(0.85) D(x,b,c,y)

p20:Y(x,b,c,y):b=5&y=1
->(0.35) A(x,b,c,y)
->(0.65) C(x,b,c,y)

p21:Y(x,b,c,y):b=5
->(0.35) B(x,b,c,y)
->(0.65) D(x,b,c,y)

p22:Y(x,b,c,y):b=9&y=1
->(0.09091) A(x,b,c,y)
->(0.90909) C(x,b,c,y)

p23:Y(x,b,c,y):b=9
->(0.09091) B(x,b,c,y)
->(0.90909) D(x,b,c,y)

p24:Y(x,b,c,y):b=16&y=1
->(0.1) A(x,b,c,y)
->(0.9) C(x,b,c,y)

p25:Y(x,b,c,y):b=16
->(0.01) B(x,b,c,y)
->(0.9) D(x,b,c,y)

p26:Y(x,b,c,y):b=17&y=1
->(0.22222) A(x,b,c,y)
->(0.77778) C(x,b,c,y)

p27:Y(x,b,c,y):b=17
->(0.22222) B(x,b,c,y)
->(0.77778) D(x,b,c,y)

p28:Y(x,b,c,y):b=20&y=1
->(0.14286) A(x,b,c,y)
->(0.85714) C(x,b,c,y)

p29:Y(x,b,c,y):b=20
->(0.14286) B(x,b,c,y)
->(0.85714) D(x,b,c,y)

p30:Y(x,b,c,y):b=22&y=1
->(0.16667) A(x,b,c,y)
->(0.83333) C(x,b,c,y)

p31:Y(x,b,c,y):b=22
->(0.16667) B(x,b,c,y)
->(0.83333) D(x,b,c,y)

p32:Y(x,b,c,y):b=23&y=1
->(0.2) A(x,b,c,y)
->(0.8) C(x,b,c,y)

p33:Y(x,b,c,y):b=23
->(0.2) B(x,b,c,y)
->(0.8) D(x,b,c,y)

p34:Y(x,b,c,y):b=24&y=1
->(0.25) A(x,b,c,y)
->(0.75) C(x,b,c,y)

p35:Y(x,b,c,y):b=24
->(0.25) B(x,b,c,y)
->(0.75) D(x,b,c,y)

p36:Y(x,b,c,y):b=28&y=1
->(0.25) A(x,b,c,y)
->(0.75) C(x,b,c,y)

p37:Y(x,b,c,y):b=28
->(0.33333) B(x,b,c,y)
->(0.66667) D(x,b,c,y)

p38:Y(x,b,c,y):b=60&y=1
->A(x,b,c,y)

p39:Y(x,b,c,y):b=60
->B(x,b,c,y) p40:Y(x,b,c,y):y=1
->C(x,b,c,y)

p41:Y(x,b,c,y)
->D(x,b,c,y)

/* observed branching angles and frequencies */
p24:B
->(0.01851)[+(70)H(1,1,1,0)]

->(0.01851)[-(70)H(1,1,1,0)]
->(0.05556)[+(85)H(1,1,1,0)]
->(0.05556)[-(85)H(1,1,1,0)]
->(0.14815)[+(90)H(1,1,1,0)]
->(0.14815)[-(90)H(1,1,1,0)]
->(0.07408)[+(95)H(1,1,1,0)]
->(0.07408)[-(95)H(1,1,1,0)]
->(0.11111)[+(100)H(1,1,1,0)]
->(0.11111)[-(100)H(1,1,1,0)]
->(0.03704)[+(110)H(1,1,1,0)]
->(0.03704)[-(110)H(1,1,1,0)]
->(0.01851)[+(115)H(1,1,1,0)]
->(0.01851)[-(115)H(1,1,1,0)]
->(0.03704)[+(120)H(1,1,1,0)]
->(0.03704)[-(120)H(1,1,1,0)]
/* observed angles of changes of direction and frequencies */
p25:C ->(0.015)+(5)
->(0.015)-(5)
->(0.08)+(10)
->(0.08)-(10)
->(0.04)+(15)
->(0.04)-(15)
->(0.095)+(20)
->(0.095)-(20)
->(0.065)+(25)
->(0.065)-(25)
->(0.055)+(30)
->(0.055)-(30)
->(0.075)+(35)
->(0.075)-(35)
->(0.015)+(40)
->(0.015)-(40)
->(0.015)+(45)
->(0.015)-(45)
->(0.04)+(50)
->(0.04)-(50)
->(0.005)+(60)
->(0.005)-(60)