Structure of an Antescofo Score

An Antescofo score is a text file that is used for real-time score following (detecting the position and tempo of live musicians in a given score) and triggering electronics as written by the artists.

Antescofo is thus used for computer arts involving live interaction and synchronisation between human and computerised actions.

An Antescofo score can be edited by any text editor. The users can find many syntax highlights on our Antescofo ForumUser. The package for the Sublime editor is particularly usefull, as coherence is preserved in real-time between the score loaded in Max and the score edited by Sublime.

There is also a dedicated GUI, AscoGraph, that can be used to edit an Antescofo score and to interact with a running Antescofo program. In this video, for example, we can see Antescofo playing with a musician and controlling both the electronic elements and the spatialization. The musician's score (in a piano roll) and the electronic actions are both visible in the AscoGraph window.

An interweaving of musical events and electronic actions

An Antescofo score describes both the human actions to be recognized and the machine's reactions to environmental input. A score thus has two main elements:

The figure below shows a simple example from the Composer Tutorial on Pierre Boulez’ “Anthèmes 2” (1997) for violin and live electronics as seen in Ascograph (open the picture in a new tab for a larger view).

Antescofo Score Excerpt showing basic events and actions

The left window shows a visual representation of Events and Actions, whereas the right segment shows the raw text score. Events in the score describe expected notes, trills and grace notes from the solo Violin, and Actions specify messages to be sent upon recognition of each event. In this example, we showcase actions for four real-time pitch shifter (or harmoniser), whose general volume is controlled by the hr-out-db parameter, and each shifter parameter separately controlled by hr1-p to hr4-p. The values for pitch shifters are in pitch-scale factor. Their corresponding musical value is described in the text score as comments (any text following a semi-colon ‘;’ is ignored in the score).

This score shows basic use of actions and events. Red text in the text-editor correspond to reserved keyword for Events. For details regarding available events and their corresponding syntax, see section Event. In this example, actions are basic message-passing to receivers in Max or Pd environments but with OSC, Antescofo can interact with many other softwares like CSound, Supercollider... Since they are isolated and discrete actions, we refer to them as Atomic Actions. As will be shown later, actions in Antescofo can use delays expressed in various time formats, and further include dynamic (i.e. real-time evaluated) expressions, data-structures and more. Details on action structures are discussed in section Actions.

The next figure shows a slightly more complex score corresponding to the beginning of “Tesla ou l'effet d'étrangeté” (2014) by composer Julia Blondeau for viola and live electronics as seen in Ascograph. The graphical representation on the left is a visual interpretation of the text score on the right. For easier viewing, messages are represented here by white circles (AscoGraph option).

The beginning of *Tesla* (2014) by Julia Blondeau for Viola and Live electronics in *AscoGraph*

In the previous screenshot, the score for human musician contains many types of events (not all visible in text) with a mixture of discrete and continuous compound actions as written by the composer. At the moment you have to know that in Antescofo it exists 5 kinds of events :

Tesla makes use of Compound Actions which consist of parallel groupings of Atomic Actions, as well as continuous actions introduced by keyword Curve. These elements correspond to different electronic actions. We can therefore compose the electronic part in parallel with the instrument part, together in an "augmented score". Effects, synthesis, spatialization and others can be controlled by Antescofo. Functions, Processes, Actors (objects) and Macros can be used to abstract and reuse these controls.

We will see that with Antescofo, we can compose with many differents kind of time. Sequential time for the atomic actions, continuous time for curves, cyclic time for loop or "composed time" with processus that will see in due course.

The file structure of an Antescofo augmented score

A textual score, or program, is written in a single file and loaded from there. The file itself can optionally include pointers to other score files, using the @insert feature:

@insert macro.asco.txt
@insert "file name with white space must be quoted"

The keyword can be capitalized: @INSERT as any other predefined @-identifier (i.e., identifiers that start with a @ character). An included file may includes other files. The @insert command is often used to store definitions and initialisation of the main Antescofo score. It will automatically create additional tabs in Ascograph text editor.

The @insert_once command is similar to @insert except that the file is included only once in the current score, when the directive is encountered the first time. The behavior makes possible to include a library of primitives in a set of files without the burden of taking care of their dependencies.

For the rest of this chapter, we will briefly introduce main elements in the language. Details will be left for dedicated chapters in the reference manual.