Source Code

The code is divided in several modules (click to see the code):

  • Types: the structure of a score in terms of ML-types.
  • Time: processes to wait and compute duration relative to the tempo.
  • Motor: the core of the interpreter i.e. the translation of the semantics rules.
  • Groups: group treatment functions; slice, split and extract.
  • Input: receive information from the listening machine or simulate it.
  • Output: send messages to Max/MSP.

You can download the entire code with some toy example and applications here. To compile, just type make (clean with make clean or make cleanall). Applications are the following:

  • asco.rml.native: the sequencer (type asco.rml.native --help to display a list of options)
  • piano_phase.rml.native: Steve Reich's Piano Phase with graphical interface
  • frere_jacques.rml.native: a famous French musical round

Toy examples

You can try the sequencer with several toy examples:

  • An example to illustrate the entire syntax of our language (actions, groups, strategies, preemption)
  • Au clair de la lune (French folk song)
  • Greensleeves (English folk song)
  • Russian Hymn
  • Concerto for two violins (J.S. Bach), 3rd mvt
  • Concerto for violin (P. I. Tchaikovsky) 2nd and 3rd mvt

The file reactive_asco.tar.gz also contains:

  • rising_sun.rml: example of live coding (see the lib directory and the video demo)
  • a standalone MacOS application that play the role of Max/MSP for the demos.