Skip to content

v0.2.6_beta

Choose a tag to compare

@robcanning robcanning released this 02 Nov 19:06
· 334 commits to main since this release

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.