Generative Grammar is a javascript project by Lee Zhi Xin and Rose Marie Tan, under the supervision of Associate Professor Martin Henz and Srikumar Karaikudi Subramaniam, in collaboration with Yang Zhixing and Yang Mansheng. Visit their site here.

The Idea

Musical compositions can often be expressed in a structured manner, whether it be musical form or rhythmic patterns. With this basic idea, complex compositions can be derived from a certain set of musical rules. In fact, multiple musical compositions can be derived from a single set of rules, leading to the ability to create musical improvisations as well.

The Bol Processor 2 (BP2) was developed based on this concept, using a compositional grammar (Polymetric Expressions) for music composition. Originally developed by Bernard Bel, it is currently available for the Mac OS X and Mac OS 7-9, with its last update in January 2010. More information about Bol Processor 2 and Polymetric Expressions can be found here.

BP2's process of generating musical compositions can be broken into 2 sub-processes - firstly, generating a language from a user-defined grammar, and secondly, translating strings in this generated language into musical output. The connection between the 2 sub-processes is what is called Polymetric Expressions - the first process produces strings in the form of Polymetric Expressions, and the second reads Polymetric Expressions and converts them to musical output using a sound library.

We Set Out

This project on Generative Grammar was initiated by Dr. Martin Henz and Srikumar Karaikudi Subramanian, one of the developers of BP2, as one of the project offerings for the CS1010R Programming Methodology class in the National University of Singapore School of Computing. Generative Grammar is being implemented in collaboration with another project on Polymetric Expressions, with the aim of using Javascript and HTML to build a web-based application with the functionalites of BP2.

The development process Take me back to the demo!