Oscilla Score

A browser-based framework for creating, performing, and sharing animated, cue-driven graphic scores.

Scores are SVG files, drawn in Inkscape or any SVG editor. Behaviour is written as cues on the elements themselves (in their ids or data-oscilla attributes) and executed in the browser: animation, path following, playhead-driven timing, audio, video and synthesis, OSC output. A Node.js server serves the score and keeps every connected device synchronised over WebSockets.


What Kind of System Is Oscilla?

Oscilla is a modular score execution platform combining:

It is designed for composers, improvisers, and performers working with hybrid notation practices.


Download

Current version: 0.9.0 — from source; the packaged apps below are 0.8.13, the last to be built

Oscilla Live, the live-coding application on the same engine, runs in the browser without installation: oscilla.cc/live.

From source — 0.9.0

With Node.js 18 or newer and Git:

git clone https://git.kompot.si/rob/oscilla.git
cd oscilla
git checkout v0.9.0
npm install
npm run electron        # the app, with its server console
npm start               # or the server alone: open http://localhost:8001

Or take the 0.9.0 source archive. The installation guide has the details for each system.

Application — 0.8.13

The recommended way to run Oscilla. A double-clickable app with a small server control panel: one click opens the score, and other people on the same network join by scanning a QR code or typing the address shown.

macOS macOS 12 or newer — Intel, and Apple Silicon via Rosetta macOS — older systems macOS 11 Big Sur only — use this if the download above will not open Windows Windows 10 or newer — x64 Linux — Debian / Ubuntu .deb — x86_64, adds Oscilla to the applications menu Linux — other distributions AppImage — x86_64, needs libfuse2

First run. These apps are not code-signed, so each system asks once:

Server only — no window — 0.8.13

For a machine with no screen, for running several instances at once, or for keeping Oscilla up as a background service. This binary has no interface of its own: it starts the server and prints an address to open in a browser on any device. It takes command-line flags, so several can run side by side on different ports.

Linux server x64 — no desktop needed
chmod +x oscilla-0.8.13-linux-x64
./oscilla-0.8.13-linux-x64 --port=8010 --osc-in=57131 --osc-out=57130

It carries the same demo scores as the applications. On macOS and Windows use the application above — it contains the very same server, just with a window attached.


Get Started


What Can You Do With Oscilla?

Animated graphic scores
Draw the notation in Inkscape and attach cues to its elements to animate rotation, scale, path following and visibility over time.

Ensemble synchronisation
A local server synchronises the score across performers' devices. Fixed, open and hybrid forms are supported: scrolling, pages, and map mode's stations and routes.

Control of electronics
Paths, shapes and points act as trajectories, timelines or control curves, sent over OSC to SuperCollider, Pd, Max or other software.

Composed improvisation
Cues can branch, repeat, pause and trigger other cues.


Academic Reference

R. Canning, Oscilla: The Score as Performable Interface, Proceedings of the International Conference on New Interfaces for Musical Expression (NIME), London, 2026. doi:10.5281/zenodo.20784238

R. Canning, Scores That Run: Graphic Notation with Embedded Performance Semantics, Proceedings of the International Computer Music Conference (ICMC), Hamburg, 2026.

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. PDF

Earlier work these systems grew out of:

R. Canning, Interactive Parallax Scrolling Score Interface for Composed Networked Improvisation, Proceedings of the International Conference on New Interfaces for Musical Expression (NIME), Goldsmiths, University of London, 2014. PDF

R. Canning, Real-Time Web Technologies in the Networked Performance Environment, Proceedings of the International Computer Music Conference (ICMC), Ljubljana, 2012. Archive

R. Canning, The M2 Compositions: A Technical Overview of a Modular Work Flow Towards the Creation of a Video Score, Proceedings of the International Computer Music Conference (ICMC), Huddersfield, 2011. Archive


Workshops and Residencies

Rizodencies 2026: Scores — 1–28 September 2026, Zavod Rizoma, Čermožiše (Haloze), Slovenia. A month-long residency mentoring four sound artists, composers and improvisers working intensively with Oscilla, closing with a public concert in Čermožiše. A recording and the scores will be published — details to be announced. Funded by Culture Moves Europe (Goethe-Institut / European Union).

Oscilla — Workshop on Animated Graphic Scores — 8–10 June 2026, Stara mestna elektrarna, Ljubljana. A three-day workshop organised by Emanat.

Oscilla — Workshop on Animated Graphic Audio Scores — 28–29 May 2026, Radiona, Zagreb. Two days, at the midpoint of an artist residency at Radiona running from the last week of May into early June 2026.

Evaluating Oscilla as a Performable Sound Score System — workshop at TENOR 2026, 21 May 2026, Austrian Academy of Sciences (ÖAW), Alte Postsparkasse, Vienna.

Executable Scores: Embedded Cue Semantics and Animated SVG Notation with Oscilla — workshop at ICMC 2026, 14 May 2026, Hamburg University of Technology.


Open Source

Oscilla is free and open source software, hosted by the community at kompot.si — the mailing list and licence are on the front page.

Developed with assistance from Anthropic Claude Opus 4.6