Skip to content

fix(player): shorten the default POOR BGA display window to 500ms (LR2) - #178

Merged
nulltask merged 1 commit into
develfrom
fix/poor-bga-default-500ms
Aug 19, 2026
Merged

fix(player): shorten the default POOR BGA display window to 500ms (LR2)#178
nulltask merged 1 commit into
develfrom
fix/poor-bga-default-500ms

Conversation

@nulltask

Copy link
Copy Markdown
Owner

Closes #140.

Real LR2 ships <poorbga>500</poorbga> in its config.xml, and its changelog documents the miss-BGA display time as "adjustable in ms (default: 500ms)". Our shared default (DEFAULT_POOR_BGA_DISPLAY_SECONDS) was 2 s — four times longer — and both the TUI compositor and the web LR2 scene inherit it.

Changes

  • DEFAULT_POOR_BGA_DISPLAY_SECONDS: 20.5 (packages/player/src/core/bga-timeline.ts), with the LR2 provenance recorded in the doc comment.
  • New regression test pinning the boundary exactly: the overlay is visible at 0.49 s and gone at 0.5 s under the strict < expiry. The previous suite passed identically with either 2 s or 0.5 s, so nothing pinned the value.
  • Moved one existing sample point (0.5 s → 0.3 s) that would otherwise sit exactly on the new expiry boundary.
  • Fixed a stale "2-second POOR-judgement window" comment in the web LR2 scene's renderBga doc.
  • Documented the 500 ms default in docs/player-spec.md / .ja.md (the POOR section previously stated no duration).
  • Changeset: patch for @be-music/player, @be-music/player-tui, @be-music/player-web.

Notes

  • LR2 exposes this as a per-user setting; exposing it here is left as the optional follow-up the issue mentions — this PR fixes the default divergence only.
  • The beatoraja web scene intentionally does not use this constant (it holds the miss layer until the next non-POOR judge, as beatoraja skins expect); the constant's comment now says so.

Testing

  • vitest run packages/player-tui/src/bga.test.ts packages/player/src/core/bga-timeline.test.ts — 35 passed (includes the new boundary test).
  • tsc typecheck for @be-music/player, @be-music/player-tui, @be-music/player-web; oxlint clean.

🤖 Generated with Claude Code

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
be-music-player-demo b3fa635 Commit Preview URL

Branch Preview URL
Aug 19 2026, 11:06 AM

@github-actions

Copy link
Copy Markdown

Exports Benchmark

  • Base SHA: 6c325bc55fa9
  • Head SHA: b3fa63509b8d
  • Comparable cases: 242
  • Regression threshold: 8.00%
  • Base runs: median of 3
  • Head runs: median of 3

Summary

Metric Value
Improved (>= threshold) 1
Regressed (<= -threshold) 1
Unchanged 240
Median change -0.73%
Mean change -0.77%
Head benchmarked cases 242
Head skipped cases 21

Top Regressions

API Base ops/s Head ops/s Change
audio-renderer.writeAudioFile 4880.76 4141.89 -15.14%

Top Improvements

API Base ops/s Head ops/s Change
lr2-skin.informationTypeToPlayVariant 2019777.61 2317155.67 +14.72%

@nulltask
nulltask merged commit 35de040 into devel Aug 19, 2026
13 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.

POOR BGA default display time should be 500ms, not 2000ms (LR2)

1 participant