## Tracks¶

A track refers to all actions that have a label of some form and to the message whose head has some form. A track is defined using a statement:

          @track_def track::T
{
print, "synth.*"
}


refers to all actions that: (1) have a label or a label that matches (i.e. any name that starts with the prefix ) and (2) all Max or PD messages whose receivers satisfy the same constraints and (3) the children of these actions (recursively).

More generally,

• a track definition is a list of tokens separated by a comma;

• a token is either a symbol (an identifier without double-quotes) or a string;

• a symbol refers to labels or receivers equal to this symbol;

• a string denotes a regular expressions1 (without the double quote) used to match a label or a receiver name;

• an action belongs to a track if there is a symbol in the track equal to the label of the action or if there is a regular expression that matches the label;

• in addition, a Max or PD message belongs to the track if the receiver's name fulfills the same constraint;

• in addition, an action nested in a compound action belonging to the track also belongs to the track;

• an action may belong to several tracks (or none);

• there is a maximum of 32 definable tracks.

Tracks can be muted or unmuted:

          antescofo::mute track::T
antescofo::unmute track::T


A string can be also used for the name of the track:

          antescofo::mute "track::T"
antescofo::unmute "track::T"


which means that the track to mute or unmute can be computed dynamically:

          $tracks := ["track::T", "track::Harmo", "track::Synthe", "track::Reverb"] whenever ($track_to_mute == $track_to_mute) { antescofo::mute ($tracks[\$track_to_mute])
}


Tracks are muted/unmuted independently. An action is muted if it belongs to a track that is muted, otherwise it is unmuted. A muted action has the same behavior as an unmuted action except for messages: their arguments are evaluated as usual but the final shipping to Max or PD is inhibited. It is important to note that muting/unmuting a track has no effect on the Antescofo internal computations, only in the sending of messages.

For example, to inhibit the sending of all messages, one can define the track:

          @track_def track::all { ".*" }


and mute it:

          antescofo::mute track::all


1. The syntax used to define the regular expression follows the posix extended syntax as defined in IEEE Std 1003.2, see for instance regular expression on Wikipedia