From 3d06bee12a26bc55cd73b1494e4d008a8098f6f5 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sun, 12 Jul 2026 18:28:50 +0900 Subject: feat: MML拡張合成とNTSC 2A03準拠のIR v2音源を実装 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - エンベロープ、LFO、ビブラート、グライドのグローバル定義表を追加 - ppmckおよびPyxelの拡張コマンドを音声合成へ反映 - 2A03のPulseデューティ列、Triangle DAC、Noise LFSR、Sweepを実装 - APUタイマーに基づく周波数量子化と非線形ミキサを追加 - 途中テンポ変更、拡張コマンドの検証、トラック外定義に対応 - APU規格、拡張合成、IR v2のテストを追加 - プロジェクト独自のppmck拡張仕様と対応範囲を文書化 --- src/mml_composemusic_mcp/semantic_base.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mml_composemusic_mcp/semantic_base.py') diff --git a/src/mml_composemusic_mcp/semantic_base.py b/src/mml_composemusic_mcp/semantic_base.py index 8b27e89..0a6acdb 100644 --- a/src/mml_composemusic_mcp/semantic_base.py +++ b/src/mml_composemusic_mcp/semantic_base.py @@ -97,6 +97,9 @@ class SemanticAnalyzer: self.tick_position = 0 def analyze(self) -> tuple[NoteSequence, list[ErrorDetail]]: + self.current_channel = None + for stmt in self.program.global_statements: + self._analyze_statement(stmt) for track in self.program.tracks: self._analyze_track(track) self._finalize() -- cgit v1.2.3