# Sounds ## Agent Instructions You are extending KIRUPA sound feedback. Reuse the existing link/content/kirupabot role registry and its production gain. Read sounds.json for file cues or the actual style synth function; never invent an MP3 URL for a synthesized cue. Keep sound optional and user-initiated, with visual equivalents. In a catalog, serialize playback, support Stop during loading, expose accessible status, and report load/download failures. A synthesized WAV must record sample rate, PCM format, baked gain, source function, and disabled variation. Do not write kirupaSoundEnabled from a specimen or treat archive recordings as approved UI cues. Follow WCAG 2.2 AA for new or changed content: semantic HTML, keyboard access, visible focus, readable contrast in every theme, text alternatives, labeled controls, and explicit errors. Support zoom/reflow, respect reduced motion, and keep sound optional. Read /design/sections/accessibility.md for acceptance checks. Report unresolved barriers; automated checks alone do not establish conformance. ## Reference Recorded and synthesized sound cues with playback, downloads, source mappings, and licensing. The production sound system maps three roles, link, content, and kirupabot, to the active style. Pixel and Smooooth use the MP3 cues registered in kirupa.js. Sci-Fi, Minimal, Ukiyo-e, and Platformer register synthesized AudioBuffers in window.kirupaStyleSounds. The outer design pages retain those optional link sounds, just like the [homepage](https://www.kirupa.com/); the sample shelf below never auto-starts. Pixel mixes different short UI textures for content links. Smooooth uses organic hover/press/release/snap and a soft focus cue for kirupaBot. Sci-Fi has blips, a relay, chirps, a scan, readout, beep, and ping. Minimal is paper taps and typing dots. Ukiyo-e uses six koto notes, a clapper, and a rin bell. Platformer has blip/blop, bump, jump, ping, tick, spring, and powerup. Every tracked audio file is included, including the three historical chat cues and tutorial recordings. Those archive recordings are not current UI sound recommendations, and their rights are not established by their presence in the repository. MP3 playback uses the production cue gain; Download returns the unmodified original file. Synthesized downloads are deterministic mono, 48kHz, 16-bit PCM WAV renders of the actual registered functions with their production gain baked in. They are reference renders, not nonexistent original recordings. Playback-rate and gain variation are deliberately disabled for comparison. Production hover sounds require an enabled preference, a fine pointer, and an unlocked audio context. A preview must not toggle that preference. Keep visual and textual feedback complete when sound is muted or unavailable. - Do let a new Play stop the prior sample, and let the same control Stop a pending or playing sample. - Do surface load, decoding, permission, and download failures with the cue name. - Do not autoplay, normalize quiet cues to a loud level, or use sound as the only signal. ## Sources - [ssi/newDesign/src/kirupa.js](https://github.com/kirupa/kirupaWWW/blob/main/ssi/newDesign/src/kirupa.js) - [ssi/newDesign/styles/scifi.js](https://github.com/kirupa/kirupaWWW/blob/main/ssi/newDesign/styles/scifi.js) - [ssi/newDesign/styles/minimal.js](https://github.com/kirupa/kirupaWWW/blob/main/ssi/newDesign/styles/minimal.js) - [ssi/newDesign/styles/ukiyoe.js](https://github.com/kirupa/kirupaWWW/blob/main/ssi/newDesign/styles/ukiyoe.js) - [ssi/newDesign/styles/platformer.js](https://github.com/kirupa/kirupaWWW/blob/main/ssi/newDesign/styles/platformer.js) - [https://uisfx.com](https://uisfx.com) - [https://creativecommons.org/publicdomain/zero/1.0/](https://creativecommons.org/publicdomain/zero/1.0/) [Section page and specimens](/design/sounds.htm) | [Instruction index](/design/index.md) | [Plain prompt](/design/agent/sounds.txt)