AntesCollider¶
AntesCollider is an integrated environment designed by José Miguel Fernández for mixed music, combining the capabilities of the Antescofo score following system and the SuperCollider real-time audio synthesis environment.
The main goal of AntesCollider is to provide a centralized executable score that manages complex timelines, synchronization strategies with human performers, with sophisticated audio synthesis.
The environment uses the OSC (Open Sound Control) protocol to allow Antescofo to communicate directly with SuperCollider's scsynth audio server, bypassing sclang the usual client.
The use of Antescofo instead of sclang:
-
complements the audio capabilities of SuperCollider with the musical capabilities of Antescofo (relative time, score following, polyphonic actors, reactive programming, synchronization strategies, polytemporal score, etc.);
-
enables composers to write complex electronic musical processes and dynamically create and destroy audio chains on the fly;
-
makes possible to harness transparently several scsynth server;
-
and thus optimize CPU efficiency, by freeing no-more-needed audio chains and using load balancing strategy across multiple scsynth servers to maximize performance.
You will find more informations:
-
The article AntesCollider: Control and Signal Processing in the Same Score is a general presentation of the systems and its motivations.
-
The article Spatial Granular Synthesis With Ambitools And Supercollider and its presentation describe an application where Faust is used in SuperCollider to implement ambisonic decoders.
-
The PhD work of José Miguel Fernández in French.
A quick description¶
SuperCollider is fundamentally divided into two components:
- The Client (sclang): This component uses an object-oriented and functional language. It typically translates high-level code into OSC messages sent to the server.
- The Server (scsynth): This component processes audio in real-time through an ordered tree of unit generators (UGens), grouped statically into higher-level units called synths.
AntesCollider’s Role: AntesColliders presents itself as a library in Antescofo used to interact with scsynth. It does not use the sclang client for audio routing. Instead, it sends OSC messages directly to one or several scsynth servers
The AntesCollider API manages the audio graph in a hierarchical, tree-like structure, using the paradigm of tracks. This organization allows for flexible control over synthesis and processing. This structure consists of four layers, each corresponding to specific scsynth groups:
-
default group: The root group that contains all other groups and audio processes.
-
mix_group: A group that encapsulates and eventually mixes several tracks. Mix groups can be configured for standard channels or Higher Order Ambisonics (HOA) outputs.
-
track: A group that contains all modules. Modules are stacked within a track.
-
module: The real-time audio processing unit for synthesis or treatments, corresponding to a SuperCollider synth.
AntesCollider utilizes the Antescofo actor system (autonomous objects encapsulating state and providing concurrent interactions) to manage these audio components dynamically
AntesCollider relies on Antescofo's built-in OSC communication capabilities. Bidirectional communication is managed by the osc_client declaration in Antescofo. By using this actor-based API and direct OSC communication, AntesCollider enables composers to write complex electronic musical processes and dynamically create and destroy audio chains "on the fly," ensuring efficient resource allocation on the scsynth server
A typical application involves:
-
Launching the scsynth server(s) (e.g.,
@system("scsynth -u 57110"))
. -
Opening an OSC channel in client mode using osc_client (e.g.,
osc_client scServer localhost:57110 * ::Recv
). -
Initiating the connection by sending the '/notify' command (e.g.,
scServer "/notify" 1
), after which the server will respond with '/done /notify' -
sending scsynth commands to create, enable, disable and destroy dynamically audio chains.
See the installation procedure and the examples on the AntesCollider web site