Skip to content

Releases: robcanning/oscilla

v0.4.6_beta

Choose a tag to compare

@robcanning robcanning released this 02 Feb 16:53

Oscilla v0.4.6_beta – marker, annotations, control structures, improved entry point load splash etc

Full Changelog: 0.4.3_beta...v0.4.6_beta

v0.4.3_beta

Choose a tag to compare

@robcanning robcanning released this 26 Jan 01:53
Oscilla 0.4.3_beta

v0.4.2_beta

Choose a tag to compare

@robcanning robcanning released this 19 Jan 12:16

Oscilla v0.4.2_beta

This release introduces a fully packaged, headless Oscilla server, along with documentation and tooling improvements for composers and performers.

Highlights

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

Integrated help system
Built-in documentation accessible from the running server, covering cues, animation namespaces, and usage.

Build & distribution system
Cross-platform packaging workflow for producing release binaries and distributing them via GitHub Releases.

Inkscape plugin (initial)
Early support for an Inkscape-based workflow, streamlining score preparation and export for Oscilla projects.

Usage

Download the binary for your platform from this release

Run it (on Linux/macOS you may need to make it executable)

Open http://localhost:8001 in your browser

Oscilla v0.2.9-beta

Choose a tag to compare

@robcanning robcanning released this 17 Jan 00:10

This beta release consolidates recent development around sound cues, synchronisation, UX, and documentation

Audio & Synthesis

Added synth() cue: lightweight, cue-scoped Web Audio synthesis for reference tones, drones, chords, and simple patterned textures

Support for envelopes, filters, delay, reverb, glide, panning, and deterministic parameter sequencing

Pattern support (Pseq, Prand, Pshuf) across multiple synth parameters

Chord support via frequency arrays

Added synthStop() for explicit release control

Extended audio() cue options (looping, fades, toggling, UID control)

OSC & External Control

Expanded osc() and oscCtrl() cue capabilities

Improved OSC mirroring from synth() for hybrid internal/external sound setups

More predictable parameter mapping for SuperCollider / Pd / Max integration

Synchronisation & Transport

Stabilised multi-client synchronisation across different screen sizes

Improved handling of speed changes and ramps without playhead jumps

Clearer separation between timebase, playhead position, and visual layout

More robust recovery for reconnecting or late-joining clients

Animation & Visual Cues

Continued refinement of scale, rotation, and object-to-path animation behaviour

Improved nesting and interaction between animation namespaces

Better determinism for duration-based and step-based animations

UX & Application Flow

Introduced a non-blocking project launcher (splash as floating panel rather than full-screen gate)

Faster perceived startup: app loads immediately, launcher can be dismissed or reopened

Improved workflow for frequent rehearsals and project switching

Cleaner in-score help presentation for performers

Documentation & Help System

New structured documentation system hosted online

Comprehensive cue reference organised by cue taxonomy

Compact printable cheatsheet with dense one-line examples

In-score help text rewritten for clarity and space efficiency

Clearer authoring workflow documentation (Inkscape → browser)

v0.2.6_beta

Choose a tag to compare

@robcanning robcanning released this 02 Nov 19:06

This release stabilizes cross-device synchronized scrolling for Oscilla.

Highlights

  • Canonical visual scaling across all devices (portrait/landscape/responsive)
  • GPU-based scrollStage transform replaces scrollLeft syncing (no drift)
  • Smooth freewheeling playback on all synced clients
  • Rehearsal jumps now broadcast absolute world positions
  • Removed legacy scroll-padding and scrollLeft-based correction logic

Core Concepts

  • All clients share the same scoreWidth (world space)
  • First client sets canonicalRenderedWidth
  • canonicalScale = canonicalRenderedWidth / scoreWidth
  • Scroll alignment uses CSS transform, not container scroll

Result
Every client sees the same part of the score at the same time,
independent of display size or orientation — with smooth animation.

v0.2.1_beta

Choose a tag to compare

@robcanning robcanning released this 20 Oct 13:52
cue:fade — added OSC + UID + hold/delay support, improved parser, and…

v0.1.1-alpha

Choose a tag to compare

@robcanning robcanning released this 03 Sep 09:31

v0.1.1-alpha - there be dragons