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.

The entire source code with some toy example and applications are available in the ReactiveML distribution (examples/reactive_asco directory). 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.
  • lib/rising_sun.rml: example of live coding (see the video demo).

These applications communicate with the listening machine of Antescofo and the audio environment through UDP messages. A stand-alone MacOS application that play both roles is available:

Toy examples

You can try the sequencer with several toy examples included in the distribution:

  • 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