Technical Manual

String Quartet No. 1 — Performance Score Web App

Contents

  1. Overview
  2. Device Requirements
  3. Getting Started — Sessions & Rooms
  4. Score Views — Full Score & Parts
  5. Rehearsal Mode
  6. Touch Gestures
  7. Controls Overlay
  8. Markers
  9. Looping
  10. Speed Control
  11. Synchronization & Independent Mode
  12. Annotations (Apple Pencil)
  13. MiniMap
  14. Performance Mode
  15. Emergency Controls
  16. URL Parameters Reference
  17. Music Performance Instructions

1. Overview

The Performance Score is a web-based application that displays the scrolling graphic score for String Quartet No. 1. All four performers read from the same app, each on their own device. The score scrolls automatically during playback, with animated elements — curves, gravitational conductors, line wedges, and notation fragments — appearing and disappearing in real time.

The app has two operating modes:

2. Device Requirements

The app runs in any modern web browser. Recommended setup for performers:

RequirementRecommendation
DeviceiPad (any recent model) or laptop/tablet with 10"+ screen
BrowserSafari (iPad), Chrome, or Edge. Firefox is supported but Safari/Chrome are preferred for Wake Lock and fullscreen APIs.
OrientationLandscape
NetworkWi-Fi connection to the same network as the server (for synchronized rehearsal/performance). The app also works offline for solo practice.
BatteryFully charged or plugged in for performances. The app will keep the screen awake during performance mode.
Tip: Enable Do Not Disturb on your device before rehearsals and performances to prevent notifications from interrupting the score display.

3. Getting Started — The Landing Page

When you navigate to the app's URL, you arrive at the landing page — a single-page flow that guides you from setup to launching the score.

The Launch Flow

The landing page presents a simple top-to-bottom flow:

  1. Your name — Enter your display name (e.g., "Sarah"). This identifies you to other performers in your room.
  2. Select your instrument — Tap one of four buttons: Violin I, Violin II, Viola, or Cello. This determines which part you see in Parts View.
  3. Pages per screen — Choose 4, 6, or 8 pages visible at once (default: 6).
  4. Rehearsal room (optional) — Create a new room or join an existing one with a 6-character code. Skip this step for solo practice.
  5. Open Score — Launches the score app in rehearsal mode with your selected instrument, pages, and room.

After joining or creating a room, a 🎭 Start Performance button appears below "Open Score." This launches the score directly into Performance Mode (readiness check → countdown → locked playback). The button is only visible when you are in a room — performance mode requires a synchronized session.

Below the launch flow, you can also tap Full Score (all parts) to open the full score without selecting a specific instrument. If you are in a room, the Full Score link automatically includes your room code.

Creating a Room

Tap Create Room. A unique 6-character room code is generated (e.g., HK7W3N). Share this code with your ensemble — each performer enters it on their own device to join the same synchronized session.

Joining a Room

Enter the room code shared by the session creator into the code field and tap Join. You must have your name and instrument selected before joining.

Returning Performers

If you have previously joined a room, the landing page recognizes you on your next visit. A Welcome back banner appears showing your name, instrument, and room code, with a Rejoin button that takes you directly back to the score. Tap Start fresh to clear your session and set up from scratch.

Returning to the Landing Page

From within the score app, open the Controls Overlay and tap the 🏠 Home button to return to the landing page. This button is only available in rehearsal mode — it is hidden during performance mode.

Room Lifecycle

A room is created when the first performer joins and remains active as long as at least one performer is connected. If all performers disconnect, the room persists for a 5-minute grace period — if someone reconnects within that window, the room state (playback position, markers, etc.) is restored. After the grace period, the room is cleaned up.

Documentation & Print Scores

The landing page also provides links to:

4. Score Views — Full Score & Parts

The app offers two views of the score:

Full Score

All four instrument tracks displayed simultaneously, stacked vertically. This is the default view when no track parameter is specified. Each track occupies one quarter of the screen height.

Parts View (Single Track)

A single instrument track expanded to fill the entire screen height, making the notation approximately 4× larger than in full score view. Parts view also supports configurable page density — 4, 6, or 8 pages visible per screen (default: 6).

To switch between views:

When switching views, the app preserves your current position in the score. There is a brief reload (~1–2 seconds) during the transition.

Track Selection (Parts View)

In parts view, use the Track button in the Controls Overlay to cycle through instruments: Vln I → Vln II → Vla → Vc → Vln I. The button label shows the currently selected instrument.

