vaclavmuller/cpt2sty
GitHub: vaclavmuller/cpt2sty
一个将 Casio CPT 样式文件转换为 Yamaha SFF1 STY 格式的 Python 工具,通过逆向工程解决了跨平台和声行为正确映射的问题。
Stars: 0 | Forks: 0
# CPT → Yamaha STY 转换器
一个 Python 工具,用于将 **Casio CPT 样式** 转换为 **Yamaha SFF1 STY 样式**,并保持正确的和声行为。
## 为什么开发此工具
Casio CPT 和 Yamaha STY 在结构和行为上是截然不同的样式格式。
仅靠直接的机械转换是不够的,因为 Yamaha 伴奏回放依赖于正确配置的:
* **Source Root**
* **Source Chord**
* **NTT (Note Transposition Table)**
如果没有该映射,生成的 Yamaha 样式可能会产生不正确的和声,例如:
* 不想要的大七和弦
* 不正确的和弦移调
* 伴奏声部表现得像旋律轨道
创建此项目旨在通过对 CPT 格式和 Yamaha CASM 行为的逆向工程来解决该问题。
## 功能
* 转换 `.CPT` → `.STY` (Yamaha SFF1)
* 自动生成 CASM
* 正确处理:
* Source Root
* Source Chord
* NTT (Chord vs Melody)
* 适用于:
* Casio 原厂样式
* 第三方样式
* 完全数据驱动
## 关键见解
正确的 Yamaha 回放需要从 CPT 数据中重建该和声行为。
## 用法
```
python cpt2sty "input.CPT"
```
输出:
```
input.sty
```
## 项目结构
```
/converter
cpt2sty.py
/docs
CPT_format.md
CASM_mapping.md
CASM_byte_level.md
```
## CPT 格式
CPT 格式没有公开文档。
本项目包含一份逆向工程的规范:
* `docs/CPT_format.md`
## 免责声明
* CPT 格式文档是非官方的
* 部分行为基于逆向工程和实证测试
* 可能尚未涵盖所有边缘情况
## 测试环境
* Casio 原厂样式
* 第三方 CPT 样式
* Yamaha Style Creator 验证
## 贡献
欢迎贡献,特别是在以下方面:
* 解码 FF80 / FF81 / FF82 元事件
* 改进 CCT 解释
* 优化 CASM 生成
* 扩展兼容性和测试
## 许可证
MIT License (推荐)
标签:CASM生成, CPT格式, MIDI处理, Python, SFF1, STY格式, 云资产清单, 卡西欧, 和弦转换, 文件格式转换, 无后门, 电子琴, 自动伴奏, 逆向工具, 逆向工程, 雅马哈, 音乐转换器, 音频工具, 风格文件