Skip to content

Support per-playback configuration in play(options) - #236

Merged
ctoth merged 4 commits into
masterfrom
feat/232-play-options
Sep 13, 2026
Merged

ctoth merged 4 commits into
masterfrom
feat/232-play-options

Conversation

@ctoth

@ctoth ctoth commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Shared Sounds can now accept per-invocation volume, playback rate, loop count, and spatial settings through play(options). Overrides are applied before source start and preserve source defaults and other voices. Group playback preflights every member; random and ordered selection retain their existing behavior. Direct Playback, sprite children, synths, and live sources use the same options, with unsupported controls rejected explicitly.

Adds validation before preparation, cleanup on preparation/start failures, public TypeScript examples, and regressions that inspect configuration at source start and render scheduled fades and sprite boundaries with the native audio backend.

Closes #232

Validation:

  • npm run build passed, including published-package type checks and bundle checks (TypeDoc reported 35 warnings).
  • npm run ci:test passed: 92 files, 1,231 tests, no type errors.
  • npx tsc --noEmit -p tsconfig.play-options.json passed for the affected test files.
  • npm run lint and git diff --check passed.
  • Regression-first run reproduced the missing behavior before implementation.

@ctoth
ctoth force-pushed the feat/232-play-options branch from 48476ed to 3e3b6cf Compare September 13, 2026 16:30
@ctoth
ctoth merged commit 455e146 into master Sep 13, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support per-playback volume, loop, rate and spatial overrides in play(options)

1 participant