JACQUES SODDELL

sound art | video art      

performance | installation

sound design  




home bio projects reviews & articles sounds & films fungal music cajid media undue noise possible musics microbiologist contact

fungal music - jacques & fran soddell

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


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 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.

    M41 harp MIDI

    M41 harp mp3

    M41 lazy mp3

    M41 slo mp3

    M41 ra15 mp3 (used in Mucorales)


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.

    M41both MIDI

Mucor images

run 1 generation 100



















run 2 generation 100


















run 2 generation 250

























L-system for Mucor M41

/* 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)