From bf36a773918959eeb6ffe7dae2fb8b0874438eb4 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sun, 12 Jul 2026 17:58:19 +0900 Subject: feat(ppmck): mckc準拠の構文拡張とIR保持コマンド追加 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - @をデューティ比、qをクオンタイズに修正(mckc原本準拠) - ^タイ、Dディチューン、sスイープ、v+/v-相対音量を追加 - @v/@@/@MP/@EP/@EN エンベロープ・LFO系を構文解析してIR保持 - 上記IR保持コマンドは合成未対応を SEMANTIC_UNSUPPORTED_FEATURE で警告 - Design.md / MML_BNF.md を更新 - 全200テスト + ruff チェック通過 --- src/mml_composemusic_mcp/semantic_pyxel.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/mml_composemusic_mcp/semantic_pyxel.py') diff --git a/src/mml_composemusic_mcp/semantic_pyxel.py b/src/mml_composemusic_mcp/semantic_pyxel.py index 32808d1..7bf94ba 100644 --- a/src/mml_composemusic_mcp/semantic_pyxel.py +++ b/src/mml_composemusic_mcp/semantic_pyxel.py @@ -362,7 +362,11 @@ class PyxelSemanticAnalyzer(SemanticAnalyzer): points = [] for i in range(1, len(stmt.params), 2): duration = stmt.params[i] - target = stmt.params[i - 1] if i - 1 < len(stmt.params) else stmt.params[-1] + target = ( + stmt.params[i - 1] + if i - 1 < len(stmt.params) + else stmt.params[-1] + ) points.append({"target_volume": target, "duration_ticks": duration}) ev = EnvelopeEvent( tick_position=self.tick_position, -- cgit v1.2.3