<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mml-composemusic-mcp.git/src/mml_composemusic_mcp/synthesizer.py, branch v0.3.0</title>
<subtitle>レトロチップ音源（2A03 APU）風のMMLをLLMに作曲させるためのMCPサーバです 
</subtitle>
<id>https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=v0.3.0</id>
<link rel='self' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/atom?h=v0.3.0'/>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/'/>
<updated>2026-09-13T05:13:04+00:00</updated>
<entry>
<title>feat: return composed WAV as MCP audio content</title>
<updated>2026-09-13T05:13:04+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-09-13T05:12:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=97b34627667fd699f4e0e054533eb89a205a2878'/>
<id>urn:sha1:97b34627667fd699f4e0e054533eb89a205a2878</id>
<content type='text'>
Replace the server-local wav_path result with a protocol-native multimedia response.

- Split internal composition execution from MCP ToolResult serialization so filesystem paths never enter public payloads.

- Return every successfully composed WAV as AudioContent with the audio/wav MIME type, regardless of file size.

- Keep structured audio metadata, duration, note sequence, and validation details alongside the multimedia content.

- Use CallToolResult.isError as the authoritative MCP execution status while retaining compose success and validate valid as domain fields.

- Treat invalid compose/API requests and runtime failures as tool errors, while invalid MML discovered by validate remains a successful validation operation.

- Sanitize synthesis, file-write, audio-serialization, and unexpected failure responses so internal paths and exception details are not exposed.

- Add protocol-level coverage for base64 round trips, content block types, error semantics, ResourceLink absence, and path non-disclosure.

- Update existing tests for the separated execution layer and path-free result contract.

- Document AudioContent and isError behavior in the README, MCP schema, and design specification.

- Require the tested FastMCP 3.4.4 API line and exclude the incompatible 4.x major version.

Verification: 487 tests passed; ruff check passed; git diff --check passed; uv lock --check passed; and a manual MCP call returned TextContent plus AudioContent with no wav_path.
</content>
</entry>
<entry>
<title>test: MML音階と2A02波形出力の適合テストを追加</title>
<updated>2026-07-15T11:24:56+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-15T11:24:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=9837002c245306b6d15366172cd7fed0f7ebe6dd'/>
<id>urn:sha1:9837002c245306b6d15366172cd7fed0f7ebe6dd</id>
<content type='text'>
- C4〜C5のMIDI音番号とtimer値を検証
- Pulse、TriangleのPCM・WAV周波数測定を追加
- Noise periodとLFSRの適合テストを追加
- 2A02 timerのclamp・mute境界を検証
- Noise計算をテスト可能な純粋関数へ分離
- 音階テスト資料を実装クロックへ同期
</content>
</entry>
<entry>
<title>feat: MML拡張合成とNTSC 2A03準拠のIR v2音源を実装</title>
<updated>2026-07-12T09:28:50+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-12T09:28:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=3d06bee12a26bc55cd73b1494e4d008a8098f6f5'/>
<id>urn:sha1:3d06bee12a26bc55cd73b1494e4d008a8098f6f5</id>
<content type='text'>
- エンベロープ、LFO、ビブラート、グライドのグローバル定義表を追加
- ppmckおよびPyxelの拡張コマンドを音声合成へ反映
- 2A03のPulseデューティ列、Triangle DAC、Noise LFSR、Sweepを実装
- APUタイマーに基づく周波数量子化と非線形ミキサを追加
- 途中テンポ変更、拡張コマンドの検証、トラック外定義に対応
- APU規格、拡張合成、IR v2のテストを追加
- プロジェクト独自のppmck拡張仕様と対応範囲を文書化
</content>
</entry>
<entry>
<title>MML構文解析処理を追加</title>
<updated>2026-07-12T07:03:29+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-12T07:03:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=22f96694a96ed9fba169e77bc27d19d00edca083'/>
<id>urn:sha1:22f96694a96ed9fba169e77bc27d19d00edca083</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ドキュメントとコメント一部更新</title>
<updated>2026-07-11T13:17:57+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T13:17:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=b7f717df8ddc046139811fd8e8ee2399924ee71e'/>
<id>urn:sha1:b7f717df8ddc046139811fd8e8ee2399924ee71e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: implement Famicom-style MML composer MCP server</title>
<updated>2026-07-11T10:02:14+00:00</updated>
<author>
<name>tanaka takashi</name>
<email>isazaka@gmail.com</email>
</author>
<published>2026-07-11T10:02:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.takashi-2521.com/mml-composemusic-mcp.git/commit/?id=ca35520338057512a71acd42bb116ffbb82cc192'/>
<id>urn:sha1:ca35520338057512a71acd42bb116ffbb82cc192</id>
<content type='text'>
- Add FastMCP server with compose_mml tool

- Support ppmck and pyxel MML syntax

- Add lexer and parsers for both formats

- Add NES APU-style synthesizer (pulse/triangle/noise) to WAV

- Add MML templates (basic/melody/chord/drum/empty) for both modes

- Add tests for lexer, parser, and server

- Support stdio, http, sse, streamable-http transports

- Update README, pyproject.toml, and .gitignore
</content>
</entry>
</feed>
