# Beyond score following...¶

Most people think Antescofo is exclusively used for mixed music and score following. That's partly true, but since the language exists and has been developed, Antescofo is also a great tool for electronic music.

## Antescofo as a sequencer¶

Speaking about time is very easy in Antescofo. AscoGraph and an Antescofo score can be seen like a sequencer, where all the actions are organised in time (if you click on the Play button, Antescofo becomes a sequencer) that you specify in the score.

You can write an electronic score with the beat notation and decide after to change the tempo. In this case you don't have to rewrite all the durations. Antescofo does the translation. This allows you to change the tempo (with BPM) in any place in your score.

As we have shown before, you can also work with different times in a same moment with the @tempo attribute and write complex polyrythms.

With macros you can greatly simplify your score to focus on the musical questions instead of the technical realization.

## Hierarchical scores¶

With the system of GROUP, you can write a hierarchical score where the different voices are denoted by different groups. You can also create tracks (see @track_def) to filter any kind of musical object or focus on a particular voice.

With the action view of AscoGraph you can easily see how the different voices of an electronic polyphony interact with each other.

## Open scores and installations¶

If you see the process and whenever constructions, you will see that these features can be easily used for installations or for open scores. You can use Antescofo without a “classical score”, without NOTES, CHORD... It means that you can program a reactive environment that “hears” sensors, audio descriptors...

If you compose open scores, you can take a look to the @jump keyword that is followed by a comma separated list of simple identifiers referring to the label of an event in the score. This attribute specifies that this event can be followed by several continuations: the next event in the score, as well as the events listed by the @jump. So you can compose a non-linear score with choice points leaved to the performer. You evn can modify during the execution the list of allowed jumps, achieving a kind of “multi-graph” score.

## Beyond Max and Pure Data...¶

We have shown many uses of Antescofo in Max. However, with OSC, you can use Antescofo as controller of any kind of software that supports OSC. For example, SuperCollider and CSound are great Antescofo fellow players ! In the two next examples, Max is a kind of "pipe" between Antescofo, CSound or SuperCollider, IRCAM's Spat and audio descriptors. But Antescofo sends also many messages via OSC without Max.

### A SuperCollider example¶

The figure below shows an environment created by José-Miguel Fernandez for his pieces where you can see 3 different softwares. In the background you can see the AscoGraph interface. At the left front you can see Max using Antescofo and descriptors (who are sended to whenever and process). At the right you can see a SuperCollider interface where processes are generated “on the fly” and displayed on the screen. In this example, Antescofo manages all the control parts and sends the parameters needed for synthesis and effects to SuperCollider. Fernandez uses many chaotic funcions included in Antescofo and several of its data structures (e.g., map and tab).

### A CSound example¶

In the next example, Antescofo is used to send a score to CSound and to generate table for CSound. Here, Antescofo can replace the ".sco" file for CSound or the "score part" of the ".csd" in CSound. All the CSound synthesis is generated in real time and controled by the object antescofo~.

The spatialization is controled by Antescofo too with many curves and process that generate complex trajectory.

### OSC¶

Many people have been using Antescofo message passing strategies as defined above to interact with processes living outside MAX/PD (such as CSound, SuperCollider, etc.). To make their life easier, Antescofo comes with a built-in OSC host. The OSC protocol3 can be used to interact with external processes using the UDP protocol. It can also be used to make two Antescofo objects interact within the same patch. Unlike MAX or PD messages, OSC messages can be sent and received at the level of the Antescofo program. The embedding of OSC in Antescofo is done through 4 primitives.

oscsend name host : port msg_prefix

oscrecv name port msg_prefix $v1 . . .$vn


see the OSC message chapter for more details.