完美,同志,完美!!!!!!!

This commit is contained in:
2026-02-04 00:06:14 +08:00
parent 841f6e53c6
commit 1d9931f79d
69 changed files with 1716 additions and 209 deletions

40
TO-DO.md Normal file
View File

@@ -0,0 +1,40 @@
# 任务清单
## 待办事项
- 乐曲文件格式设计
目前想到的是
1. 使用 `.MCT` 作为项目文件的后缀然后考虑一下格式是否和之前的 MusicSequence 兼容如果兼容的话可以照旧用 `.MSQ`如不的话可以试试想一个新的后缀名作为数据文件后缀
2. 要求数据文件支持完全流式读入
- 音轨静音处理
当前没有处理
- 优化音轨的存储方式
当前是用列表且每一次变动元素都要重新排序这样消耗太大了需要优化改用最小堆形式heapq
- 移植 v2 功能到内置插件
目前 v2 的功能有很多都要移植到 v3
1. 导入 Midi 文件到全曲
2. 导入 Midi 文件到指定轨道
3. 导出到延迟播放器的结构文件MCSTRUCTUREBDX
4. 导出到延迟播放器的附加包
5. 导出到积分板播放器的以上两种形式
6. 导出到中继器播放器的以上两种形式
7. WebSocket 播放器中播放
8. 导出到支持神羽资源包的以上 7 种形式
9. 对于 Midi 歌词的实验性功能
10. 对于 Java 版本适配的实验性功能
11. 对于听感优化的实验性功能插值偏移
- 测试参数曲线的功能
- 支持导出音符盒构成的音乐
- 支持导出成 schematic 结构
## 讨论
1. 是否应该在插件注册表 PluginRegistry 中采用 `Dict[插件名, 插件对象]` 的形式存储插件
当前不采用这种方式是认为可以兼容一些极端场景下用户将一堆同名插件放在一起的情况但是就算是插件放在一起我们也可以有选择地读入注册表比如依照版本号只读取最高版本的插件并不需要全部存储在插件注册表中所以其实用字典来存储是有利的
2. 服务插件到底该怎么写总不能留着一个 PluginType.SERVICE 的插件一直空在那里吧