Oscilla is an open-source platform for creating and performing animated, cue-driven graphic scores in the browser. Scores are authored as SVG documents and executed as synchronized, networked performance environments.
Oscilla integrates timing, animation, media control, and OSC output into a single browser-native score engine.
Documentation
The documentation includes:
- Complete cue reference
- Animation and transformation syntax
- Authoring workflow (Inkscape to browser)
- System architecture
- Cheatsheets and examples
Source Code
Oscilla's source code is hosted at git.kompot.si/rob/oscilla.
Core Cue System
Oscilla uses a cue-driven execution model. Cues are embedded directly in SVG IDs and are evaluated in real time during score playback.
Available Cue Types
Timing & Navigation
pause()— pause playbackstop()— halt playbacknav()— navigation and mode controlpage()— page-based score navigationstopwatch()— time display and controlmetronome()— tempo reference
Media & Sound
audio()— audio file playbacksynth()— browser-based synthesisvideo()— video playback
OSC & External Control
osc()— OSC message outputoscCtrl()— OSC routing and control
Animation
scale()— uniform or non-uniform scalingrotate()— continuous or stepped rotationo2p()— object-to-path traversalcolor()— color cycling and sequences
Interaction & Structure
button()— interactive UI elementscontrolXY()— multitouch XY control padspropagate()— propagate cue statereuse()— reuse cue definitionstext()— timed and sequenced textfade()— fade visual or UI elements
Full syntax and parameters: oscilla.cc/docs
References
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.