# Yamaha SMAF Player：MA 系列铃声播放功能重建

> Yamaha SMAF Player 用 C++ 重建 Yamaha MA 系列音源芯片的铃声播放功能。它解析 SMAF MMF 容器、HandyPhone 和 Mobile 乐谱及 Yamaha 音色数据，并通过 FM 合成输出音频，也支持可选的 ADPCM 采样。作者依据公开的 SMAF 格式说明并观察实际文件来编写解析器和合成器。

- 类型：案例
- 目标：固件
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-11-07
- 收录于：2026-11-09
- 原始资源：<https://github.com/akustikrausch/yamaha-smaf-player>
- 一手来源：<https://github.com/akustikrausch/yamaha-smaf-player/blob/627f7ad8583ce34c5fec0269ef9778167af080d6/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/yamaha-smaf-player-case/>
- 记录 JSON：<https://awesomerea.org/resources/yamaha-smaf-player-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/yamaha-smaf-player-case/index.md)

## 使用条件与局限

- **前提条件：**构建库和示例渲染程序需要 C++20 及 CMake 3.16 或更新版本。
- **前提条件：**渲染时需要 SMAF MMF 铃声文件。
- **局限：**批量音色波形块和 SD-1 专用高阶波形列为后续工作；ROM 音色、图形块、MA-7 流式数据和 MFi 文件不在当前范围内。
- **许可：**采用 Apache License 2.0。

## 一手来源

1. <https://github.com/akustikrausch/yamaha-smaf-player/blob/627f7ad8583ce34c5fec0269ef9778167af080d6/README.md>
2. <https://github.com/akustikrausch/yamaha-smaf-player/blob/627f7ad8583ce34c5fec0269ef9778167af080d6/CMakeLists.txt>
3. <https://github.com/akustikrausch/yamaha-smaf-player/blob/627f7ad8583ce34c5fec0269ef9778167af080d6/LICENSE>

## 同分区更多条目：固件与硬件

- [CoreFW：重建 Novation Launchpad 固件](https://awesomerea.org/zh/resources/corefw-launchpad-case/index.md) · 案例
- [Open Arcade Coder：重建 LED 与按键控制](https://awesomerea.org/zh/resources/open-arcade-coder-case/index.md) · 案例
- [6502 Model：重建 65C02 芯片的逐周期行为](https://awesomerea.org/zh/resources/6502-model-case/index.md) · 案例
- [D750 QEMU Verification Prototype：在 QEMU 中验证尼康 D750 固件的早期执行](https://awesomerea.org/zh/resources/d750-qemu-case/index.md) · 案例
- [ILME-FX30：测绘服务命令与固件设置](https://awesomerea.org/zh/resources/ilme-fx30-service-mode-case/index.md) · 案例
- [redmi-perf：重建 Redmi 笔记本性能模式控制通道](https://awesomerea.org/zh/resources/redmi-perf-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
