---
ai_provenance:
  {
    "spec": "aimeat.provenance/v1",
    "level": "ai-generated",
    "notes": "Implemented and reviewed by Codex agents under the requested RESONA scope. Automated behavior tests and real Chrome verification; no human editorial review asserted.",
    "method": "multi-agent",
    "generator": {
      "model": "gpt-6",
      "nodeId": "aimeat-finland-001-genesis",
      "pipeline": "memory.write",
      "provider": "openai",
      "principal": "happydude500001@aimeat-finland-001-genesis"
    },
    "mediaKind": "text",
    "disclosure": {
      "long": {
        "en": "This text was written by AI without human editorial review.",
        "es": "Este texto lo escribió una IA sin que ninguna persona lo revisara.",
        "fi": "Tämän tekstin on kirjoittanut tekoäly ilman ihmisen toimituksellista tarkistusta."
      },
      "short": {
        "en": "AI-generated",
        "es": "Generado por IA",
        "fi": "Tekoälyn tuottama"
      },
      "reason": "art50_4_precautionary",
      "required": true,
      "strength": "full"
    },
    "attestation": {
      "observed": false,
      "recordUrl": "https://aimeat.io/v1/provenance/1e856dad-1db4-482e-92b9-e06b92b591d3",
      "stampedBy": "principal",
      "contentHash": "sha256:78e201b4f8a7c2a9a7dc46ee198a34fdaab32e0814e9a3957da6d045ad8bca6e"
    },
    "generatedAt": "2026-10-31T01:44:57.283Z",
    "humanInvolvement": "none"
  }
ai_provenance_url: https://aimeat.io/v1/provenance/1e856dad-1db4-482e-92b9-e06b92b591d3
---

# RESONA agent face

Application: happydude500001/resona.html
Address: https://resona.apps.aimeat.io/

RESONA 5.0.0 uses canonical score format 6. Versions 1–5 import through the strict shared sanitizer without moving geometry. Final artifact identity and measured evidence are recorded in App Development Notes.

Help the person shape, hear and keep a musical score. Read the bound resona-studio skill before operating. Distinguish the written score, current performance, returned tool copy and saved library record.

## What this release adds

The moving circles and real encounters remain the instrument. The twenty additions are:

1. Interval flowers bloom from accepted notes at encounters.
2. Voice materials give circles distinct procedural surfaces.
3. A resonating field responds to the sounding voices.
4. Liquid ink retains a finite, fading visual memory of motion.
5. Wall fractures react to physical wall contacts and heal by the next bar.
6. A four-, six- or eight-sector kaleidoscope mirrors the stage without duplicating physics or notes.
7. Drawn rails make circles follow repeatable musical paths; their points also have numeric controls.
8. Attraction and repulsion can be played with a live force or written as timed force fields.
9. Paired portals move a circle and can change pitch, voice and heading.
10. Spring links create elastic families of circles.
11. Time bubbles change local motion rate while the score clock continues.
12. Painted mist, ice and lava zones change the actual sound of encounters inside them.
13. Sound crystals hold an encountered timbre as a finite texture; later encounters add changed layers.
14. Deliberately included local audio excerpts become pitched circle voices and portable score content.
15. Echo ghosts follow a circle's earlier real path and sound once when entering a continuous overlap; dragging a ghost along the retained path changes its delay.
16. Charged circles release a chord or arpeggio on every chosen second to sixteenth encounter.
17. Orbiting and rotating rooms carry their internal rhythms; timed gates can let their passengers leave.
18. Conduct maps a two-axis gesture to sound and light, with explicit bounded recording for replay.
19. One-bar chaos temporarily disturbs selected circles and returns them to the original rhythmic phase; written fills can also last 1–16 beats.
20. Concert camera plans switch between wide, follow, orbit and split views on the score clock.

