Skip to content

feat(pipeline): add the story.sound and story.crilips products - #80

Merged
nichinichisou0609 merged 2 commits into
redesign/depotfrom
redesign/story-sounds
Oct 15, 2026
Merged

nichinichisou0609 merged 2 commits into
redesign/depotfrom
redesign/story-sounds

Conversation

@nichinichisou0609

Copy link
Copy Markdown
Collaborator

Summary

Two products a story plays with, made by nnnotes.pipeline.story:

  • story.sound: one product per cue sheet (cuesheets/<sheet>.json). cues.json maps each cue name to its first stream (sample rate, channels, samples, loop points); the streams are in the web format of the audio parameter: AAC by default, each file with its encoder delay, or the decoded FLAC as it is. A sheet several stories share is encoded once.
  • story.crilips: the CRI Lips analysis data read from the APK's library (crilips/default.json: crilips.json and crilips.bin). A library of an unknown version makes the product unsupported (unsupported.crilips.version).
  • A product subject without roots reaches nothing and reads no census.

Docs: docs/products.md (Stories), docs/stages.md (stage rows, reason code).

Tests

  • tests/pipeline/test_story.py: subjects, keys and manifests; cues from the first stream of each name; FLAC kept as decoded; AAC with each encoder delay; an undecoded sheet; the CRI Lips product on a synthetic library, an unknown version, a missing library.
  • Full suite: 1605 passed, 6 skipped; ruff and pyright clean.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

nichinichisou0609 and others added 2 commits October 15, 2026 23:50
story.sound makes one product per cue sheet a story plays: cues.json maps
each cue name to its first stream (sample rate, channels, samples, loop
points) and the streams are in the web format of the `audio` parameter,
AAC by default with each file's encoder delay, or the decoded FLAC as it
is. A sheet several stories share is encoded once.

story.crilips reads the CRI Lips library of the APK and writes the
analysis descriptor and weights; a library of an unknown version makes
the product unsupported (unsupported.crilips.version).

A product subject without roots reaches nothing and reads no census.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The AAC test of story.sound now replaces the ffmpeg lookup that the
encoder atoms use as well, so it runs where ffmpeg is not installed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nichinichisou0609
nichinichisou0609 merged commit 45573dd into redesign/depot Oct 15, 2026
8 checks passed
@nichinichisou0609
nichinichisou0609 deleted the redesign/story-sounds branch October 15, 2026 16:12
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