ABC の bounded %%score staff grouping 対応と MusicXML / MuseScore I/O の…#166
Merged
ABC の bounded %%score staff grouping 対応と MusicXML / MuseScore I/O の…#166
%%score staff grouping 対応と MusicXML / MuseScore I/O の…#166Conversation
…段階的リファクタリング ## 概要 ABC import における bounded な `%%score` staff grouping 対応を追加しつつ、`musicxml-io.ts` と `musescore-io.ts` の責務分解を進めた変更です。あわせて、関連 spec と TODO、生成物を更新しています。 ## 変更内容 ### ABC - `%%score` の扱いを見直し、ordered ids に加えて parenthesized groups を扱う形に変更 - `parseScoreVoiceOrder(...)` を `parseScoreLayout(...)` に置き換え - grouped voices を 1 part + multiple staves として扱うための内部データ組み立てを追加 - `tests/unit/abc-io.spec.ts` に関連テストを追加 ### MusicXML - `src/ts/musicxml-io.ts` を段階的に整理 - parse / serialize - normalization / fixup - render-oriented helper という責務のまとまりが読みやすくなるよう helper を分解 - part-list / part-id normalization、tuplet enrichment、final barline、beam-related normalization まわりの helper を整理 ### MuseScore - `src/ts/musescore-io.ts` の import / export / helper 群を段階的に整理 - import 側で、metadata / staff grouping / measure context / voice holder event walk などの helper を切り出し - export 側でも、part scaffold / measure context / header emission / document emission の helper を整理 - `convertMuseScoreToMusicXml(...)` の top-level が orchestration として読める形に近づくよう分解 ### ドキュメント / TODO - `docs/spec/ABC_IO.md` を更新 - `%%score` を voice ordering に加えて bounded な staff-grouping directive として記述 - `docs/spec/ABC_STANDARD_COVERAGE.md` を更新 - `TODO.md` に ABC / MuseScore / MusicXML の refactoring series と今後の作業分解を追加 ### 生成物 - `mikuscore.html` - `src/js/main.js` を更新 ## この PR で意図している範囲 - `%%score` は bounded support です - parenthesized grouping を practical に取り込むための対応であり、ABC 全体の staff-layout semantics を網羅するものではありません - `brace` / `bracket` / `staves` などの broader `V:` property semantics は引き続き別課題です
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…段階的リファクタリング
概要
ABC import における bounded な
%%scorestaff grouping 対応を追加しつつ、musicxml-io.tsとmusescore-io.tsの責務分解を進めた変更です。あわせて、関連 spec と TODO、生成物を更新しています。変更内容
ABC
%%scoreの扱いを見直し、ordered ids に加えて parenthesized groups を扱う形に変更parseScoreVoiceOrder(...)をparseScoreLayout(...)に置き換えtests/unit/abc-io.spec.tsに関連テストを追加MusicXML
src/ts/musicxml-io.tsを段階的に整理MuseScore
src/ts/musescore-io.tsの import / export / helper 群を段階的に整理convertMuseScoreToMusicXml(...)の top-level が orchestration として読める形に近づくよう分解ドキュメント / TODO
docs/spec/ABC_IO.mdを更新%%scoreを voice ordering に加えて bounded な staff-grouping directive として記述docs/spec/ABC_STANDARD_COVERAGE.mdを更新TODO.mdに ABC / MuseScore / MusicXML の refactoring series と今後の作業分解を追加生成物
mikuscore.htmlsrc/js/main.jsを更新
この PR で意図している範囲
%%scoreは bounded support ですbrace/bracket/stavesなどの broaderV:property semantics は引き続き別課題です