Pages Per Screen (Parts View)

Use the Pages button in the Controls Overlay to cycle through page densities: 4p → 6p → 8p → 4p. More pages shows more of the score at once but with smaller notation.

5. Rehearsal Mode

Rehearsal mode is the default operating mode. It provides full interactivity for practice and group rehearsal: touch gestures for navigation, a controls overlay with playback controls, custom markers, looping, speed adjustment, and annotation support.

When connected to a server with other performers in the same room, playback is synchronized — pressing Play on the leader's device starts playback for all connected performers. Individual performers can detach to navigate independently and re-sync at any time.

6. Touch Gestures

All gestures use finger touch. Apple Pencil input is reserved for annotations and bypasses the gesture system entirely.

GestureZoneAction
TapLeft edge (15%)Previous page (immediate)
TapRight edge (15%)Next page (immediate)
TapCenter top (70%, upper half)Play / Pause
TapCenter bottom (70%, lower half)Toggle Controls Overlay
Double-tapCenter (70%)Reset zoom to 100%
Swipe leftAnywhereNext page
Swipe rightAnywherePrevious page
Swipe downAnywhereAdd marker at current position
Swipe upAnywhereToggle Part ↔ Full Score view
PinchAnywhereZoom in / out
During synced playback: Swiping or tapping the edge to turn pages automatically detaches you to independent mode so your navigation doesn't affect other performers. A brief toast notification confirms: "Auto-detached."

7. Controls Overlay

Tap the center-bottom area of the screen to open the Controls Overlay — a floating panel of buttons for all major actions. The overlay auto-fades after 4 seconds of inactivity. Tap anywhere on the overlay to reset the fade timer.

ButtonAction
▶ Play / ■ StopToggle playback
◀ / ▶Previous / Next page
⊙ 100%Reset zoom to 100%
📄 Part / FullToggle Part ↔ Full Score view
Vln I / Vln II / Vla / VcCycle instrument track (parts view only)
4p / 6p / 8pCycle pages per screen (parts view only)
🔖 MarkersOpen marker panel (add, list, jump to, delete)
🔁 LoopOpen loop panel (set A/B points, enable/disable)
Jump to [sec] GoJump to a specific time in seconds
Speed (1x)Cycle playback speed
🏠 HomeReturn to landing page (rehearsal mode only)
Close overlay

8. Markers

Markers let you bookmark specific positions in the score for quick navigation.

Adding a Marker

Swipe down anywhere on the score. A name prompt appears — type a short label (e.g., "pizz section", "cue after fermata") and confirm. The marker is saved at your current playback position. Markers work both during playback and while stopped.

Viewing and Jumping to Markers

Open the Controls Overlay and tap 🔖 Markers to see your marker list. Tap any marker to jump to that position.

Deleting Markers

In the marker panel, each marker has a delete button to remove it.

Persistence

Markers are saved in your browser's local storage. They persist across page reloads on the same device. Markers also appear as colored ticks on the MiniMap bar at the bottom of the screen.

9. Looping

Looping lets you repeat a section of the score for practice.

Setting a Loop

Open the Controls Overlay and tap 🔁 Loop. Set the loop start (A) and end (B) points using the controls. Enable the loop to begin looping — when playback reaches point B, it jumps back to point A.

Loop Count

The loop panel displays the current loop iteration count. You can set a fixed number of loops or loop indefinitely.

Looping is per-client — it does not affect other performers in the room. When connected to a room, loop state is synchronized so all performers in the room see the same loop boundaries if set by the leader.

10. Speed Control

Adjust playback speed for practice. Available speeds: 0.5×, 0.75×, 1.0× (normal), 1.25×, 1.5×, 2.0×.

Access the speed button through the Controls Overlay. Each tap cycles to the next speed. The current speed is displayed on the button.

Speed control is local only — it does not affect other performers. At non-1.0× speeds, the automatic drift correction system is paused to avoid interference.

11. Synchronization & Independent Mode

Synced Mode (Default)

When you join a room, you are in synced mode by default. The leader's playback controls (Play, Stop, Jump To) apply to all synced performers in the room. All cursors advance together in real time.

Leader

The first performer to join a room becomes the leader. The leader can:

Independent Mode

You can detach from the group to navigate freely. This happens:

