Skip to content

fix(story): route a cue to the bus of its sheet's CRI categories - #34

Merged
nichinichisou0609 merged 1 commit into
mainfrom
fix/story-voice-bus
Oct 17, 2026
Merged

nichinichisou0609 merged 1 commit into
mainfrom
fix/story-voice-bus

Conversation

@nichinichisou0609

Copy link
Copy Markdown
Contributor

Problem

On the story player, the music volume slider also turns down (and the music mute silences) the voices of the linkstory episodes ADV 10579–10608 (e.g. ?story=10579). Their -Sound rows file the voice cues under Bgm (_category 0), and Audio.play chose the bus from the row's category.

The volumes of the CRI categories reach a cue through the categories its cue sheet puts it in. The cue sheet adv_voice_linkstory_raika_miku_10579 puts all 38 cues in Voice / VoiceConfig, whatever their rows say. The row's _category decides which sounds StopAll and the BGM auto-crossfade reach.

Change

  • cues.json entries may list categories (the CRI category names of the cue); busOf picks the first of Bgm, Se and Voice among them, else the row's category. Audio.play connects the cue to that bus; info.category stays the row's, so stops and crossfades behave as before.
  • scripts/validate-data.mjs checks the field; docs/story-data-format.md and docs/story.md describe it.

Data produced without categories plays as before.

Checks

  • npm test (673 tests, 0 fail), npm run lint, npm run typecheck, npm run contract:check.
  • New test: a cue whose row says Bgm and whose sheet says Voice connects to the Voice bus, is still stopped by stopAll(Bgm), and ignores the music option volume.

Supersedes #29.

🤖 Generated with Claude Code

The volume options of the music, sound effects and voices reach a cue
through the CRI categories its cue sheet puts it in. The player chose the
bus from the category of the episode's sound row, so the voices of rows
filed under Bgm (the linkstory episodes ADV 10579-10608) followed the
music volume and its mute.

A cue of cues.json can list its `categories`; the cue plays on the bus of
the first of Bgm, Se and Voice among them, and on its row's bus without
them. The row's category still decides which sounds a stop of a category
and a BGM crossfade reach.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@nichinichisou0609
nichinichisou0609 merged commit 895862f into main Oct 17, 2026
4 checks passed
@nichinichisou0609
nichinichisou0609 deleted the fix/story-voice-bus branch October 17, 2026 05:56
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.

1 participant