Eight complete examples combine these instruments: Light flowers / Valokukat; Liquid memory / Nestemäinen muisti; Melodic figure eight / Melodinen kahdeksikko; Three sound worlds / Kolme äänimaailmaa; Electric constellation / Sähköinen tähtikuvio; Time mandala / Aikamandala; Orbiting rhythm boxes / Kiertävät rytmilaatikot; Concert / Konsertti. Opening one deliberately replaces the arrangement and starts it; Undo restores the previous score. The examples contain procedural sound, not a bundled sample bank.

The earlier composition workbench remains: 17 voices, five sound worlds, per-circle mix, rich phrases/rests/rhythm, swing/triplets, harmony/automation/scenes/gates, audible analysis, targeted encounters, private named versions, WAV/stems, portable copies and invited duet. Pass-through mode sounds once per continuous overlap and keeps circle headings through each other. Four rhythm-box recipes use real overlaps; adding one sets global pass-through mode and disables wave strength, relay and speed influence. There is no MIDI input, output or file export.

## Native paths and deliberate editing

Open Edit → Living stage (Muokkaa → Elävä lava). Visual workshop / Ulkoasu-työpaja contains the six visual controls and concert shots. Motion workshop / Liike-työpaja contains rails, force fields, portals, spring families, time bubbles, moving rooms and fills. Sound experiments / Äänikokeilut has five tabs for zones, crystals, ghosts, charges and personal samples. Conduct / Johda and One-bar chaos / Tahdin kaaos are alongside the workshops. Stage examples / Näyttämöesimerkit is in the main score action row. On phones open Controls / Ohjaimet first; choosing a canvas tool closes the sheet.

Workshop drafts do not change the score before Keep workshop changes. Cancel discards them. Drawing first keeps the current draft, closes the dialog and hands a controlled gesture to the field. Zone drawing chooses location and radius. Rails provide a field point editor plus numbered points and numeric coordinates. To retime a ghost, enable it, play long enough to create path history, pause, then use its Apply and drag action and move it along that earlier path. A short history reports a refusal instead of inventing a path.

Conduct is a nonmodal live surface with a pad and keyboard-reachable horizontal/vertical sliders. The Sound and bloom, Echo field and Prism and stereo mappings use explicit allow-listed controls. Live conducting does not rewrite an existing recorded gesture. Record gesture starts from zero; Keep recording saves a repeating plan, and Discard recording drops it. Closing, hiding or changing the workspace stops recording and restores the prior live settings. Saved conducting plans replay in analysis, export and duet. Live force gestures and live conducting stay in the current performance and are unavailable in a duet; they are never silently converted into a saved plan. A timed field or kept gesture is the explicit portable alternative.

## Portable version-six creative plans and bounds

Canonical score version 6 accepts versions 1–5 through the same strict sanitizer. Unknown fields are discarded; invalid recognized values and dangling references are rejected without coercion. Geometry remains at most 24 circles and 12 rooms. Optional plans live under performance.spectacle, performance.motion, performance.sonic and performance.conductor; runtime trails, contacts, force handles and audio graphs do not.

Spectacle: five visual booleans, kaleidoscope off/4/6/8, rotation 0–360 degrees, normalized center and ink lifetime 1–600 seconds. The transient ink uses one raster with longest side at most 1024 pixels, updated at most 15 times per simulation second; wall fracture history is capped at 48 records. Camera plans have at most 16 shots at distinct times 0–600 seconds, mode wide/follow/orbit/split, nullable existing ballId, zoom 1–4 and turn −180–180. Reduced motion suppresses decorative pulses, spin, fracturing and liquid history while keeping physical geometry, meaningful ghosts and readable controls; there is no separate idle animation loop. Concert views return to ordinary editing coordinates when paused.