While independent, you control your own playback and page navigation without affecting others. A toast notification appears: "Auto-detached — tap 🔗 to re-sync."

Re-syncing

Tap the sync button in the Controls Overlay to rejoin the group. Your score jumps to the leader's current position.

Sync Quality Indicator

A small colored dot indicates your synchronization quality with the server:

ColorMeaning
🟢 GreenExcellent — tight sync, low latency
🟡 YellowFair — some jitter, still usable
🔴 RedPoor — significant drift, may need to re-sync

Offline Mode

If the network connection is lost, a non-intrusive "OFFLINE — local clock" banner appears. The score continues playing on your device's local clock. When the connection is restored, the banner disappears and synchronization resumes automatically.

12. Annotations (Apple Pencil)

On iPad, Apple Pencil input is handled separately from finger touch — you can draw on the score without triggering any gestures.

Drawing

Touch the Pencil to the score and draw freely. Annotations are rendered as colored strokes on a transparent overlay above the score.

Stamps

A stamp palette provides common musical symbols that can be placed with a single Pencil tap.

Saving

Annotations auto-save to your browser's local storage. You can also export annotations as a JSON file (for backup or transfer to another device) and import them back.

13. MiniMap

A thin horizontal progress bar at the bottom of the screen shows your position in the full score. The current playback position is highlighted, and your markers appear as colored ticks along the bar.

Tap anywhere on the MiniMap to jump directly to that position in the score. The MiniMap collapses to a minimal state when not in use and expands when you hover or touch near the bottom edge.

14. Performance Mode

Performance mode is a locked-down state designed for live concerts. It disables all touch interaction (no accidental page turns, no zoom, no overlays) and provides a structured flow from readiness check through countdown to synchronized playback and end-of-performance ceremony.

Entering Performance Mode

Performance mode is activated by the leader or via the URL parameter ?mode=performance. When activated, all connected performers enter the readiness flow.

Step 1: Readiness Check

A readiness panel appears on every performer's screen. Each performer taps "Ready" — this also triggers fullscreen mode on their device (fullscreen must be activated by a user gesture on each device; it cannot be triggered remotely).

The leader's panel shows the ready count and a "Begin Performance" button that enables only when all performers are ready.

Step 2: Countdown

When the leader taps "Begin Performance," a countdown overlay appears on all devices: 3… 2… 1… The score is visible behind the countdown so performers can see the first page. All devices use latency-compensated timing to begin playback simultaneously.

Step 3: Locked Playback

During playback, the score scrolls automatically. All touch gestures are completely disabled:

The only available interaction is the emergency control (see below).

Step 4: Auto-Stop & Ceremony

When the score reaches the end, playback stops automatically on all devices. A "Performance Complete" overlay fades in, showing the performance duration. The leader can then choose to return to rehearsal mode, start again, or close the session.

Performance lockdown remains active until the leader explicitly exits performance mode.

15. Emergency Controls

Important: This is the only interaction available during performance mode. Practice it before your first performance so you can use it confidently if needed.

Emergency Menu — 2-Finger Long Press (2 seconds)

Press and hold two fingers anywhere on the screen for 2 seconds. An emergency menu appears with two options:

Why 2 fingers for 2 seconds? This threshold prevents accidental triggers. A brief touch or a single finger will never open the emergency menu. The gesture was chosen because operating systems intercept 3-finger gestures (Windows: Task View; iPad: Mission Control) before they reach the browser.

16. URL Parameters Reference

The app accepts URL parameters to configure its behavior. These are appended to the base URL as query parameters (e.g., ?track=1&pages=6).

ParameterValuesDescription
track1, 2, 3, 4Show a single instrument track in parts view. 1 = Violin I, 2 = Violin II, 3 = Viola, 4 = Cello. Omit for full score.
pages4, 6, 8Number of pages visible per screen in parts view. Default: 6.
modeperformanceStart directly in performance mode (readiness flow). Omit for rehearsal mode.
gotoseconds (e.g., 54.5)Jump to a specific time on load. Useful for deep-linking to a particular section.
room6-char code (e.g., HK7W3N)Join a specific rehearsal room on load.

Examples

17. Music Performance Instructions

A separate document explains the non-standard notation and graphic score symbols used in the piece — curves, gravitational conductors, line wedges, notation fragments, and compound techniques.

You can access this document from the landing page under Documentation, or directly at:

The Music Performance Instructions cover:


String Quartet No. 1 — Justin Yang