nulltask / nulltask/be-music

Support extended visible note channels 1A-1Z / 2A-2Z as playable notes

Open
#136 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
15
Forks
1
Avg merge
1d 4h
Merged PRs (30d)
29

Description

Context

Found in the BMS spec-compliance audit. Per hitkey's command memo, visible notes span #xxx11-1Z (1P) / #xxx21-2Z (2P); the alphabetic tail is used by keyboard-mania-style and other extended-lane charts.

Current behavior

Only 11-19 / 21-29 are extracted as playable notes — packages/player/src/playable-notes.ts accepts lane characters 1-9 only. The 24 KEY SP / 48 KEY DP lane-mode estimation and key bindings exist in packages/player/src/core/lane-layout.ts, but the extended channels themselves never become score/judge targets, so such charts play silent and judgeless.

This is currently a documented limitation (docs/player-spec.md BMS support matrix), so this issue is the tracking item for lifting it.

Suggested scope

  1. Extend the playable-channel classification (@be-music/chart channel predicates + playable-notes.ts) to the alphabetic lane range.
  2. Wire the extracted notes into the existing 24/48-key lane layouts and input bindings.
  3. Cover with extraction + judging tests and update the support matrix in docs/player-spec.md / .ja.md.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with packages/player/src/playable-notes.ts and the @be-music/chart channel predicates, then inspect packages/player/src/core/lane-layout.ts for the existing 24/48-key layouts and input bindings. Done means alphabetic channels become playable score and judge targets, extraction and judging tests cover them, and the support matrix is updated in docs/player-spec.md and .ja.md.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation, game-dev, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.