Motion: at most 12 rails with 2–32 points each, 8 fields, 8 paired portals, 24 spring links, 8 time bubbles, 6 movers and 16 fills. A circle has at most one rail. Rails and room motion stay within a 240-unit/s bound. Rail and mover periods are 0.5–120 seconds with phase 0–1. Fields have radius 20–2000, strength −1000–1000 and increasing start/end within 0–600 seconds. Portal radius is 16–120, pitch change −24–24 semitones and turn −180–180; the paired mouths must have clear separation and failed placement is refused. Springs use rest length 20–1500, stiffness 0.01–24 and damping 0–4. Bubbles use rate 0.25–4. Fills start at 0–600 seconds, last 1–16 beats, have amount 0–1 and a bounded deterministic seed. One-bar chaos queues a four-beat fill for the next bar; a silent original simulation restores the exact original physical and musical phase at the end.

Moving rooms have orbitX/orbitY 0–400 and integer spin −4–4. An optional affine orbit basis {ax,ay,bx,by}, each −2000–2000, preserves rotated/captured motion; the default basis is the diagonal orbitX/Y. passengers is null to infer initial local members, or a unique array of at most 24 existing circle IDs. Capturing This moment writes actual local passengers, including a circle partway through a gate, while other circles retain world coordinates. The complete swept room footprint must fit inside the field, remain separate from every other room and stay within its speed bound. Nested moving rooms are refused. Ordinary static nested rooms keep their existing behavior. Geometry changes reset derived motion/ghost history; plan changes preserve unaffected phases and contacts.

Sonic: at most 12 effect zones, 8 crystal settings, 8 ghost settings, 24 charge settings, 4 samples and 24 assignments. Zone radius is 8–1200 and amount 0–1. Mist lengthens, darkens and diffuses sound; ice shortens and brightens it; lava applies distortion and darker filtering. Crystal duration is 0.25–8 seconds and amount 0–1; layers obey the shared voice budget and stop on pause. Ghosts use 1–3 copies, 0.25–2 beats between copies and decay 0.1–0.8. They keep at most 1100 simulation samples of actual source history and never push physical circles. A ghost sounds once on entering an overlap, then must separate before sounding there again. Charge every is integer 2–16 and mode is chord or arp; delayed arpeggio lights follow their actual audible onset. All sound features use the same accepted-note plan in live playback, audible analysis, complete WAV and stems.

Conductor: a recorded plan holds at most 256 increasing points {t,x,y}, normalized x/y, duration 0.25–64 seconds, an explicit loop flag and at most 8 distinct bindings. Allow-listed targets are sound brightness/space/pairBlend/echoTone/stereo, wave strength/relay, visual intensity and spectacle inkLife/kaleidoscopeAngle. Two or more points are required when enabled. Visual mappings affect effects that are already enabled.

## Personal samples are deliberately included score content

In Sound experiments → Your samples (Äänikokeilut → Omat ääninäytteet), choose or drop a local audio file, choose the excerpt, optional name, original pitch and target circle, enable the inclusion consent, then include it and apply the workshop. No microphone, remote sound URL or automatic upload is used. File names and local paths are not copied into sample names or credits. Cancel keeps the sample out of the score.

Import accepts at most a 2 MiB local file whose decoded duration is at most 30 seconds, with 1–8 channels and a sample rate of 8000–192000 Hz. Browser decoding support determines accepted formats. Each excerpt is 16–48000 mono frames at 16000 Hz (up to three seconds), and the whole bank is at most four samples and 96000 frames (six seconds). The portable format is canonical PCM16 little-endian base64, not an external URL or a data URL: at most 192000 raw bytes / 256008 base64 characters including each sample's padding across the bank. A sample has an explicit ID, optional chosen name up to 80 characters, original pitch 48–84, frame count and PCM. Circle/sample assignments use existing IDs. Validation checks bounded size and canonical bytes before decoding.

Before full decoding, a silent local metadata element checks a finite duration up to 30 seconds. Inspection times out after four seconds and revokes its local object URL and listeners on completion, error or cancellation. Only one import/decode can be pending at a time. Closing the editor or replacing the file aborts inspection and prevents an old result from entering the draft; a native decode already underway is allowed to finish and its cancelled result is discarded. Decoded dimensions are checked again before conversion. No extra AudioContext or media playback is created.

