1---2name: performing-orthonotone-polychoral-instrument3description: Guides agents through launching, playing, sculpting, and capturing performances with the Orthonotone polychoral instrument MVP. Use when generating music, soundscapes, or live demos from this repository.4---5
6# Performing Orthonotone Polychoral Instrument
7
8## Contents
9- [Stage setup](#stage-setup)
10- [Performance quickstart](#performance-quickstart)
11- [Control surface map](#control-surface-map)
12- [Gestural choreography](#gestural-choreography)
13- [Scene design and snapshots](#scene-design-and-snapshots)
14- [Tempo and groove engine](#tempo-and-groove-engine)
15- [Recording and sharing takes](#recording-and-sharing-takes)
16- [Troubleshooting cues](#troubleshooting-cues)
17- [Reference atlas](#reference-atlas)
18
19## Stage setup
201. **Serve the project** – run any static server from the repo root (`npx http-server .` is sufficient) and open `polychoral-instrument-mvp.html` in a Chromium-based browser for best WebAudio timing.
212. **Prime Playwright harness (optional)** – `npm install` once, then `npm run check` to ensure the QA hooks remain healthy before and after your session.
223. **Warm the audio graph** – click **Enable Audio** in either the toolbar or System section of the Controls panel. Browsers insist on a user gesture before sound.
234. **Set your monitoring level** – adjust **Master Volume** immediately; presets and snapshots respect the level currently set.
24
25## Performance quickstart
26- **Canvas focus** – keep the canvas in view (toggle Focus Mode if panels crowd the stage). The hypercube visualization reacts to the same modulation that drives the synth.
27- **Baseline scene** – start from **Neutral Lattice** or **Prismatic Bloom** in *Quick Scene* to align with the sound you want. Custom tweaks always begin from the current selection.
28- **Check system status** – expand the **Live State Vectors** panel for meters showing axis energy, edge resonance, and face harmonic bloom. Use these readouts to balance the mix while improvising.
29- **Keep audio alive** – if silence returns after inactivity, tap **Enable Audio** again; the button mirrors the AudioContext state.
30
31## Control surface map
32### State Space
33- **Quick Scene selector**: instant morph targets (Neutral, Drift, Bloom, Pulse).
34- **Snapshots**: name and store mixes for instant recall mid-set.
35- **Dimension / Morph / Grid / Fidelity** sliders: reshape the rendered hyper lattice and corresponding harmonic density.
36
37### Timbre Architecture
38- **Line Thickness, Shell Width, Tetra Density**: sculpt the visual-acoustic shell; thicker values emphasize lower resonances.
39- **Color Shift & Glitch Intensity**: paint spectral hue and sprinkle jittered overtones.
40
41### Rotation Velocities
42- Six sliders (XY…ZW) drive base angular speed in radians/sec. Pair them with gestures for evolving drones versus rhythmic pulses.
43
44### System Suite
45- **Master Volume** controls output gain post-fader.
46- **Enable Audio** toggles the synth graph.
47- **Symmetry Snap** recenters rotation for crystalline chords.
48- **Reset State** returns sliders to defaults while leaving audio on.
49- **Freeze Rotation** halts motion for sustained pads.
50- **MIDI Bridge** connects controllers, enabling external modulation.
51- **Tempo Sync** buttons follow external MIDI clock or rephase the internal clock.
52
53## Gestural choreography
54- **Pointer drags**: default drags modulate XY/YZ/XZ; hold **Shift** for XW/YW, **Alt** for XZ/ZW, **Ctrl / ⌘** for fine isoclinic blends.
55- **Touchscreens**: second finger emulates Shift, third finger unlocks Alt; no hardware keyboard required.
56- **Motion input (beta)**: enable via Gesture panel for accelerometer blending; calibrate neutral tilt before performing.
57- **Focus Mode & Hide Panels**: reclaim screen real estate mid-performance without losing panel state.
58
59## Scene design and snapshots
601. **Choose or sculpt a starting scene** via Quick Scene.
612. **Dial lattice parameters** (Dimension/Morph/Grid/Fidelity) to set harmonic density.
623. **Shape timbre** with Shell/Line/Tetra and Color/Glitch controls.
634. **Balance rotation speeds** so Status panel meters pulse in complementary patterns (e.g., pair XY with XZ for shimmering fifths).
645. **Store the state**: enter a descriptive name and click **Save Snapshot**; it appears in the snapshot list for one-click recall.
656. **Annotate experiments** – log notable parameter sets in `audio-upgrade-turn2-core-dsp.md` or related plan docs so future performers can reproduce them.
66
67## Tempo and groove engine
68- **Clock Division & Rhythm Pattern** choose internal sequencer grids (Quarter, Eighth, Triplet, Sixteenth; Drive Pulse, Syncopated Lift, Euclidean Five, Ambient Bloom, Custom Sculpt).
69- **Groove Swing** introduces humanized delay; values above 0.3 create loping polyrhythms.
70- **Pattern Sculptor** appears when *Custom Sculpt* is selected—paint per-step intensities, use **Euclidise** for evenly spaced hits, **Humanise** for slight randomness, or **Clear** to reset.
71- **MIDI Clock Follow** syncs modulation to external gear; monitor **Tempo Sync** and **Clock Phase** in the Status panel to verify lock.
72
73## Recording and sharing takes
741. **Screen capture** – use system-level screen/audio recorder (e.g., QuickTime, OBS) to capture both visuals and sound; ensure desktop audio is routed from the browser.
752. **Snapshot setlists** – before recording, queue snapshots in performance order for rapid transitions.
763. **Document presets** – after recording, export slider values by copying the QA report (Status → QA Diagnostics → Copy Report) to archive performance settings.
774. **Share context** – attach relevant plan doc links or commit hashes when distributing audio/video so collaborators can align with the build you used.
78
79## Troubleshooting cues
80- **No sound after enabling**: confirm Master Volume > 0 and the Status panel shows AudioContext "Running". Reload the page if the context gets stuck in "Suspended".
81- **Gestures feel unresponsive**: check if **Freeze Rotation** is active, or if axis sliders are pegged at zero. Recenter with **Reset State**.
82- **Panel clutter**: toggle **Hide Panels** then reopen only what you need; Focus Mode hides panels but keeps toggles docked.
83- **MIDI not detected**: ensure browser permissions allow MIDI, press **Connect MIDI** again, and verify device appears in the dropdown.
84
85## Reference atlas
86- **Instrument surface**: [`polychoral-instrument-mvp.html`](../../polychoral-instrument-mvp.html) – main performance canvas, panels, and synth wiring.
87- **Render & audio theory**: [`hypercube_core_webgl_system.md`](../../hypercube_core_webgl_system.md), [`audio-synthesis-master-plan.md`](../../audio-synthesis-master-plan.md), [`audio-upgrade-turn2-core-dsp.md`](../../audio-upgrade-turn2-core-dsp.md).
88- **Roadmaps**: [`mvp-roadmap.md`](../../mvp-roadmap.md), [`development-expansion-plan.md`](../../development-expansion-plan.md), [`interface-responsiveness-plan.md`](../../interface-responsiveness-plan.md).
89- **QA harness**: [`check-instrument.js`](../../check-instrument.js) for Playwright-driven regression playback.