Interactive graphic notation authored as SVG in Inkscape, rendered in the browser with cue-driven animation and real-time interactivity; it supports networked performance, time-based cues, and OSC integration for connecting scores to sound, media, and external systems.
  • JavaScript 50.5%
  • HTML 43%
  • CSS 4.3%
  • Python 0.7%
  • Shell 0.6%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-09 15:50:37 +02:00
build feat: server console GUI — log window, git update button, launchers 2026-09-08 18:04:10 +02:00
certs Make start-ssl.sh path-independent, document local cert setup 2026-04-30 21:27:45 +02:00
docs closing commits to github 2026-02-16 12:08:03 +01:00
docs_src fix to eleventy doc build config 2026-02-02 09:54:54 +01:00
electron feat: compact server console 2026-09-08 18:26:19 +02:00
public demo-video: fullscreen fit:cover example (fill screen, no letterbox) 2026-09-09 15:50:37 +02:00
scripts feat: extract UI icons to public/assets/icons/, add icon normalizer 2026-09-09 14:08:57 +02:00
tools/oscilla-inkscape-extension added docs update for inkscape extension and updates to the extension 2026-01-20 08:43:37 +01:00
.gitignore demo-propagate: propagate() demo project 2026-09-09 13:56:19 +02:00
ecosystem.config.cjs add pm2 ecosystem config with HTTPS for whatyouheard and polygonfield 2026-03-19 09:27:43 +01:00
LICENSE Add AGPLv3 license 2026-05-10 22:57:20 +02:00
package-lock.json feat: QR codes for client URLs in the host console 2026-09-08 18:21:23 +02:00
package.json feat: QR codes for client URLs in the host console 2026-09-08 18:21:23 +02:00
README.md git hub references removed from readme 2026-02-16 12:47:48 +01:00
server.js fix: user-projects static mount now precedes the app-tree static 2026-09-09 15:25:26 +02:00
serverUtils.js feat: automatic score versioning + Score Versions dialog 2026-09-08 18:34:30 +02:00
start-ssl.sh Make start-ssl.sh path-independent, document local cert setup 2026-04-30 21:27:45 +02:00
start-ssl_8002.sh chore: add misc project files — docs, scripts, score data 2026-05-29 09:51:16 +02:00
vendor-dependencies.sh Fix drag position persistence - use parent CTM for scale extraction 2026-04-02 01:26:53 +02:00
VERSION feat: multi-element select + propagate wrap in DSL inspector 2026-06-09 14:46:50 +02:00

Oscilla

Oscilla is a browser-based framework for animated, cue-driven graphic scores, built with SVG, JavaScript, WebSockets, and OSC.

It allows composers and performers to create scores that move, react, synchronize across devices, and optionally control external sound systems — all using open-web tools.


Quick Start

Standalone builds available for Linux, macOS (Intel & Apple Silicon), and Windows.
No Node.js or npm required — download and run.

Downloads:
https://git.kompot.si/rob/oscilla/releases

Download Oscilla for your platform and launch the application.


Alternative: Run from source (developer workflow)

If you prefer to run Oscilla from source or contribute to development:

git clone https://git.kompot.si/rob/oscilla.git
cd oscilla
npm install
npm start

Then open:

http://localhost:8001

You can load a demo score from the splash screen and start exploring.


Inkscape Extension

Oscilla includes an optional Inkscape extension for authoring graphic scores and applying Oscilla namespaces directly within Inkscape.

More information about installing and using the Inkscape extension is available in the documentation:

https://oscilla.cc/docs/


Documentation

https://oscilla.cc/docs/


What Oscilla is for

  • Animated and spatial graphic notation
  • Networked performances
  • Hybrid fixed-form and open-form works
  • Cue-driven timing, navigation, and media
  • Optional OSC integration

What Oscilla is NOT

  • a DAW
  • a notation engraver (Sibelius / MuseScore)
  • a collaborative score editor

Requirements

  • Standalone builds: none beyond a modern operating system
  • From source: Node.js (LTS recommended) and a modern browser
  • Score authoring: Inkscape (recommended)

Optional: OSC-capable audio or media environment.


Project Status

Oscilla is under active development.

Issues and feature requests:
https://git.kompot.si/rob/oscilla/issues


License

See LICENSE.