Included PCM travels with local working scores, named saves and versions, JSON export, share copies, supplied-score AppTools results and explicitly created/published duet scores. The save/share/duet flows disclose this inclusion; a recipient holding a copy can retain the sound. Removing the sample from a later score does not recall previous copies. Audio can itself contain personal material, so the data map treats it as user-supplied content. Rolling audio memory, rendered WAV, video chunks, decoded buffers, node handles and object URLs remain separate transient capture/render data and are not embedded automatically.

Existing byte limits still apply: private/guest named scores at most 1000000 UTF-8 bytes, records at most 1040000 bytes, guest library at most 4000000 bytes; share codes at most 2000000 characters. Large samples or nonrecursive scenes can reduce retained revisions or exceed a channel's bound; the operation then refuses without truncation. The duet permits a score up to 512000 JSON characters and its whole private registry up to 1000000 characters, so fewer than eight rooms may fit when scores are large.

AppTools authority is resona-score-tools 1.1.0; the direct duet authority is happydude500001/resona-jam@1.2.0. The six supplied-score tools and their native scopes are unchanged. score_read summarizes sample metadata without echoing PCM in its summary, while the canonical score and independent copy link deliberately retain it. No new microphone, file-system, network, paid-AI or MIDI capability is introduced.

## Actual chat tools and their authority

Invoke the app tools for owner happydude500001, app resona.html: score_create, score_validate, score_read, score_transform, pattern_add and score_variants. Discover current schemas in the app's WebMCP manifest. These are real resona-score-tools server actions and work without an open browser; RESONA is not a separate MCP server.

score_create uses empty, duet, rooms, weave, a sound-world example, or one of eight stage examples: stage-flowers, stage-ink, stage-rails, stage-portals, stage-springs, stage-bubbles, stage-orbitBoxes and stage-concert. score_validate reports errors or returns a canonical copy. score_read summarizes the supplied score. score_transform applies up to 32 validated operations atomically to a detached score. pattern_add performs the documented global pass-through/wave change while adding a physical rhythm box. score_variants returns up to four valid geometric alternatives.

Successful score results include score, summary, open_url and persisted:false. Validation is a report; variants contain separate candidates. Deterministic result provenance identifies the tool caller, not the score's author. Preserve existing attribution. A returned link is an independent copy that requires an explicit import choice and neither plays nor saves automatically.

The tools cannot inspect or control a live browser, read or save the private named library, or join a duet. Do not invent a library MCP tool or describe a returned score as saved. Obtain the portable score explicitly; named saves remain native app UI actions. Only host-provided caller identity is trusted. There is no owner-parameter authority, private-memory impersonation, network fetch, stored credential or paid AI.

AppTools action_id values name registered extension capability IDs and are not version-pinned. The direct duet endpoint is pinned separately. Rebuild/review both applicable authority bundles when shared canonical helpers change.

## Initial score and running performance

Start from zero rebuilds the written initial score. Pause retains the current performance; Continue resumes it; Reset returns to the written score. At zero, edits update the initial score. Later geometry edits affect the performance until Use this as the start deliberately captures it. Applying a performance plan, including a creative workshop plan or a kept conductor recording, updates the written plan deliberately and preserves the live arrangement. Ordinary Save, JSON export, Share and offline render use the written score. Save's explicit This moment choice keeps a detached current arrangement without changing the open starting score. Runtime contacts, wave fronts, recorder bytes and audio nodes are never saved.

Undo/Redo and the newest 30 labelled edits are session history, distinct from saved library versions. Geometry edits are validated and may be refused. Dialog drafts stay detached until Apply; Cancel preserves the score. Sound studio applies its complete musical draft atomically. One invalid row rejects it; one Undo reverses an applied arrangement. Its bounded 3.2-second preview does not move circles or save.

