Clients
Overview
Oscilla is a networked score system. Multiple performers connect to the same server and share a synchronized view of the score, playhead position, and interactive elements. Each connected device is a client.
The client system provides:
- visual identification of connected performers
- per-client colors for markers and annotations
- editable display names
- targeted triggering for shared audio objects
Client Indicators
The client list appears in the top-left corner of the interface. Each connected client is represented by a colored square.
| Visual element | Meaning |
|---|---|
| Colored square | A connected client |
| White border | Your own client (local) |
| Green checkmark | Selected for targeted triggers |
Hover over any indicator to see the client's display name in a tooltip.
Editing Your Identity
Double-click your own client indicator (the one with the white border) to open the client editor:
- Name -- set a display name visible to all performers (e.g., "violin 1", "conductor", "electronics")
- Color -- choose from presets or pick a custom color
Your identity persists across browser sessions. Other performers see your name in tooltips and your color on shared markers and annotations.
Client Colors
Each client is assigned a unique color from a predefined palette. This color is used for:
- The client indicator square
- Markers dropped by that client (by default)
- Attribution of shared annotations
Colors help identify at a glance who created which markers or annotations. You can change your color in the client editor, and individual markers can override their color in the marker editor.
Targeted Audio Triggers
When audio objects are set to shared scope, triggering them normally broadcasts to all connected clients. The client indicator system allows you to target specific clients instead.
Selecting targets
- Click any client indicator to toggle its selection
- Selected clients show a green checkmark overlay
- Multiple clients can be selected simultaneously
- Click a selected client again to deselect
Triggering to targets
With clients selected:
- Single click a shared audio object -- the trigger is sent only to selected clients
- Double click to stop -- the stop command is also sent only to selected clients
- Randomised parameters (file selection, pan, pitch) are computed once and sent to all targets
Clearing selection
Click all selected clients to deselect them, or simply leave them selected for subsequent triggers. When no clients are selected, triggers revert to broadcasting to everyone.
Use cases
- Conductor control -- one performer directs audio cues to specific ensemble members
- Sectional triggers -- send a texture to strings only, or percussion only
- Call and response -- trigger audio on one client, then another
- Spatial distribution -- assign different audio to performers in different locations
Synchronization
Clients automatically synchronize:
- Playhead position and playback state
- Shared markers and annotations
- Shared audio objects and their triggers
- Drawing strokes (when shared)
- Timer states
Each client maintains its own local state for:
- Local markers and annotations
- View position and zoom level
- Part/layer visibility settings
- Preferences
Network Sync Toggle
The network sync toggle in the top bar controls how your client participates in synchronization. Click the toggle to cycle through three states:
| State | Icon | Transport | Triggers | Use case |
|---|---|---|---|---|
| Full Sync | chain link | send + receive | send + receive | Normal ensemble operation |
| Transport Muted | muted speaker | receive only | send + receive | Prevent accidental navigation changes affecting others |
| Disabled | blocked | none | none | Work independently |
Transport Muted mode is useful when:
- You want to follow the ensemble's playhead position
- But don't want your play/pause/seek actions to broadcast to others
- Audio triggers (start/stop shared sounds) still sync normally
This allows a performer to scrub around their own view without disrupting the conductor's timeline, while still participating in shared audio cues.
The sync state persists across browser sessions.
Connection Status
The client list updates in real-time as performers connect and disconnect. When a client disconnects, their indicator disappears from the list, but their shared markers and annotations remain on the score.
Relationship to Other Session Features
The client system integrates with:
- Markers -- new markers inherit your client color by default
- Audio Objects -- targeted triggering via client selection
- Annotations -- shared annotations are attributed to clients
- Drawing -- shared strokes are colored by client
The client identity provides a consistent visual thread across all shared interaction features.
Tip: use ← → or ↑ ↓ to navigate the docs