Contribution Surface

Overview

The Contribution Surface is a browser‑native layer that coexists with the SVG score in Oscilla. It allows participants to add, modify, and execute material directly within the running score during rehearsal, performance, or installation.

Where the SVG Score Layer defines composed, declarative structures authored offline (e.g. in Inkscape), the Contribution Surface supports live, mutable, and spatially situated contributions authored in the browser. These contributions may be textual, sonic, silent, temporal, or spatial, and can be shared across the network.

The Contribution Surface is not secondary or decorative. It is a fully executable plane that can function as:

No SVG score is required to use the Contribution Surface.


Two Coexisting Layers

SVG Score Layer Contribution Surface
Authored offline Authored live in browser
Fixed, declarative Mutable, negotiable
Embedded in SVG HTML overlay
Cue‑driven Click‑ and playhead‑driven
No file management Direct audio upload
Composer‑centred Role‑agnostic

Both layers may be used together or independently.


Basic Usage

Adding a Contribution

  1. Enable pen mode (✏️ icon or double‑tap the score area)
  2. Click on the score or page overlay
  3. Configure the contribution (text and/or executable behaviour)
  4. Save

Editing

Moving

Contributions are draggable in all modes:


Contribution Types

Text Contributions

Text contributions act as visible instructions, reminders, section labels, or compositional cues.

Typical uses:

Font size and content are editable live.


Audio Contributions (Executable)

Any contribution can be made executable, turning it into a clickable or playhead‑triggered sound event.

Supported audio types:

🔊 Audio (Single File)

Plays a single audio file.

Parameters include:

Use cases:


🎲 Audio Pool (Directory)

Plays files from a directory.

Selection modes:

Use cases:


⚡ Audio Impulse (Continuous)

Starts a continuous, generative playback process using a directory of samples.

Parameters:

Visual state:

Use cases:


Audio‑Only Contributions

A contribution may be configured as audio‑only, with no visible text.

Characteristics:

Typical uses:

Audio‑only contributions behave identically to text‑based ones in terms of execution, playhead triggering, and sharing.


Spatial Trigger Regions (Extent Lines)

Every executable contribution defines a horizontal trigger region using visible extent lines.

Properties:

Extent regions are used by:

Conceptually, a contribution occupies space, not just a point.


Playhead Triggering

Executable contributions may be triggered automatically by the playhead.

Impulse Lifespan Modes

Audio Impulse contributions support three lifespan behaviours:

Gate mode directly couples sound to spatial position in the score.


Audio File Management

Browsing

The audio browser allows navigation of the project’s audio directory:

Paths are always relative to the project’s audio/ directory.


Uploading as Contribution

Audio upload is treated as a contribution mechanism, not a utility.

Conflict Handling

If a file already exists:

Uploading sound material is part of the compositional process and can occur during rehearsal or performance.


Sharing and Networking

Contributions may be local or shared.

Scope Visibility
Local Current client only
Shared All connected clients

When shared:

Audio files themselves must currently exist on all clients. File sharing and bundling are planned.


Example Workflows

Text‑Only Score

A score composed entirely of text contributions:

No SVG notation required.


Live Sample Interface

A grid of audio‑only contributions:

Acts as a distributed instrument.


Performer‑Contributed Material

During rehearsal:

The score grows through contribution.


Roadmap

Planned extensions to the Contribution Surface:


Summary

The Contribution Surface reframes the score as a live, executable surface rather than a fixed document.

It supports contribution, negotiation, and execution in the same space, allowing Oscilla scores to function as:

The surface is where sound, structure, and participation meet.

Tip: use ← → or ↑ ↓ to navigate the docs