Forecasts use the real solver for up to 120 seconds. Seek reconstructs complete state up to 600 seconds; A/B loops restore that state. Interval audition lasts at most 30 seconds. A timed encounter target accepts a position and 0.25–30 seconds after the current state, or equivalent beats at the current tempo. The bounded solver can refuse an unsolved target without changing the score.

Physical forecasts do not promise audible notes. Rests, rhythm steps, mute/solo, zero gain and event/note/polyphony budgets can omit them. The musical grid and swing schedule accepted sound and light without quantizing physics. Audible timeline analyses at most a selected 60-second interval on demand, displays accepted notes and explained omissions, and does not collect a continuous activity history.

## Named scores, saved versions and links

The working draft stays local to this browser profile and does not switch with accounts. Guest named scores stay in their separate browser library. Signed-in scores use native private memory under the exact active person or agent identity. Never widen an agent to its owner's namespace. Failed cloud operations report errors without a guest fallback; there is no automatic guest migration or named save. Identity changes invalidate pending results.

The library supports 100 active scores, 80-character names, up to eight 32-character tags, favorites and sorting. Detail offers a static geometry thumbnail and an eight-second audition without replacing the open score. Up to ten older named versions are retained within the byte budget, so large scores retain fewer. A/B audition does not replace the workspace. Explicit restore makes B the current library version and retains the previous current version when it fits. Updates, restore and deletion check the expected native record version and refuse conflicts.

The library body remains schema resona.score/1 with id, name, score, tags, favorite, revisions, revisionName, createdAt and updatedAt. Owner and version are native metadata; this record version is not score.version. Save's Starting score/This moment choice is explicit. Restoring in the library does not silently open that version in the field.

Share a copy carries title and canonical score, including volunteered object names, creator/licence text and source fingerprints. It excludes account/library IDs, account credentials, library timestamps, viewer preferences and recordings. Import records the received source fingerprint; it identifies content, not verified authorship. Credits chosen for a shared copy do not automatically modify the open score.

The fragment carries the score itself and is not sent as an HTTP query. It is not encrypted; anyone holding the link can copy it. Recipient confirmation precedes opening and nothing autoplays or automatically saves. Import accepts a link, score code or exported JSON, including old versions 1–5. Deleting a source record cannot recall another person's copied, exported or downloaded files.

## Complete WAV, stems and local capture

Full WAV export renders the selected written-score interval at normal score speed with the current instrument volume and variation seed. A scoped offline renderer uses the same complete simulation and note-admission planner as playback/analysis. Output is 44.1 kHz stereo PCM16 WAV, bounded to 600 seconds and 256 MiB across all requested files. Many stems can require a shorter interval. It shows progress, supports cancellation and offers each completed file through its own Download button. It does not need rolling audio memory enabled first.

Choose full mix, roles or individual circles. The complete simulation admits notes before separating stems; it does not rerun physics with the other circles removed. Files share the interval/origin. Independent effects/dynamics do not promise mathematically exact summation. Missing browser offline-audio support or exceeded bounds reports failure rather than a truncated success.

Rolling audio memory is separate and opt-in: at most the last 30 seconds of this instrument's stereo output. Pause retains it; switching it off, hiding or disposing clears it. Video captures the score canvas and owned audio, without native controls or a microphone. Stop, 120 seconds or a 64 MiB accumulated-chunk threshold ends capture; final encoder chunks may make the final file slightly larger. Browser support determines availability.

All files are local explicit downloads. Deliberately included personal PCM samples are score content and travel with a saved score, share code or duet. Rolling recordings, video chunks, object URLs, render buffers, runtime waves and audio nodes remain transient and never enter those copies. Files already copied cannot be recalled. The native live audio context and global master remain platform-owned; RESONA releases its own finite buses, effects, notes, previews and taps. No microphone, fetched sample, advertising analytics, paid AI or MIDI is used. Ordinary hidden playback never resumes automatically.

## Invitation-only duet

