Willow is a system for algorithmic composition, written in an attempt to describe some of the basic aspects of musical composition by means of grammars and automata (i.e. top-down tree transducers). It consists of a regular tree grammar, a sequence of top-down tree transducers, and a display, all loaded into the Treebag environment. The regular tree grammar generates a rhythmic skeleton, as a tree, to which the tree transducers add an attribute each, e.g. meter, melodic arc, chord progression, etc. The augmented tree is then written, in a deterministic manner, by the display (an algebra of sorts) to a file in mup-format. Output to postscript and midi is done by open source software Mup. [Technical report]


Treebag is a system that allows to generate, transform, and display objects of various types, where generation and transformation is done using tree grammars and tree transducers. The basic principle is that tree grammars produce terms over symbols that are interpreted by appropriate algebras as operations on some domain. Thus, every term is viewed as an expression that denotes one of the objects of interest. These objects can be visualised using appropriate displays. [The Treebag Homepage]

Mup is a shareware program for printing music. It takes an input file containing ordinary (ASCII) text describing music, and produces PostScript output for printing the musical score described by the input. [Arkkra Enterprises]


If you are only interested in trying out the system, the easiest way to get it running is to download the jar-file together with the worksheet. Type

java -jar treebag-willow.jar

and then select willow/worksheet in Treebag's worksheet menu. If, upon loading the worksheet, Treebag throws a java.lang.StackOverflow exception, then this is because there is not enough space on the stack. To overcome this problem, tell java that you need a bigger stack than usual, e.g. type

java -Xss1000000 -jar treebag-willow.jar

where the Xss switch sets the stack size. Thanks caze, for the bug, but also for the fly swatter.


[June 21th 2005] Superflous flat/sharp-signs are no longer written out explicitly in the generated scores.



Technical report [ps] [pdf]


Treebag w. IgnorantTransducer + ScoreDisplay [jar]
Willow worksheet [tar.gz] [zip]
Ignorant td transducer [java]
Score display [java]
Screenshot [ps] [gif]


2005-04-25:1 [ps] [pdf] [mid]
2004-12-20:1 [ps] [pdf] [mid]
2004-12-21:1 [ps] [pdf] [mid]
2004-12-21:2 [ps] [pdf] [mid]
2004-12-21:3 [ps] [pdf] [mid]
2004-12-21:4 [ps] [pdf] [mid]
2004-12-21:5 [ps] [pdf] [mid]
2004-12-21:6 [ps] [pdf] [mid]

Last updated June 21 2005 by Johanna Högberg.