Context. surface studio · domain isis · route /studio/isis/audio-generation · auth signed-in + studio entitlement (AAA-gated — segment audio-generation in AAA_ONLY_STUDIO_ROUTES) · source apps/oshun/web/src/app/studio/isis/audio-generation/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin lane console that wires the real @isis/audio-generation computeFrameRms
DSP via /v1/admin/isis/audio-generation: the operator supplies a generated
audio signal's samples plus a frame size and gets back the per-frame RMS loudness
envelope (peak + mean RMS). It is admin-scoped and fails closed.
Entry points#
- Breadcrumb in-page:
Studio→Isis Music Generation→Audio Generation - Sibling quick-actions from
/studio/isis/music-generation,/studio/isis/text-to-audio,/studio/isis/3d-generation - Direct URL / bookmark (AAA entitlement required)
Layout regions#
page.tsx mounts <ShellLayout active="studio"> with a breadcrumb panel, the
workspace, the Route Map, and sibling quick-actions.
- Header: shell header
- Breadcrumb panel (
data-isis-audio-generation-breadcrumbs):Studio(link) →Isis Music Generation(link →/studio/isis/music-generation) →Audio Generation(aria-current="page") - Workspace panel (
data-isis-audio-generation-workspace):<h1>(WorkspaceHeading) "Isis Audio Generation Workspace"- Summary paragraph (
data-isis-ag-summary) - Loudness-analyzer form (
data-isis-ag-loudness-form)
- Route Map panel (
data-isis-audio-generation-route-map):<h2>Route Map</h2>overSTUDIO_ISIS_AUDIO_GENERATION_ROUTE_MAP(6 entries) - Sibling quick-actions panel:
/studio/isis/music-generation,/studio/isis/text-to-audio,/studio/isis/3d-generation,/studio
States#
- Loading —
outcome === null;data-isis-ag-loading"Loading loudness analyzer…" - Unauthorized — 401/403 admin-scope fail-closed;
data-isis-ag-unauthorized - Error — non-OK or malformed catalog;
data-isis-ag-error - Ready (form) — catalog present; samples + frame-size inputs render
- Result — after a loudness POST,
data-isis-ag-resultshowsdata-isis-ag-peak(peak RMS) anddata-isis-ag-mean(mean RMS); failures surface indata-isis-ag-loudness-error
Interactions#
Loudness-analyzer form (data-isis-ag-loudness-form)#
- Samples (comma-separated) (
data-isis-ag-field-samples, text input) - Frame size (
data-isis-ag-field-frame, text input) - Analyze loudness (
data-isis-ag-loudness-submit, submit) —POST /v1/admin/isis/audio-generation/loudness
Route Map#
- Route-map articles ×6
Sibling quick-actions#
- Open Isis Music Generation workspace →
/studio/isis/music-generation - Open Isis Text-to-Audio workspace →
/studio/isis/text-to-audio - Open Isis 3D Generation workspace →
/studio/isis/3d-generation - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/audio-generation(analyzer catalog) - Writes:
POST /v1/admin/isis/audio-generation/loudness(returns{ loudness: { peakRms, meanRms } }) - Realtime: none
- Caching: client fetch on mount,
cache: 'no-store',buildBffAuthHeaders() - Auth/role check: admin-scoped, fail-closed (401/403); route gated on signed-in + studio entitlement (AAA segment)
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisAudioGenerationWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisAudioGenerationRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - AAA gating:
libs/isis/entitlements/src/studio-boundary.ts - Sibling routes:
Open questions / known gaps#
- The analyzer measures loudness of pre-supplied samples; actual audio generation runs elsewhere — confirm where the generation request originates