Open Performance → Duet while signed in. Create publishes the written initial score to a new temporary room and offers a link containing a random invitation fragment. The other person must be signed in and explicitly choose Join; opening a link alone does not join or disclose their private library. At most two distinct authenticated accounts may participate. Each person sees the shared score and chosen display names, not account identifiers, controller tokens or the other person's library. Treat the invitation as a capability and send it only to the intended person.

Both participants may edit while the shared transport is paused. Publish sends an explicit canonical score revision. The server checks the expected revision; it never silently merges or overwrites a newer score. If a remote revision meets an unsent local draft, the person chooses Keep draft, Load shared, or explicitly Replace shared. A dirty local draft cannot start as though it had already been published. Leave the room before replacing the workspace from an outside library/import/example. Shared changes do not automatically save into private named scores.

One deliberate edit or transport/leave command may wait for the current bounded request, so a background change hint cannot silently consume a person's click. The queue holds at most one command, preserves its original expected revision and is discarded when identity changes or the client is disposed. An uncertain write must still be retried with its identical command before another mutation can proceed; waiting is not an automatic write retry.

Only the host starts, resumes or pauses the shared transport. Both participants must have a live native realtime connection before Start. The server schedules a common start 2.5 seconds ahead. Each client estimates the server clock from round trips, silently reconstructs physical state and anchors native audio to that common transport. Network and browser scheduling can still introduce audible differences; this is not sample-accurate distributed audio. Press Start from a gesture so the native audio context may unlock.

Hiding the host tab requests a shared pause before disconnecting. Hiding a guest stops that guest locally without commanding the host. Reconnection rereads authenticated authority, never trusts a peer's payload. Native realtime carries generic change hints only; full scores and membership travel through the authenticated extension. Finite leases pause a stale host, expire disconnected memberships and close a room after one hour. Cleanup is request-driven: expired data becomes inaccessible before its stored registry entry is physically pruned. Leaving restores the previous private workspace; signing out cancels the room's local activity. An abrupt close relies on those leases.

Authority: happydude500001/resona-jam@1.2.0, action dispatch, private extension registry rooms.v1. Required app scopes are memory:read, memory:write, ext:invoke, social:read and social:write. The memory scopes remain for the separate private library. Do not grant ownership, public-memory or unrelated capabilities to make a duet work.

## Maintenance

Source lives in aimeat-apps/resona/ and the built single file is resona.html. Keep strict score-v6 validation aligned across the client, AppTools and duet authority. Rebuild app-tools-extension.json and jam-extension.json after shared helper changes. Changed installed extension code needs a new reviewed version; the duet endpoint pins happydude500001/resona-jam@1.2.0. AppTools bind registered capability IDs rather than a fictitious versioned ID. Use native auth, data, input, viewport, Atelier, audio and realtime.

Verify the exact artifact in native desktop/mobile layouts, both themes and independent authenticated contexts. Check real controls, imports, privacy/conflicts, history, current-state save, version restore, audio lifetimes, timeline analysis, complete WAV/stem durations/cancellation, duet authorization and cleanup. Real QuickJS/HTTP tests supplement browser proof. Numerical audio measurements are not subjective listening claims. Follow current repository coordination, gate, CI and publishing rules. Align bound skill, agent face, catalogue, guide, design, data map and App Development Notes with the final verified artifact. Do not carry forward stale artifact hashes or published node version numbers.


> **AI provenance** — AI-generated (gpt-6), no human editorial review, 2026-10-31T01:44:57.283Z · record: https://aimeat.io/v1/provenance/1e856dad-1db4-482e-92b9-e06b92b591d3


## Agent affordances

- Act — WebMCP tool listing for this app: https://aimeat.io/v1/apps/happydude500001/resona.html/webmcp
- Learn — skills bound to this app: https://aimeat.io/v1/apps/happydude500001/resona.html/skills
- App catalog on this node (this app: happydude500001/resona.html): https://aimeat.io/v1/appcat
- Register an agent on this node (RFC 8628 device flow): https://aimeat.io/auth.md
