English | 中文
小团体不拉我,拿不到最新最热,所以自己抄谱 😡😡😡😭😭😭🤔🤔🤔😋😋😋
为音乐游戏 maimai 设计的工具,自动将谱面确认视频转换为 simai 格式 (maidata.txt)。
如果在使用中遇到问题、需要帮助、想反馈 Bug 或提出建议,亦或参与开发讨论,欢迎加入 QQ 交流群
868888361。
强大的抄谱能力
tap slide touch hold touch-hold 全种类音符识别与时值推理。ex break ex-break 全子类音符变体分类。- V >< pq ppqq sz v。定制视觉模型
可视化图形界面
内置谱面编辑器
MajdataEdit 和 MajdataView,抄谱结果一站式预览与修改。内置 BPM 测速工具
Bpm-Measurer,一款实用的歌曲 BPM 测量工具。多后台推理支持
便捷的多媒体处理
不支持识别 Touch/Touch-Hold 烟花特效 (f)
不支持伪双押 (`)
BPM 频繁变化可能导致谱面产生错误偏移。
相机实拍屏幕的视频可能存在拍摄角度、色偏、曝光等问题,抄谱准确性可能会下降。
轨迹有部分重叠的并行 slide 音符,可能会遗漏其中个别音符(例如 1v6[8:1]/3v6[8:1])。
模型训练数据均为自行采集:
全自动标注
分任务训练
train_detect — 识别音符位置train_detect_touch_hold — 识别 touch-hold 位置与进度train_obb — 识别 slide 旋转角度train_classify — 判断 ex、break 等变体类型代码集中在 src 目录,分三层。中间层通过 子进程 worker 驱动核心算法,将重计算隔离在 GUI 之外,保证界面流畅。
src/app) — 基于 PyQt6 的图形界面QSharedMemory 单实例src/app/widgets),视觉与操作风格一致i18n,中/英切换)src/services) — 服务生命周期与任务调度QProcess,为子任务分配 runner_id、合并输出并定时刷新AutoRechartPipeline / MediaPipeline):用 pydantic 校验参数、组装 CLI 指令并提交调度器src/core) — 抄谱按 standardize → detect → analyze 三阶段运行:detect 与 obb 模型maidata.txtBpm-MeasurerOpResult(ok / err),统一封装每次操作结果嵌入式 Python 解压到项目根目录,用 ./python/python.exe 运行脚本。本项目使用 Python 3.13.11;Python 3.10+ 应该也能运行,但未经实际验证。
注意 (2026.05.09):
NVIDIA TensorRT 目前不支持 Python 3.14。
编译 MajdataEdit & MajdataView,将编译输出放入 src/resources/majdata:
请自行从其他渠道获取
SFX和Skin,放入文件夹中。
编译 Bpm-Measurer,将编译输出放入 src/resources/Bpm Measurer/。
运行 install/script/install.py 安装依赖。
运行 src/main.py 启动程序。
$ claude mcp add HachimiDX \
-- python -m otcore.mcp_server <graph>