Oscilla Documentation

This documentation describes the cue system, animation model, authoring workflow, and internal architecture of Oscilla. All behaviour is authored directly in SVG and executed at runtime in the browser.


New to Oscilla?

If you’re looking for a high-level overview of what Oscilla is for, how it fits into contemporary score practice, and what you can actually accomplish with it, start here:

What is Oscilla?


Getting Started


Cue Reference

Cues are the primary execution units in Oscilla. They control timing, navigation, media playback, interaction, and external communication.

Timing & Navigation

Cue Description
stop() Halt playback
pause() Pause playback
speed() Playback speed control
stopwatch() Time display and control
metronome() Metronome and beat sync
page() Page-based navigation
nav() Navigation and mode control

Interaction & Structure

Cue Description
button() Interactive UI buttons
propagate() Propagate cue state
reuse() Reuse cue definitions

Media & Synthesis

Cue Description
text() Timed and sequenced text
audio() Audio file playback
video() Video playback
synth() In-browser synthesis

OSC & External Control

Cue Description
osc() OSC message output
oscCtrl() OSC routing and control

Animation

Oscilla supports continuous and discrete animation tied directly to score timing.

Function Description
scale() Uniform and non-uniform scaling
rotate() Continuous and stepped rotation
o2p() Object-to-path traversal
traverse() Object traversal across points or paths
color() Color animation
fade() Fade visual or UI elements
ui() UI element animation

Tools


Developer


Further Reading

The design and rationale of Oscilla are described in:

R. Canning, OscillaScore: A Modular Platform for Graphic Notation in Networked Music Performance, Proceedings of the International Conference on Technologies for Music Notation and Representation (TENOR), Beijing, 2025.

Tip: use ← → or ↑ ↓ to navigate the docs